反馈已提交

网络繁忙

主从表填报

  • 文档创建者:文档助手1
  • 历史版本:25
  • 最近更新:Fairy.Zhang 于 2024-08-12
  • 1. 概述

    1.1 问题描述

    在实际填报表设计中,主从表是常见的一种填报场景,主表中的一条记录对应从表中的多条记录,例如「订单表」和「订单明细表」,「订单表」的一个订单可能对应「订单明细表」中的多条产品数据,通过「订单 ID」字段进行关联。

    像这样数据来自于多个数据源,填报时数据回填到多个表中的报表,也可以称之为多源填报表。

    1.2 实现思路

    首先通过设置过滤条件,将表与表关联起来,然后通过定义多个内置 SQL 提交将数据回填到不同的数据表中。

    2. 示例

    2.1 数据准备

    新建普通报表,新建两个数据库查询,SQL 查询语句分别为:

    ds1:SELECT * FROM 订单

    ds2:SELECT * FROM 订单明细

    2.2 报表设计

    2.2.1 表格样式设计

    按照下图所示设置表样,并将对应的数据列拖入到对应的单元格中:

    1612490670708972.png

    将 B4、B6、B8 单元格的「左父格」均设置为 A3 单元格,其余单元格为默认,即数据均是根据「订单 ID」扩展得来。

    2.2.2 单元格设置

    1)各单元格添加控件类型如下表所示:

    单元格
    控件类型
    B4、D4、F4、B8、A12下拉框控件
    B6、D8、B12~E12数字控件
    D6、F6文本控件
    F8复选按钮控件
    F12、G12按钮控件

    2)设置 B4、D4、F4、B8、A12 单元格「下拉框控件」的「数据字典」,并且设置 B4、D4、F4、A12 单元格的「单元格属性>形态」也为「数据字典」,具体设置均如下表所示:

    单元格  数据库表 实际值    显示值
    B4客户客户ID公司名称
    D4雇员雇员ID姓名
    F4运货商运货商ID公司名称
    B8订单货主城市货主城市
    A12产品产品ID产品名称

    控件「数据字典」设置如下图:
    1612428200475932.png

    单元格形态「数据字典」设置如下图:

    1612428211688001.png

    3)设置 F12 和 G12 的「按钮控件」分别为「插入行」和「删除行」按钮,其指定单元格都为 A12 单元格。如下图所示:

    1612428485573471.png

    2.2.3 插入公式

    在 H12 单元格中插入公式:C12 * D12 * (1 - E12),即:数量*进价*(1-折扣)

    在 D8 单元格中插入公式:round(sum(H12) + B6,2)。表示「应付金额」为数量*进价*(1-折扣)+运货费

    注:round() 表示应付金额保留两位小数,函数详细解释可参考Round函数

    2.2.4 插入行策略

    选中 H12 单元格,点击右侧面板「单元格属性>其他」,将插入行策略设置为「原值」,确保单元格公式在插入行时被保留。

    1612491371647074.png

    2.3 参数设置

    1)点击菜单栏「模板>模板参数」,添加一个参数名为 ID 的模板参数,默认值为 10001。如下图所示:

    222

    2)在参数界面添加参数生成相应控件,控件类型选择为「下拉框控件」,并设置下拉框控件的数据字典:数据库表为「订单」,实际值和显示值均为第 1 列:订单 ID。如下图所示:

    1612429401616392.png

    2.4 过滤条件设置

    双击 A3 单元格,设置过滤条件,条件为普通条件:「订单 ID 」列等于参数 $ID。如下图所示:

    1612429555920978.png

    双击 A12 单元格,设置过滤条件,条件为普通条件:「订单 ID」 列等于单元格 A3。
    1612429694611284.png

    2.5 隐藏行列设置

    1)A3 单元格只是作为过滤数据使用,不需要展示在页面上,所以需要隐藏。可以直接选中第 3 行的行序号,单击鼠标右键选择隐藏,如下图所示:

    1612429951535785.png

    也可以通过给 A3 单元格添加一个行高为 0 的条件属性,如下图所示:

    1612430151763607.png

    2)同样点击 H 列,单击鼠标右键选择隐藏,将 H12 单元格隐藏。

    2.6 报表填报属性设置

    点击菜单栏「模板>报表填报属性」,按照下图所示给报表增加两个内置 SQL 提交

    内置 SQL1:
    222

    内置 SQL2:
    222

    2.7 效果预览

    2.7.1 PC 端

    保存报表,点击「填报预览」,查询订单号为 10001 的数据,效果如下图所示:
    1612432113245059.png

    修改子表,修改数量与进价,点击提交,提示成功。刷新浏览器,再选择10001,可以看到数据已经改变,如下图:

    1612432202735236.png

    2.7.2 移动端

    App 端和 HTML5 端均支持,效果如下图所示:

    Screenshot_20210205_111000.jpg

    3. 模板下载

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiFormReport\主从填报.cpt

    点击下载模板:主从表填报.cpt

    4. 注意事项

    4.1 多个内置 SQL 的执行顺序

    多个内置SQL的执行顺序为从上到下,串行执行。多个内置SQL属于同一个事务,如果其中一个 SQL 语句执行失败,整个事务都会回滚,即撤销事务中所有已经执行的 SQL 语句,确保数据库状态回到事务开始之前的状态。

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持