• 最新功能
  • 1 EXCEL服务器概述
  • 2 安装与卸载
  • 3 基本概念&基本操作
  • 4 建立部门、角色、用户
  • 5 建立基础数据
  • 6 管理业务数据
  • 7 熟练填报
  • 8 数据查询
  • 9 工作流
  • 10 回写公式
  • 11 统计报表
  • 12 应用系统管理
  • 13 系统管理模块的常用操作
  • 14 填报网站
  • 15 移动端应用
  • 16 系统外观设计
  • 17 模板管理
  • 18 角色和用户
  • 19 数据项、数据表、数据库
  • 19.1 特殊数据类型
  • 19.2 自定义数据类型
  • 19.3 数据项的其它属性
  • 19.4 多模板对应到相同的数据表
  • 19.5 几个系统表
  • 19.6 应用数据库揭秘
  • 20 数据规范详解
  • 21 工作流详解
  • 22 表间公式详解
  • 23 实时系统、实时管理
  • 24 即时通讯
  • 25 文档管理
  • 26 网盘
  • 27 和其它系统的数据集成
  • 28 和CAD软件的集成
  • 29 与移动端其它应用的集成
  • 30 安装与部署的高级话题
  • 31 表达式函数详解
  • 32 通过VBA程序操纵EXCEL服务器
  • 33 通过命令行操作ES客户端
  • 34 商业智能BI系统
  • 35 WebApi的应用
  • 36 共享文档
上一节 下一节

19.4 多模板对应到相同的数据表

19.4.1 录入与存储分离

通常的Excel文件,用户对数据的操作与数据的存储是一体的。文件本身就是用来保存数据的,下图就是一个典型的例子:用一个文件来保存公司所有的客户信息,为了方便检索,把不同办事处的客户分别存放在不同的工作表中。


在Excel服务器中,数据的录入计算与数据的存储是分离的。模版是数据的录入界面,数据实际存储在数据库中。数据库由一个个的“表”组成,数据存放在表中。每个表都有表头/列标题,也就是我们所定义的数据项(字段)。表中存放的数据称为记录。

比如我们前面定义的《客户登记表》模版,它实际上提供了一个录入客户信息的操作界面,我们输入三个客户的信息,并非意味着我们保存了三个文件,不是这样的,我们没有保存任何Excel文件,只是“通过”Excel的录入界面,把这三个客户的信息保存到数据库中一个名为“客户登记表”的表中去,成为其中的三条记录。请看下图的示意:


熟悉SQL Server数据库的用户可以看到,在服务器上名为ESApp的数据库中有一个表,名为“客户表登记表”,其中存放着我们通过《客户登记表》模版输入的所有客户的信息。

这样做的好处是:

    • 没有存储容量的限制。一个Excel工作表,最多有65535行(Excel2007最多有1048576行),更多的信息就无法存放,数据存储在数据库中,可以不受文件大小的限制。
    • 既能对数据进行集中统一管理,又能实现精细的权限划分。
    • 可以充分利用数据库技术的优点。例如:用主键来保证数据的唯一性。数据库是对大量业务数据进行管理和操纵的成熟技术,读者可参看有关数据库概念和原理的书籍。
    • 便于对各种相关业务数据的综合利用。

19.4.2 多模板“对应到”同一数据表的意义

企业中,往往存在大量十分相似的单据,比如:采购入库单、生产入库单、领料单、发货单,它们都是库存相关的单据,单据的内容和格式也很类似,可能只有个别字段不同。再如:银行收款单和现金收款单,它们的格式完全一样,区别只在于:1)权限不同,银行收款单由银行出纳录入,现金收款单由现金出纳录入;2)录入时的数据规范不同,银行收款单的收款方式包括“电汇、支票、汇票”等等。现金收款单的收款方式只有“现金”。

当我们用Excel服务器来管理这些相似的单据时,需要考虑到以下几方面问题:

首先,它们需要被定义成不同的模板,因为它们或者格式不同,或者权限不同。

其次,它们经常要被统计报表同时引用,比如收款清单,要同时包含“银行收款单”和“现金收款单”;库存台帐,要同时从“采购入库单”、“生产入库单”、“领料单”、“退料单”中提取数据。

第三,它们可能要整体考虑数据的唯一性等,比如,如果一个客户的付款信息在“银行收款单”中已经录入了,就不能在“现金收款单”中重复录入。

为了同时兼顾以上几种要求,Excel服务器中提供了“多模板对应到同一数据表”的功能,也就是说,我们针对不同的单据,建立不同的模板,但是在模板上定义的数据项,都对应到数据库中同一个数据表的字段上,这样一来:

  • 因为是不同的模板,所以可以分别设置权限、数据规范。
  • 因为是同一个(ESApp数据库中的)数据表,所以主键可以跨模板起作用。
  • 因为是同一个(ESApp数据库中的)数据表,所以可以用一条表间公式就提取出所有这些相似单据中的数据

下文以《银行收款单》和《现金收款单》为例,说明如何使多模板“对应”到同一数据表。

19.4.3 多模板对应到同一数据表举例

建立《银行收款单》模板

  1. 新建“银行收款单”模板,表样及属性如下:
项目内容
报表编号
报表名称银行收款单
初始填报权限部门:A公司、财务部 角色:Administrators、银行出纳
最终查阅权限部门:A公司、总经办、财务部 角色:Administrator、总经理、财务部经理、银行出纳
其它接受默认值
表样:
Excel公式:
单元地址公式

2.在《银行收款单》上定义数据表如下:

3.定义适当的数据规范:

a)收款单号”用自动编号,

b)“客户名称”用列表选择,同时填入客户名称和客户编号。

c)付款方式为固定取值的下拉列表,可选项为:支票、汇票、电汇、…

建立《现金收款单》模板

新建“现金收款单”模板,表样及属性如下:

项目内容
报表编号
报表名称现金收款单
初始填报权限部门:A公司、财务部 角色:Administrators、现金出纳
最终查阅权限部门:A公司、总经办、财务部 角色:Administrator、总经理、财务部经理、现金出纳
其它接受默认值
表样:
Excel公式:
单元地址公式
C5=”现金”

在《现金收款单》上定义数据项,映射到“收款单”数据表

  1. 在“现金收款单”模板的设计状态下,选中要定义为数据项的单元格,选择据项】。
  2. 弹出“定义单一数据项”窗口,点击【左侧单元命名】,点击【下一步】
  3. 选择“对应到以下数据表中字段”,下拉选择“收款单”,如图,点击【下一步】


4.依次单击每行的字段名,在出现的下拉列表中选择该字段要对应到“收款单”表中的哪个已有字段,选择后数据类型自动显示,且不能修改。


5.点击【完成】

定义“收款单查询”

前面定义了两个模板,“银行收款单”和“现金收款单”,现在可以分别以银行出纳和现金出纳的帐户登录,各自输入几张。从我的工作台上看,两种收款单是分别管理的,各自由不同的用户使用。但它们的数据都写入同一个数据表“收款单”中。

下面我们建立一个查询,查询全部收款单信息,查询定义如下图所示。设置Administrator、财务部经理对此查询有查阅权限。



关于建立自定义查询的方法,可回顾第8.2节的相关内容。

请读者用Admin帐户登录,到我的工作台中分别查看“银行收款单”、“新建收款单”、“收款查询”的内容,以实际体会多模板对应到同一数据表的含义。

上一节 下一节