报表知识库
动态增删行
任务背景:
输入页面的动态增删行是个比较头痛的问题。用户在录入数据的时候,往往希望可以动态插入、删除、添加记录,这样操作起来比较方便。
对于比较简单的清单式报表,有这样的要求,但是对于比较复杂的分组报表,或者是分片输入的报表,也同样会提出类似的要求。此时要求能够选择报表区域,针对某个区域进行增删行的操作。
新增加的行要求能够自动生成对应的编辑风格、自动计算、合法性检查等功能
面临困难:
如果编程实现上述的功能,面临如下困难:
- 需要记录每条记录的修改、删除、新增状态
- 需要写复杂的javascript,实现动态增删的功能
- 对于分组报表和分片输入的报表,还需要智能识别用户需要增删的是哪个报表区域,从而对相应区域进行操作。
- 动态增删需要考虑的细节非常多,决不是表面上的增删行那么简单,在增加行的时候需要把编辑风格、自动计算、合法性检查等属性动态解析到新增加的行,这是一个最复杂的功能,因为每一行的编辑风格、自动计算、合法性检查等属性不会完全一样,因为这些属性往往和当前行的一些数据值有关系。而且还有一些全局的自动计算,可能和所有行都有关系,例如对所有行的sum操作等,这些自动计算的表达式都要动态的解析和变化。
- 当然,新增加的行还会有缺省值等属性,例如动态流水号等等,这些功能必然会遇到。
考虑到直接编程实现上述功能太麻烦,建议采用润乾报表的行式填报,润乾报表的行式填报从根本上解决了动态增删行的问题,不仅仅可以对分组报表、分片输入的报表实现多区域的插入删除,还能够动态解析编辑风格、自动计算、合法性检查等属性,实现了很智能的流水号、缺省值等功能,实现步骤如下:
实现步骤: