使用JasperSoft遍历三列中的数字序列

时间:2019-01-11 14:28:39

标签: sql iterator jasper-reports

我试图遍历一个数字序列以使用SQL在JasperSoft中填充标签。我有三个不同的列,并且我将使用不同的值范围来得出每个数字。问题在于我需要将这些标签快速切割并按顺序堆叠。例如,如果我要制作一组编号为101-200的标签,则最终标签集应如下所示:

Page 1: | 101 | 134 | 167 |
Page 2: | 102 | 135 | 168 |
Page 3: | 103 | 136 | 169 |
Page 4: | 104 | 137 | 170 |
...
Page 32: | 132 | 165 | 198 |
Page 33: | 133 | 166 | 199 |
Page 34: |  *  |  *  | 200 |

但是,我没有获得准确一致的数字。有时我会得到重复的数字(在上面的示例中,第34页的前两个字段将是134和167,它们是重复的。此外,我的部门也有问题,因为如果我只打印1- 3,我明白了:

| 1 | 1 | 1 |

很多次,我也不会收到最终值;就像我选择1-167。

这是我的代码:

select lpad(num::text, 13, '0') value1
, lpad((num+ ($P{RangeEnd}-$P{RangeStart})/3)::text, 13, '0') value2
, lpad(( num+ 2*($P{RangeEnd}-$P{RangeStart})/3)::text, 13, '0') 
value3


from generate_series( $P{RangeStart},($P{RangeEnd}-$P{RangeStart})/3+ 
$P{RangeStart} )  num

注意:这是我第一次尝试进行报告。我是一名Swift / Java开发人员。我什至不确定该程序如何工作。我只是无法想象在SQL中没有办法做到这一点。

0 个答案:

没有答案