
13.3 应用举例:库存明细帐
为什么要让两个不同的模版对应到同一个数据表上呢?没有硬性规定一定要这样做。事实上,您在《成品入库单》模版上定义数据库“入库单”,在《发货单》模版上定义数据表“出库单”,它们互不相关,也完全可以。让不同模版对应到相同的数据表,只是一种设计上的选择。某些情况下这样做会带来便利。看下面一个例子:
假设我们要定义一个模版,显示某种产品从任意时间开始直到目前为止的出入库明细帐,格式如下:
这是一份时序帐,需要把某段时间内所有的出、入库操作按发生的顺序从上到下依次显示。我们可以定义表间公式,把《成品入库单》和《发货单》的信息提取过来。假如入库单和发货单存放在不同的数据表中,我们只好定义两条表间公式,一条用来提取入库单的数据,一条用来提取出库单的数据。两条公式连续应用,可以做到把一段时间内所有的入库、出库数据全部查询出来,但只能是先显示若干条入库信息,接着(往下)显示若干条出库信息,结果就是(例如):
1月1日入库 5
1月5日入库 10
1月8日入库 3
1月2日出库 2
1月5日出库 8
…
无法让入库和出库“混杂”在一起。也就不成其为“时序帐”,“结存”也变得无意义。
如果入库信息和出库信息存放在同一个数据表中,情况就不同了。我们可以用一条表间公式,一次查出所有的入库和出库信息,并且按时间顺序显示。
下文具体讲解《库存明细账》模版的设计。
新建模版《库存明细账》,信息如下:
| 项目 | 内容 |
| 报表编号 |
|
| 报表名称 | 库存明细账 |
| 初始填报权限 | 部门:阳光乳业、储运部 角色:Administrators、仓库保管员 |
| 最终查阅权限 | 部门:无 角色:无 (注,因为此模版的主要用途是查询,不需要把已有的数据重复保存一边,所定义的数据表也不创建,所以不需要任何人有查阅权限) |
| 其它 | 接受默认值 |
| 表样: | |
| 如上图所示 | |
| Excel公式: | |
| 单元地址 | 公式 |
| E2 | =H2-DAY(H2)+1 使起始日期等于截止日期所在月份的第一天。 |
| D6 | =IF(L6=1,M6,0),并复制到D7:D25 |
| E6 | =IF(L6=1,N6,0),并复制到E7:E25 |
| F6 | =IF(L6=1,O6,0),并复制到F7:F25 |
| G6 | =IF(L6=-1,M6,0),并复制到G7:G25 |
| H6 | =IF(L6=-1,N6,0),并复制到H7:H25 |
| I6 | =IF(L6=-1,O6,0),并复制到I7:I26 |
| J6 | =J5+D6-G6,并复制到J7:J25 |
| K6 | =K5+F6-I6,并复制到K7:K25 |
| 表名 | 库存明细帐_主表 | 所在工作表 | Sheet1 | |||
| 样式 | 单一数据项 | 是否创建 | 否 | |||
| 主键 | 区域 | 字段名 | 数据类型 | 必填 | 填写规范 | 其它 |
|
| C2 | 物料名称 | 名称或地址 |
| 产品列表 |
|
|
| E2:F2 | 起始日期 | 日期 |
|
|
|
|
| J5 | 期初数量 | 小数 |
|
|
|
|
| K5 | 期初金额 | 金额 |
|
|
|
|
| H2:I2 | 截止日期 | 日期 |
| 当前日期 |
|
| 表名 | 库存明细帐_明细 | 所在工作表 | Sheet1 | |||
| 样式 | 重复数据项,按行,可扩展 | 是否创建 | 否 | |||
| 主键 | 区域 | 字段名 | 数据类型 | 必填 | 填写规范 | 其它 |
|
| B6:B25 | 日期 | 日期 |
|
|
|
|
| C6:C25 | 摘要 | 文字(100字以内) |
|
|
|
|
| L6:L25 | 出入标志 | 整数 |
|
|
|
|
| M6:M25 | 数量 | 小数 |
|
|
|
|
| N6:N25 | 单价 | 价格 |
|
|
|
|
| O6:O25 | 金额 | 金额 |
|
|
|
公式名称:期初库存
应用方式:筛选条件改变后自动执行
公式内容:
提取<出入库单_明细,出入库单_主表>中满足下列条件的数据:
<数据筛选:出入库单_主表.日期 < 本报表.Sheet1:起始日期
并且出入库单_明细.物料名称 = 本报表.Sheet1:物料名称>
按以下方式填入<库存明细帐_主表>:
合计(出入库单_主表.出入标志 *出入库单_明细.数量 ) --->(填入值) 期初数量
合计(出入库单_主表.出入标志 *出入库单_明细.金额 ) --->(填入值) 期初金额
公式名称:出入库明细
应用方式:筛选条件改变后自动执行
公式内容:
提取<出入库单_主表,出入库单_明细>中满足下列条件的数据:
<数据筛选:出入库单_主表.日期 >= 本报表.Sheet1:起始日期
并且出入库单_主表.日期 <= 本报表.Sheet1:截止日期
并且出入库单_明细.物料名称 = 本报表.Sheet1:物料名称>
按以下方式填入<库存明细帐_明细>:
出入库单_主表.日期 --->(填入值) 日期
出入库单_主表.单据类型 & '--' & 出入库单_主表.来源去向 --->(填入值) 摘要
出入库单_主表.出入标志 --->(填入值) 出入标志
出入库单_明细.数量 --->(填入值) 数量
出入库单_明细.单价 --->(填入值) 单价
出入库单_明细.金额 --->(填入值) 金额
填报《库存明细账》,可看到截止日期默认为当前日期,起始日期默认为截止日期所在月份的第一天。修改截止日期,从下拉列表中选择一种产品名称,自动查询出该产品指定时段的出入库明细账,如下图示例: