本文介绍了报表插件的目的在于增强报表功能,如展示更多字段和关联更多表。重点阐述了编写插件时涉及的临时表处理、调试技巧及遇到的问题,包括数据加载、数据重复和查询速度等问题,并提供了调试和数据检查的实用建议。
写这个插件的目的,或者说这个插件能做什么。
就是原来的报表能展示更多的字段。关联到更多的表。
报表插件需要做的事
(1).重新写临时表方法
(2).删除临时表方法(这个基本都一致)
(3).BOS上报表新增字段,报表对应过滤表显示与隐藏中新增字段
重点说临时表方法
其实也感觉没什么好说的,功力关键在于sql基本功,和对表连接关系的掌握。
你想在报表展示另一张表的字段。
首先得知道在表中得位置。这个可以查BOS,所以BOS设计里面,字段命名尽量规范,这是有好处的。
第二,你得知道表与表之间得关联关系,重点是唯一不重复的关系。
代码实在觉得没什么好说得。直接上链接学习就行。
https://vip.kingdee.com/article/71602311801300736?lang=zh-CN&productLineId=1
5.写这个插件一帆风顺么?
代码写起来,全程无问题,但是sql也没有问题。但是执行起来确实问题不少。
1.加载问题,就是代码和sql都是可以执行的,调试也是有数据的,点击查看报表无反应,这里加载有问题。原因放后面说。
2.数据问题,就是sql中有关联关系,以第一个表为左表是100条数据,后面无论关联了10张,20张,取了多少字段。最后查询结果一定是100条。如果是101条,那就要去检查,关联哪张表时多了这一条数据。又或者99条,关联哪一张表时少了一条数据。一般以报表未新增字段时有多少条记录,新增字段后还是多少条记录。
3.解释加载问题,第一次写,只关注于关联关系对不对,认为关联的都是id不会有重复。所以数据重复起来,数据量就会大量增加。查询速度变慢,特别时关联的表比较多的时候。几百条数据,重复起来就是几十万条。没有夸大,800条数据左右,关联关系也只到t10。最后结果有20万条。第一时间没有加载。
4.查找问题,调试也调试了有数据,数据库也抓了临时表查找也是有数据的,最终显示界面无数据。发现问题,毕竟只是20W条数据,卡了或许几分钟,后面还是加载上来了。才发现该问题。
6.总结:虽然是个比较小的插件,但是里面包含的技巧及注意点放在下面了。
1.调试技巧:调试抓取临时表,上一次的临时表与新的临时表表名不同。通过改造sql可以查看到自己的查询结果,不改造sql只能看到更新了多少条数。(into {0} 里面是上一次的临时表数据。可以直接删除。也可以改造表头,去掉t1.*,改成自己想看到的字段)
2.数据重复的问题,这个只能是检查重复数据的经验了。
推荐阅读