10

我有一个表,其中包含 No、Name、Address、Phone、Email 列。我想在No列中设置自动编号,而无需从我的 java 类中传递参数。有没有EL什么可以解决的JasperReport。我使用的是 5.1 版。

注:作为简单的表格,我没有提供源代码和模板。

4

2 回答 2

28

尝试这个

放置一个文本字段并在表达式编辑器下粘贴$V{REPORT_COUNT}并保存并运行 jasper jrxml

$V{REPORT_COUNT}是一个内置变量。

如果您对最终值感兴趣,请将文本字段的评估时间设置为“报告”。

于 2013-08-06T11:11:30.323 回答
0

我们还可以打印字母而不是整数值。即我们可以打印 a,b,c... 而不是 1,2,3...

为此,我们需要传递一个要打印的字母列表作为序列号,这里我将使用以下代码创建字符列表,

List<String> characters = new ArrayList<String>(26);
for (char c = 'a'; c <= 'z' ; c++) {
    characters.add(String.valueOf(c));
}                 
parametersMap.put("charactersList", characters);

现在,在设计中添加以下表达式以用字母而不是数字显示结果,

<textFieldExpression><![CDATA[$P{charactersList}.get(($V{REPORT_COUNT}-1)%26)]]></textFieldExpression>

这会将序列呈现为存储在给定索引处的列表中的字母表。

于 2015-09-18T12:09:58.160 回答