极速报表:关联实体配置

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

极速报表:关联实体配置

版本信息

产品版本
更新内容更新日期
V5.0.023

1、新增了关联实体配置;

2、新增了汇总行显示的控制;

3、新增了分隔过滤条件的接口;

2023年06月29日

1、新增了:关联实体配置

1.1、系统路径

    【供应链云】→【业务设置】→【极速报表】 →【报表关联实体配置】

1.2、内容介绍

    增加了一个配置界面,用于配置多个实体JOIN后形成一个整体的数据源,在报表配置中作为数据源配置,参与报表数据计算。如下图:

1.3、关键字段介

序号面板字段介绍&约束
1基本信息编码必录,配置的英文编码标识,全局唯一
2名称必录,配置的多语言名称标识
3字段库必录,用于标识配置使用哪个字段库作为字段集进行配置
4系统预设默认为false,不可编辑。发布预置数据时,按需设置。
5加载策略

选项:

1-推送关联条件(默认)

2-不推送条件

影响点,详见看配置介绍

6实体查询SQL/用于输入实体查询的SQL。影响点,详见看配置介绍
7映射配置字段库字段标识字段库元数据上字段的标识,切换字段库是,会自动清空,重新加载字段库全部字段
8字段库字段名称字段库元数据上字段的名称
9来源字段标识可点击选中字段,确定后,返回英文标识,可以为空
10来源字段名称来源字段标识对应的名称,是全路径名称,自动带出
11默认值不选择来源字段标识时,可以配置默认值,也可以不配置
12默认值说明自定义描述,默认值代表什么意思
13创建信息/

1.4、关键功能和配置介绍

1.4.1、实体查询SQL:

    这里是基于实体对象,用类似SQL的方式来做查询,作为一个整体的来源数据。这里SQL语法支持有限,也没有必要严格完整的SQL语法支持。掌握下面几点即可:

  • 仅支持select 。。。from 。。。[join 。。。]

  • 字段必须使用实体字段标识,字段要数据库字段,分录命名必须有分录标识前缀。如:分录上物料ID,即billentry.material.masterid

  • 多表关联时,仅支持inner join、left join关联。

  • 表必须有别名。如:im_purinbill  t1 那么相应的字段,也必须使用有表别名前缀,如:t1.billno,别名不需要用as。

  • on条件中,仅支持and拼接,条件仅支持=号,且多条件时,不支持跨第3个表,如:on t1.a = t2.a and t1.b = t3.b ,t3必须是t2。

  • 全文必须是英文,且小写,不要使用特殊符号。

    注意:没有写过SQL的相关人员,可以百度了解SQL相关语法。

1.4.2、映射配置:

    在设置映射配置前,系统会先检查是否执行过测试SQL操作,给出一定的提示。校验通过,则可选字段为查询SQL中的SELECT字段。默认值的使用,参考字段映射配置。原理一致。

    字段映射是将字段库与查询字段建立关系,在查询、过滤时起着关键作用。

1.4.3、加载策略:

    加载策略:分为推送关联条件、不推送条件2中,选择推送条件时,SQL加载数据时采用Algo加载,并且会将驱动表的on条件,推送到关联表,提升查询效率(不是绝对的)。选择不推送条件时,则不会推送条件,直接使用AlgoX加载数据。

    推送条件:适合小表驱动大表,比如单据A关联单据B,单据A作为主表,用户条件对单据A有比较好的数据筛选。但是对内存要求高些。

    不推送条件:适合大表驱动小标,必录单据A关联某个小的基础资料C,即使全表查询C也性能OK。

若都是大表关联大表,而且两个表都是没有好的筛选条件,此时要反过来看业务,这么做是否合适,数据结构不做任何改变,谁也没好办法。

1.4.4、测试SQL:

    在编写完查询SQL后,可以点击测试SQL,操作会对SQL进行2层校验:

  • 基本语法校验,但不符合语法要求时,会有相应的错误提示。语法通过后,程序会自动重写SQL。

  • 根据重写的SQL,进行模拟查询。若ORM无法执行将会直接抛出异常界面,此时,相应的开发,要自己根据异常信息判断是什么错误,如:没有数据库字段、字段不存在等。

1.4.5、保存:

    保存时,会对SQL进行再次校验,以保证配置正确性。注意:在实际报表加载时则不再进行校验,默认配置是经过测试验证可执行的。

1.4.5、删除:

    删除配置,系统预设数据不允许删除。

    其余不做详细介绍,若有存疑的,咨询相关研发或留言。

1.5、 适用场景

    该功能,目的是为了支持采购销售相关报表中存在单据和单据要JOIN取不同字段的报表需求,在确实无法通过单实体数据源,通过map-reduce完成计算时,才考虑使用关联数据源配置来实现。

    关联实体配置因需要JOIN计算,其查询成本和计算成本非常高,及内存占用也高。开发人员需要谨慎使用,绝大部分性能设计,还是在依托于具体的开发人员,而非框架。

    

2、调整了:报表数据源配置

    在数据源配置中,主要增加了关联映射配置的面板、报表字段配置增加了一列合计显示。

2.1、系统路径

    【供应链云】→【业务设置】→【极速报表】 →【报表数据源配置】


2.2、关键字段介绍(只介绍差异部分)

序号面板字段介绍&约束
1报表字段配置
显示合计用于控制该字段是否要在报表底部显示合计行。只有计算类型=数值的字段才允许设置。
2关联数据源配置数据块状态字段库元数据上字段的标识,切换字段库是,会自动清空,重新加载字段库全部字段
3数据描述字段库元数据上字段的名称
4关联实体配置可点击选中字段,确定后,返回英文标识,可以为空
5数据块过滤设置来源字段标识对应的名称,是全路径名称,自动带出

2.3、关键功能和配置介绍

2.3.1、显示合计

    在开启显示合计时,并且报表对总值有该字段时,在报表底部会显示黄颜色的合计。默认情况下合计值是后台数据包中返回的所有行的合计值(要非常注意,是数据包返回的行,限流时是几行就合计几行),这就是一个针对所有行求SUM的逻辑。由平台默认处理。

    当开启显示合计行时:汇总行显示的是后台总计算子出来的汇总结果。有极速报表在异步汇总接口中实现。

未开启显示总计行
开启了显示总计行
明细1-110明细1-110
明细1-210明细1-210
小计120小计120
明细25明细25
小计25小计25
。。。
总计行25




合计50合计25

    在具体报表中,代码可能还有额外加的字段,则需要自定义设置,是否开启显示汇总。可以通过下面方式构建字段并设置:

2.3.2、关联数据源配置

    关联数据源配置的解析和计算逻辑与单实体的数据源几乎一样。每个数据块是独立的,最终UNION。差别是关联数据源配置中的数据过滤设置,是基于字段库字段来选择的。在实际运行时,这部分条件会与用户条件合并。

    这里要注意的是,过滤条件依赖与对应的字段映射配置。因此,需要参与过滤字段,必须在SELECT 中有体现,字段映射中才可以被选择到。这样程序可以找到字段链路关系。

3、新增了:分隔过滤条件的接口    

    该接口,主要用于在大数据量,特性且必要的情况下,将特定数据块的过滤条件,等价切分为多个条件。做到一个查询变为多个查询,查询总结果不变。

3.1、适用场景

    比如:物料收发汇总表,因为日期范围太长,导致数据库查询日期字段索引失效了,但是其索引又不高效,有一种办法就是将时间条件,切分为多个段时间,让每个查询都能使用到索引,提升查询效率。

3.2、开发示例

    可以在modify数据块方法中,针对数据库进行设置。


3.2、注意事项

  • 该接口不可滥用,必须经过严格的评估,在确实有必要的情况下增加,否则会引起更严重的性能问题。

  •  目前只支持日期范围、ID集合条件的过滤切分,条件中有重复条件、开口条件,垮库条件,or条件等,无法支持时,默认会不做切分。



极速报表:关联实体配置

版本信息产品版本更新内容更新日期V5.0.0231、新增了关联实体配置;2、新增了汇总行显示的控制;3、新增了分隔过滤条件的接口;2023年06月2...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息