我有一张表,其中包含No,Name,Address,Phone,Email列。我想在No
列中设置自动编号而不通过我的java类传递参数。在EL
中是否有JasperReport
或其他东西可以解决它。我使用的是5.1版本。
注意:作为简单表,我没有提供源和模板。
答案 0 :(得分:24)
试试这个
放一个文本字段并在表达式编辑器下粘贴此$V{REPORT_COUNT}
并保存并运行jasper jrxml
$V{REPORT_COUNT}
是内置变量。
如果您对最终值感兴趣,请将文本字段的评估时间设置为“报告”。
答案 1 :(得分: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>
这会将序列呈现为字母,这些字母存储在给定索引的List中。