本帖最后由 加菲喵 于 2015-9-10 16:57 编辑
1. 问题描述
如下图通过数据填报实现销售订单的填报,表头为销售订单基本信息;表体是该订单的明细,通过订单id进行关联。
2. 实现思路
首先录入表头信息,通过订单编号将子表与主表关联起来,然后通过定义多个内置sql将数据回填到不同的数据表中。
3. 示例
3.1 增加数据集
新建工作簿,增加数据集ds1,SQL语句为:SELECT * FROM [产品]。
3.2 表样设计
按照下图所示设置表样,并将对应的单元格控件设置不同的属性:
3.3单元格编辑属性设置
下拉框
设置B4,B6为下拉框,其数据字典都选择数据库表,选择对应的实际值与显示值。
设置E6,F6的控件类型为数字型。
设置D3,D4,和F,3的控件类型为文本型。
设置G6和H6的控件类型分别为插入行以及删除行按钮,其指定单元格都为A12。
日期控件
设置 B2的控件类型为日期型。
公式
单元格D4中输入sql("FRDemo","SELECT 客户ID,公司名称 FROM 客户 where 客户ID ='" + B4 + "'",2,1)
单元格C6中输入 sql("FRDemo","SELECT 产品ID,产品名称 FROM 产品 where 产品ID ='" + B6 + "'",2,1)
3.4 报表填报属性设置
数据字典:
表头[订单]:订单ID,订单日期,客户编号,客户名称,经办人表头订单ID和表体订单ID进行关联
表体【订单明细】:订单ID,产品ID,产品名称,数量,单价,行号(通过row()-5)自动生成
按照下图所示给报表增加两个内置SQL。
内置SQL1:订单ID为主键信息一张单据只有唯一的订单ID
内置SQL2:订单ID+产品ID为主键,一张单据的单身
不允许相同产品ID出现多次
4. 运行效果
|