Excel服务器2010教程
  • 1.1 Excel服务器是信息系统工具
  • 1.2 用Excel服务器构建信息系统
  • 1.3 基于Excel服务器的信息系统架构
  • 1.4 如何学习使用Excel服务器
  • 2.1 安装概述
  • 2.2 服务端安装
  • 2.3 客户端安装
  • 2.4 Excel服务器的组成模块
上一节 下一节

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

16.4.1 数据是如何存储的

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

图 16‑23

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

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

图 16‑24

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

这样做的好处是:

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

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

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

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

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

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

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

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

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

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

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

建立《银行收款单》模板

  1. 新建“银行收款单”模板,表样及属性如下:

项目

内容

报表编号

 

报表名称

银行收款单

初始填报权限

部门: A 公司、财务部

角色: Administrators 、银行出纳

最终查阅权限

部门: A 公司、总经办、财务部

角色: Administrator 、总经理、财务部经理、银行出纳

其它

接受默认值

表样:

Excel 公式 :

单元地址

公式

 

 

 

 

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

图 16‑25

  1. 定义适当的数据规范:
    1. “收款单号”用自动编号,
    2. “客户名称”用列表选择,同时填入客户名称和客户编号。
    3. 付款方式为固定取值的下拉列表,可选项为:支票、汇票、电汇、 …

建立《现金收款单》模板

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

项目

内容

报表编号

 

报表名称

现金收款单

初始填报权限

部门: A 公司、财务部

角色: Administrators 、现金出纳

最终查阅权限

部门: A 公司、总经办、财务部

角色: Administrator 、总经理、财务部经理、现金出纳

其它

接受默认值

表样:

Excel 公式 :

单元地址

公式

C5

= ” 现金 ”

 

 

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

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

图 16‑26映射到已有数据表

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

图 16‑27设置当前模板的数据项如何对应到已有数据表的字段

  1. 点击【完成】

定义“收款单查询”

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

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

图 16‑28收款查询

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

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

上一节 下一节