12
12.1 多模板对应一个数据表
上节我们看到,针对同一个模版填制的若干表单对应于数据库中同一个表中的记录。再进一步,我们还可以使针对不同模版填制的若干表单对应于数据库中同一个表中的记录。
举例来说,我们可以定义两种模版:《入库单》和《发货单》,它们的格式不同,权限也不同,但可以使它们都对应于数据库中的同一个表----出入库单。填入入库单的结果是向“出入库单”表中写入数据,填发货单的结果也是向“出入库单”表中写入数据。
下面我们具体实现这个例子,从中您会对上节所述“数据录入与存储的分离”有更深刻的理解。
《成品入库单》模版
新建模版《成品入库单》,信息如下:
|
项目 |
内容 |
|
报表编号 |
INV-001 |
|
报表名称 |
成品入库单 |
|
初始填报权限 |
部门:阳光乳业、储运部
角色:Administrator、保管员 |
|
最终查阅权限 |
部门:阳光乳业、储运部
角色:Administrator、保管员 |
|
其它 |
接受默认值 |
|
表样: |
|
 |
|
Excel公式: |
|
单元地址 |
公式 |
|
H5:H7 |
=F5*G5 |
|
H8 |
=SUM(H5:H7) |
定义两个数据表:出入库单_主表、出入库单_明细:
|
表名 |
出入库单_主表 |
所在工作表 |
Sheet1 |
|
样式 |
单一数据项 |
是否创建 |
是 |
|
主键 |
区域 |
字段名 |
数据类型 |
必填 |
填写规范 |
其它 |
|
√ |
H3 |
单号 |
文字(20字以内) |
√ |
出入库单号 |
|
|
|
C2 |
日期 |
日期 |
√ |
当前日期 |
|
|
|
C3 |
来源去向 |
文字(100字以内) |
√ |
部门名称 |
|
|
|
C9 |
制单人 |
文字(20字以内) |
√ |
当前用户姓名 |
|
|
|
C12 |
单据类型 |
文字(20字以内) |
√ |
|
不清空 |
|
|
C13 |
出入标志 |
整数 |
√ |
|
不清空 |
|
|
C8:F8 |
备注 |
文字(100字以内) |
|
|
|
|
表名 |
出入库单_明细 |
所在工作表 |
Sheet1 |
|
样式 |
重复数据项、按行循环、可扩展 |
是否创建 |
是 |
|
主键 |
区域 |
字段名 |
数据类型 |
必填 |
填写规范 |
其它 |
|
|
B5:B7 |
物料编码 |
文字(20字以内) |
√ |
|
|
|
|
C5:C7 |
物料名称 |
名称或地址 |
√ |
产品列表 |
|
|
|
D5:D7 |
规格型号 |
文字(100字以内) |
|
|
|
|
|
E5:E7 |
单位 |
文字(20字以内) |
√ |
|
|
|
|
F5:F7 |
数量 |
小数 |
√ |
|
|
|
|
G5:G7 |
单价 |
价格 |
√ |
|
|
|
|
H5:H7 |
金额 |
金额 |
|
|
|
定义表间公式:
|
名称 |
应用时机 |
内容 |
|
提取产品信息 |
筛选条件改变后自动执行 |
提取<物料表>中满足下列条件的数据:
<数据筛选:
物料表.物料名称=本报表.Sheet1:物料名称>
按以下方式填入<出入库单_明细>:
物料表.物料编码
--->(填入值)
物料编码
物料表.物料名称
--->(按行(列)匹配)
物料名称
物料表.规格型号
--->(填入值)
规格型号
物料表.计量单位
--->(填入值)
单位
物料表.计划价
--->(填入值)
单价 |
定义回写公式:(定义回写公式的操作方法参见第9章)
|
名称 |
应用时机 |
内容 |
|
保存时增加库存量 |
保存时 |
完成任务 []
后刷新 [物料表]
中满足如下条件的数据:
物料表.物料编码
= 本报表.Sheet1:物料编码
刷新方法:
当前库存 =
物料表.当前库存
+ 本报表.Sheet1:数量 |
|
删除时减少库存量 |
删除时 |
撤销任务 []
后刷新 [物料表]
中满足如下条件的数据:
物料表.物料编码
= 本报表.Sheet1:物料编码
刷新方法:
当前库存 =
物料表.当前库存
- 本报表.Sheet1:数量 |
《发货单》模版
新建模版《发货单》,信息如下:
|
项目 |
内容 |
|
报表编号 |
INV-002 |
|
报表名称 |
发货单 |
|
初始填报权限 |
部门:阳光乳业、储运部
角色:Administrator、保管员 |
|
最终查阅权限 |
部门:阳光乳业、储运部
角色:Administrator、保管员 |
|
其它 |
接受默认值 |
|
表样: |
|
|
|
Excel公式: |
|
单元地址 |
公式 |
|
|
|
按以下步骤操作定义数据项。
1)
选中单元格H2,C3:E3,H3,C8:F8,C12,C13
2)
右击鼠标,选择弹出菜单“定义单一数据项”。
3)
按[左侧单元命名],点击[下一步],如图:

4)
选中“对应到以下数据表中字段”,点击[下一步],如图:

5)
依次单击每行的字段名栏,从下拉列表中选择区域对应的字段名,结果如图:

6)
点击[完成]。
7)
选中C2单元格,右击鼠标,选择弹出菜单[定义单一数据项]。
8)
选[左侧单元命名],点击[下一步]。
9)
选择“添加到以下数据表”、“出入库单_主表”,如下图所示:

10)
单击表格中最后一行的字段名栏,将“订单编号”改为“相关单据编号”,数据类型选择“文字(20字以内)”,如下图:

11)
点击[完成]
12)
选择菜单“模版à管理数据表”,设置“出入库单_主表”的字段“单据类型”和“出入标志”为不清空。
按以下方法操作定义重复数据项:
1)
选中单元区域B5:H7,右击鼠标,选择弹出菜单“定义重复数据项”。
2)
在弹出窗口中选择标题模式“按行”,上方标题行数为1,数据区域可向下扩展,入下图所示,点击[下一步]。

3)
选择“对应到以下数据表中字段”、“出入库单_明细”,如下图,点击[下一步]。

4)
依次选择各个单元区域所对应得字段名,如下图:

5)
点击[完成]。
定义表间公式:
|
名称 |
应用时机 |
内容 |
|
构造订单编号下拉列表 |
打开后自动执行
(初始填报) |
提取<订单_主表>中满足下列条件的数据:
<数据筛选:
订单_主表.审批意见='同意'
并且
订单_主表.已发货='否'>
按以下方式填入<出入库单_主表>:
订单_主表.订单编号--->(构造下拉选项)
相关单据编号 |
|
提取订单客户名称 |
筛选条件改变后自动执行 |
提取<订单_主表>中满足下列条件的数据:
<数据筛选:
订单_主表.订单编号=本报表.Sheet1:相关单据编号>
按以下方式填入<出入库单_主表>:
订单_主表.客户名称--->(填入值)
来源去向
|
|
提取订单明细 |
筛选条件改变后自动执行 |
提取<订单_明细>中满足下列条件的数据:
<数据筛选:
订单_明细.订单号=本报表.Sheet1:相关单据编号>
按以下方式填入<出入库单_明细>:
订单_明细.产品编码
--->(填入值)
物料编码
订单_明细.产品名称
--->(填入值)
物料名称
订单_明细.规格
--->(填入值)
规格型号
订单_明细.计量单位
--->(填入值)
单位
订单_明细.数量
--->(填入值)
数量 |
|
提取计划价 |
筛选条件改变后自动执行 |
提取<物料表>中满足下列条件的数据:
<数据筛选:
物料表.物料编码=本报表.Sheet1:物料编码>
按以下方式填入<出入库单_明细>:
物料表.物料编码
--->(按行(列)匹配)
物料编码
物料表.计划价
--->(填入值)
单价 |
定义回写公式:(定义回写公式的操作方法参见第9章)
|
名称 |
应用时机 |
内容 |
|
保存时更新订单状态 |
保存时 |
完成任务 []
后刷新 [订单_主表]
中满足如下条件的数据:
订单_主表.订单编号
= 本报表.Sheet1:相关单据编号
刷新方法:
已发货 = '是' |
|
删除时更新订单状态 |
删除时 |
撤销任务 []
后刷新 [订单_主表]
中满足如下条件的数据:
订单_主表.订单编号
= 本报表.Sheet1:相关单据编号
刷新方法:
已发货 = '否' |
|
保存时减少库存 |
保存时 |
完成任务 []
后刷新 [物料表]
中满足如下条件的数据:
物料表.物料编码
= 本报表.Sheet1:物料编码
刷新方法:
当前库存 =
物料表.当前库存
- 本报表.Sheet1:数量 |
|
删除时增加库存 |
删除时 |
撤销任务 []
后刷新 [物料表]
中满足如下条件的数据:
物料表.物料编码
= 本报表.Sheet1:物料编码
刷新方法:
当前库存 =
物料表.当前库存
+ 本报表.Sheet1:数量 |
Excel服务器学习和下载
|