Jasper报告表中的自动行号

时间:2013-08-06 11:00:21

标签: java jasper-reports

我有一张表,其中包含No,Name,Address,Phone,Email列。我想在No列中设置自动编号而不通过我的java类传递参数。在EL中是否有JasperReport或其他东西可以解决它。我使用的是5.1版本。

注意:作为简单表,我没有提供源和模板。

2 个答案:

答案 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中。