DFX 文件模式在数据处理中的使用

阅读(1011) 标签: dfx文件,

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预览章节,效果如下图所示: