在4.2章节中可以看到,制作多源填报表时,若在数据处理中使用多源SQL类型的方式,需要建立多个对象,操作步骤较多;那么多源填报表中如果使用dfx文件作为数据处理方式时,相对就比较简洁了。
第一步:设计填报表(同4.2)
第二步:设置单元格类型(同4.2)
第三步: 制作取数dfx
由于本例中所有统计销售额数据不是直接来自于数据库表,而是由订单和订单明细两个基础表汇总而来,然后回填到另外两个汇总数据表中。所以本例不能用“ 使用向导生成脚本”快速生成取数和回填脚本,故我们使用dfx方式手动编辑脚本。
如果填报表需要通过dfx取数,那么首先需要通过集算器制作dfx文件,将填报表展现所需的数据通过变量的形式返回给填报表,在填报表单元格中就可以通过引用变量名获取数据。
打开集算器设计器,创建取数dfx并命名为7.2.dfx。文件内容如下表:
|
A |
|
1 |
=connect("demo") |
|
2 |
=A1.query("select * from 订单") |
|
3 |
=A1.query("select * from 订单明细") |
|
4 |
=A1.query("select * from 产品") |
|
5 |
=A3.derive(A4.select@1(产品ID==A3.产品ID).类别ID:类别ID) |
在A3中增加“类别ID” |
6 |
=join(A2:订单,订单ID;A5:订单明细,订单ID) |
|
7 |
=地区销售额=A6.group(订单.货主地区:货主地区,订单明细.类别ID:类别ID;订单明细.数量*订单明细.单价:销售额) |
|
8 |
=类别=A1.query("select * from 类别") |
|
9 |
=雇员销售额=A6.group(订单.雇员ID:雇员ID,订单明细.类别ID:类别ID;订单明细.数量*订单明细.单价:销售额) |
|
10 |
=A1.query("select * from 雇员") |
|
11 |
=员工=A10.derive(姓氏+名字:姓名) |
在A10中增加“姓名”字段 |
12 |
=A1.close() |
|
此填报报表涉及多张表包括:订单、订单明细、产品、类别和雇员。其中订单和订单明细有外键关联。
第四步:制作回填dfx
打开集算器设计器,创建回填dfx并命名为7.2_save.dfx。文件内容如下表:
|
A |
1 |
=connect@e("demo") |
2 |
>A1.update@uk(地区销售额:地区销售额_old,CPXSTJA,类别ID,货主地区,销售额;类别ID,货主地区) |
3 |
>A1.update@uk(雇员销售额:雇员销售额_old,CPXSTJB,类别ID,雇员ID,销售额;类别ID,雇员ID) |
4 |
=A1.error@m() |
5 |
>if(A4==null,A1.commit(),A1.rollback()) |
6 |
>A1.close() |
7 |
return A4 |
第五步:设置数据处理
数据处理中我们采取指定取数dfx和回填dfx的方式。此时需要事先已制作取数dfx和回填dfx。
点击【填报】->【数据处理】,打开数据处理界面设置数据来源和数据去向。如下图:
设置数据来源中的dfx文件后,切换到【保存对象旧数据】界面,点击【提取对象名】按钮提取对象名。
第六步:编辑维度格(同4.2)
第七步:设置字段名称
选中B1单元格,在右侧单元格属性栏的字段名称中输入“地区销售额.类别ID”。
此处地区销售额为取数脚本返回的序表变量,表示前3行这片区域的数据取自地区销售额。维度格A3和数值格B3没有设置字段名称属性,按照字段名采集规则,A3的字段名为货主地区,B3的字段名为销售额。
选中A6单元格,在右侧单元格属性栏的字段名称中输入“雇员销售额.雇员ID”。
此处雇员销售额为取数脚本返回的序表变量,表示后3行这片区域的数据取自雇员销售额。数值格B6没有设置字段名称属性,按照字段名采集规则, B6的字段名为销售额。
第八步:自动计算(同4.2)
第九步:设置显示格式(同4.2)
第十步:设置编辑风格(同4.2)
第十一步:WEB预览
WEB预览步骤参考 WEB预览章节,效果如下图所示: