# 报表样例 制作如下图所示的多源填报表: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_664c7d83f44460edca6aee417d984442_r.png) # 报表特点 填报表分上下两部分,上半部分为订单的主表,下半部分为订单明细子表,这两部分数据分别来自不同的物理表 需要将一张填报表填入的数据,同时保存到多张物理表中,并保持数据库事务一致性 # 制作方法 ## 第一步 制作表样 先按照制作普通统计报表的方法,制作一张样式如下图所示的报表样式。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_8d6ee97440204e54780956cf8e955d43_r.png) ## 第二步 建立数据集,设置表达式 新建两个数据集,分别对应订单的主表和订单明细的子表。 报表中的数据主要来自两个数据集,分别从不同的物理表取数。其中第一个数据集从填报订单表(DEMO_INPUT_ORDERS)取数,sql语法如下: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_ef9b456152855101c8ab3085099dad07_r.png) 另外一个数据集从订单明细表(DEMO_ORDERDETAILS)取数,sql语法如下: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_d4f94c4468f80812db00c3f5d8be4dae_r.png) 在相应单元格设置对应取数表达式如下: **C2单元格中表达式为:**`=订单.Select(订单ID,false,订单ID==11047)` **C3单元格中表达式为:**`=订单.客户ID` **C4单元格中表达式为:**`=订单.运货商ID` **E2单元格中表达式为:**`=订单.发货日期` **E4单元格中表达式为:**`=订单.运货费` **G2单元格中表达式为:**`=订单.到货日期` **G3单元格中表达式为:**`=订单.货主名称` **G4单元格中表达式为:**`=订单.发货城市` **B7单元格中表达式为:** `=订单明细.Select(产品ID,,订单ID==C2)` **D7单元格中表达式为:** `=订单明细.单价` **E7单元格中表达式为:** `=订单明细.数量` **F7单元格中表达式为:** `=订单明细.折扣比例` **G7单元格中表达式为:** `=F7*D7*E7` ## 第三步 设置更新属性 在这个报表中,我们需要把订单主表和订单明细的数据分别回填到两个不同的物理表中,所以该表需要对这两个物理表分别设置一个更新属性。 为订单表设置更新属性: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_06828979a7abd1ca901e5c8acc316f26_r.png) 为订单明细表设置更新属性: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_3b82df8eea008edf1b9905371195d147_r.png) 两个更新属性中“订单ID”的更新值都来自C2单元格,从而保持了数据库的事务一致性。 ## 第四步 针对填报表单设置填报属性 设置好报表更新属性后,要针对填报表的实际业务要求,给各个单元格设置填报属性。例如哪些单元格可写,哪些单元格只读,可写单元格使用何种编辑风格等等。 >**注意:**单元格是否可写,与此单元格数据是否入库没有直接关系,不可写的单元格数据也是可以提交入库。 设置C2不可写,C3,C4,E2,E4,G2,G3,G4,B7,D7,E7,F7单元格的填报属性为可写: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_e27badabc2d749949bc7b95548046c75_r.png) ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_1a6f2fab0d62c187aa23811df3390a4b_r.png) 设置G7单元格不可写 ,并且设置自动计算 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_cfeeb698ad1ed2a9b1276de2613e090e_r.png) ## 第五步 设置编辑风格及显示值 设置E2和G2 编辑风格为下拉日历 格式为年月日, ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_432bce2131520d50ed5be8c9e06303a6_r.png) 添加运货商数据集和产品数据集 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_e62f1be1738e9ce161e4ade678335ccc_r.png) ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_fd86de0f7210df2709be004a0ec77708_r.png) 设置C4(运货商)单元格编辑风格为下拉数据集 数据集取自【运货商】数据集,显示列为【COMPANYNAME】,数据列为【SHIPPERID】 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_26045d4a98b64fb1b6155b5f0a4eb100_r.png) 设置C7(产品名称)单元格编辑风格为下拉数据集 数据集取自【产品】数据集,显示列为【产品名称】,数据列为【产品ID】 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_42483b0415c9327b67e36758896ea294_r.png) ## 第六步 保存报表 点击保存,此报表模板保存资源名称为【多源填报】 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_5488732c175134fb1590f7df4f06c74d_r.png) ## 资源列表查看 除了在设计界面点击预览按钮查看报表之外,我们还可以到保存报表的资源目录下查看报表。 报表效果预览如下: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_9059a5ede00413cdb825ea60666718ab_r.png)