多张填报表关联问题?

有三张填报表,第二张填报表会用到第一张的结果,第三张会用到第二张的结果,现在只更细第一张表,怎么让后两张表也跟着更新

FineReport 帆软用户Dcu3auzqkx 发布于 2025-7-2 15:48
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
技术支持--哈哈Lv4初级互助
发布于2025-7-2 16:55
解决方案
  1. 设置内置SQL执行顺序在填报属性中,将三个表的提交SQL按「第一张→第二张→第三张」的顺序排列。多个内置SQL会从上到下串行执行,确保前一张表提交成功后才会执行下一张表的提交

  2. 事务一致性保障所有SQL属于同一个事务,如果第三张表提交失败,前两张表的操作也会自动回滚

  3. 数据关联设计使用主键字段(如订单ID)关联三张表,第二张表通过SQL条件获取第一张表的提交结果,第三张表同理获取第二张表的数据

注意事项
  • 调试时可使用「填报调试插件」查看SQL执行顺序和耗时,确保级联逻辑正确

  • 移动端不支持跨sheet的实时联动更新

  • 帆软用户Dcu3auzqkx 帆软用户Dcu3auzqkx(提问者) 有相关的模板示例吗
    2025-07-03 09:46 
  • 技术支持--哈哈 技术支持--哈哈 回复 帆软用户Dcu3auzqkx(提问者) ‌外键约束级联更新‌
    通过定义外键时添加ON UPDATE CASCADE选项,当主表数据更新时,关联的子表数据会自动更新例如:

    CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT, FOREIGN KEY (user_id) REFERENCES users(user_id) ON UPDATE CASCADE
    );
    ‌触发器实现级联更新‌
    可以创建AFTER UPDATE触发器,在源表更新时自动执行目标表的更新操作示例:

    CREATE TRIGGER update_related_table
    AFTER UPDATE ON source_tableFOR EACH ROWBEGIN
    UPDATE target_table SET column = NEW.column WHERE id = NEW.id;END;
    ‌关联更新SQL语句‌
    使用UPDATE结合JOIN语句手动执行级联更新

    UPDATE table1 t1
    JOIN table2 t2 ON t1.id = t2.id
    SET t1.column = t2.column
    WHERE t1.id = 123;
    ‌Oracle数据库的特殊实现‌
    Oracle通过子查询或EXISTS实现级联更新

    UPDATE table1 t1
    SET (col1, col2) = ( SELECT col1, col2 FROM table2 t2
    WHERE t2.id = t1.id
    )
    WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t2.id = t1.id);
    2025-07-03 15:26 
最佳回答
0
snrtuemcLv8专家互助
发布于2025-7-2 15:49

这个你只能填报入库,然后后面的报表查询出更新的数据才可以

最佳回答
0
用户k6280494Lv6专家互助
发布于2025-7-2 15:50(编辑于 2025-7-2 15:51)

试试 第一个报表的填报成功事件 更新第二个表 在回调函数里面更新第三个表

image.png

最佳回答
0
sysdbaLv5初级互助
发布于2025-7-2 15:52

定制化开发存储过程,当点击第一张报表的提交的时候,延迟触发存储过程执行第二张表数据从第一张表抓取,当第二张表抓取完毕,继续执行第三张表数据从第二张表抓取,当第三张表抓取完毕,存储过程执行完成

最佳回答
0
华莉星宸Lv7专家互助
发布于2025-7-2 15:56

搞三个填报属性

第一张表填报的时候,分别向第二张和第三表都提交数据

第二张和第三表 就自动有了需要引用的数据

image.png

  • 6关注人数
  • 54浏览人数
  • 最后回答于:2025-7-2 16:55
    请选择关闭问题的原因
    确定 取消
    返回顶部