Api 生成的子报表间序号连续问题
通过 API 的方式在主报表内生成了若干个子报表。子报表内的列表有序号,序号是通过 seq() 生成的。
希望达成的效果是这若干个子报表生成的数据序号是连续的。比如第一个子报表的数据序号到 5 后,下一个子报表的数据序号从 6 开始顺延。
我知道有一种方式: 主报表内计算子报表单元的值后可以取道子报表内某个单元格的值,然后将这个单元格的值做为参数传入到下一个子报表中。子报表基于传入的参数,通过 seq+ 参数的方式,可以是序号连续。
这个报表通过 API 生成的子报表,子报表的个数是不确定的。该怎么通过 api 内能达成这样的效果。或者有没有其他更简单的方法做成这样的效果。报表模版内建见附件
zip
主报表获取子报表某个单元格的值可以通过 eval 函数,但是有个要求,子表要是嵌入式才可以,看了下你这个是引入式,可能还不太行。
可以看下,在主表里加个计算监听类,在计算监听类的计算后方法里可以获取整个报表的结果对象,这里可以获取计算后单元格值和修改单元格值,比如在这里按照序号列循环,先设置个标志位,为 0,然后按序号循环时,先判断这行的下一行的值是否是当前行的值加 1,如果是,那么这个是连续的序号,将这行的值设成原有值 + 标志位,如果下一行不是上一行 +1,那么就不是这个表的序号了,将标志位设成当前行,比如第一个子表 5 行,那么标志位就变成 5 了,继续往下循环,找到下一个子表的序号,按照上述方法,原有行号加标志位,那么就是从 6 开始了。
当然,这个只是一种方法,可以按照这个思路改进下看看。