【润乾报表5】巧用集算器数据集

看如下图所示报表:

  这个报表从样式来看,可以看作是一个简单的网格式报表,统计着各种收支金额,但因为取数负责,每个格子的数据都来自一个负责的sql数据集,并且涉及十几个,乃至几十个数据集,蓝色区域里每个格子都需要从各自的数据集里检索遍历,查找与左表头关联的记录。为了方便体会这一点,我们将上图报表简化一点,如下图所示:

C1,D1 单元格都分别从ds2,ds3中取数,并通过关联条件与B1关联,诸如这样十几个数据集在报表端的遍历、关联,如果遇到大数据量,大的并发,速度就会受到影响,并且这也只适合一对一的情况,如果遇到一对多的情况,就无法如此运用了。
   所以,如果这些数据集能整合为一个数据集,所有的关联都放在数据集里去处理,那么报表端的计算就变得灵活简单的多,但是sql数据集去完成这个拼接比较困难,也会很慢,集算器数据集正好能完成这个工作,速度也会大幅度提升,解决思路如下:
   1. 通过  fork  多线程取数,并行堵出每一个数据集
     eg:

       
   2. 通过 join/align 完成每个数据集的横向拼接
      eg: =join@l(A3(1):amount1,订单ID;A3(2):amount2,订单ID;A3(3):amount3,订单ID)
3.  通过 new 返回一个数据集
     eg: =A5.new(amount1.订单ID,amount1.订单金额,amount2.数量,amount3.回款额)
以上只是提供一个思路,具体运用哪个函数,哪个选项,还需要根据实际数据合理选择,集算器函数具体用法请参考《集算器函数参考》。
   除此之外,像常见的需要用于汇总统计的原始数据量非常大,报表并不大的情况,如果每次生成报表都需要现算,一方面非常慢,另一方面数据库的压力会很大,此时传统办法可以采用存储过程数据集对数据预先进行一次压缩,生成中间表,然后再基于中间表生辰报表,可以大大提高运算速度并减轻数据库的压力。但是存储过程如果脚本过于复杂,那么后期维护比较麻烦,而且数据处理的灵活性也受限,这个时候用集算器数据集或者脚本数据集来处理数据,就方便的多。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
帆软报表是一款强大的报表设计与生成工具,它支持使用动态JSON数据集。动态JSON数据集是指在报表设计过程中,通过使用取数公式来动态获取JSON数据,并将其作为报表数据源。 动态JSON数据集的取数公式可以使用JSONVAL函数来实现,该函数可以从JSON字符串中提取指定的值。例如,JSONVAL('{"k1":"v1", "k2":["v21", "v22"], "k3":{"k31":"v31"}}', 'k1')将返回v1,表示提取JSON字符串中键k1对应的值。 在帆软报表中,可以使用动态JSON数据集来实现各种复杂的报表需求,例如根据用户选择的条件动态生成报表数据,或者从外部系统获取实时的JSON数据作为报表数据源。 使用动态JSON数据集的步骤如下: 1. 在报表设计界面中,选择数据源为动态JSON数据集。 2. 设置取数公式,根据需要从JSON数据中提取所需的字段值。 3. 将取得的字段值与报表设计中的数据项进行映射,以便在报表中显示。 通过使用帆软报表的动态JSON数据集,可以轻松实现报表数据的动态加载与展示,满足不同的报表需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [这是一个针对ECharts3.x(2.x)版本的Java类库,实现了所有ECharts中的Json结构对应的Java对象,并且可](https://download.csdn.net/download/hanzhuhuaa/88245563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [帆软报表自定义函数-取json数据](https://blog.csdn.net/meism5/article/details/104510295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值