扩展报表控制台——提供给报表开发者的利器
扩展报表控制台是扩展报表提供给报表开发者的利器,在报表开发人员在开发调试模板中经常会用到。
点击管理平台“工具 -> 扩展报表控制台”,或者在扩展报表设计器中点击菜单栏“工具 -> 控制台”,可打开金蝶扩展报表控制台,如下图所示。
在扩展报表控制台中,您可进行复制日志、垃圾收集操作,也可查看内存耗用情况以及报表计算情况。下面介绍控制台的几个重要功能:
1、 查看报表模板的二进制读取器版本
每个报表模板都有自己的二进制版本号,对于导出到本地目录的报表模板(后缀名是.kds),可以通过记事本打开,如下图所示,记事本中红线框住的版本号即为该模板的二进制版本号。
将报表模板从本地目录导入到报表管理平台时,若该报表模板的二进制版本号高于报表管理平台中报表模板的版本号(这个版本号即扩展报表控制台中的二进制读取器版本),则该模板无法导入,系统会弹出如下信息提示:
因此,在开发报表时要先了解当前EAS环境中报表模板的二进制版本号。否则,可能会遇到以下情形:
(1)在EAS测试库(报表模板的二进制版本较高)上开发了报表之后,想要导入到EAS正式库(报表模板的二进制版本较低)中时,系统会弹出窗口提示无法导入。
(2)EAS测试服务器和EAS正式服务器同时连了正式库,但EAS正式库的中报表模板的二进制版本比较低,测试库的中报表模板的二进制版本比较高。此时登录测试服务器的客户端进入报表管理平台后,若编辑打开报表并进行了保存操作(这会导致模板的二进制版本号变大),那么在登录正式服务器的客户端进入报表管理平台后则无法编辑打开该报表。若登录测试服务器的客户端进入报表管理平台后仅仅编辑打开报表或查看报表(没有执行保存操作),则在登录正式服务器的客户端进入报表管理平台后仍然可以编辑打开报表。
2、收集报表的执行日志信息
日志级别分为5种:致命级、错误级、警告级、信息级、调试级。其中,“致命级”和“错误级”是输出非常严重的报错日志,“警告级”输出执行报表时的错误或警告信息,“信息级”则是输出所有报错信息,“调试级”是指在信息级输出的日志基础上,增加输出一些系统信息日志以及SQL执行的更加详细的日志,用于报表开发人员在开发调试模板中使用。默认的日志级别是调试级。
以“订单明细”报表为例,该报表的数据集查询语句、参数、报表模板如下图所示:
首先打开控制台,然后执行报表(参数name的值为“王”),可以看到收集到的日志主要包括:
(1)报表参数以及系统内置参数的值、显示值;
定制参数即为报表参数,包括参数值(本例中为“name”)、参数的显示值(本例中为“name_text”);内置参数为扩展报表提供的系统内置参数,如当前人员ID、当前组织名称等。
(2)由扩展报表引擎解析的当前执行SQL语句、输出字段名称和类型
在扩展报表控制台中,显示由扩展报表引擎解析的SQL语句级字段信息,如下图所示。
(3)耗费时间(扩展报表引擎、数据源查询 、计算属性)
如上图所示,通过控制台日志可以了解报表的执行过程及执行耗时。例如本例中,执行数据集花费了44ms(包括解析参数、操作数据库、封装成数据集等过程),而执行报表花费了大约26ms(70ms – 44ms,包括解析行列扩展、汇总、关联、公式运算、单元格属性等过程)。
扩展报表控制台日志可以帮助报表开发人员分析问题,提出解决方案。例如以下情形:
(1)数据集的执行结果与报表的执行结果不一致;
报表引擎解析的SQL语句可通过控制台获得。而SQL数据集引擎解析的SQL语句,可通过如下方式获得:在SQL数据集的编辑窗口中,预览数据集后,查看当前生成的SQL语句。报表开发人员可通过对比二者解析的SQL语句来排查问题。
(2)报表执行非常慢;
通过控制台日志可查看执行数据集的耗时和执行报表的耗时。
若执行数据集耗时比较少(若有多个数据集,或单个数据集执行了很多次,则执行数据集的总耗时等于每个数据集每次执行耗时的累加),而执行报表耗时比较多,则可能是由于报表不合理的设计导致的,此时需要检查报表的单元格表达式、父子格的设置以及单元格属性的设置等是否正确。极端的一种情况是,报表是固定的报表,行、列数较多,但没有数据集也不存在扩展,此时可以选中整个页签将其扩展设置属性设为“不扩展”,则报表执行时间会大大降低。
若执行数据集耗时比较多,而执行报表耗时比较少,则可能是由于数据集的问题导致的,比如数据集本身就执行的非常慢,或者存在频繁的数据库交互(例如报表模板中使用了QUERY函数,该函数的作用是:把参数值传递给指定数据集并执行该数据集,用于动态取数),此时就需要优化数据集。
关于报表的优化,可参考在线支持中心的相关章节:
扩展报表控制台——提供给报表开发者的利器
本文2024-09-22 18:11:35发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-99212.html