我在JasperSoft中填充参数。在我的报告中,我有参数: Parameter_1,Parameter_2,Parameter_3
int a;
for (a = 0; a < headers.length; a++) {
parameters.put("Parameter_" + a, headers[a]);
}
我以这种方式填充参数并且它有效。现在我想添加一个新的Parameter,Parameter_GroupBy由索引决定(让我们说我希望Parameter_2成为Parameter_GroupBy)所以我这样做了:
int a;
for (a = 0; a < headers.length; a++) {
if (a == groupBy) {
parameters.put("Parameter_GroupBy", headers[groupBy]);
continue;
}
parameters.put("Parameter_" + a, headers[a]);
}
此代码的问题(假设groupBy值为2)是Parameter_2为空但我希望它具有Parameter_3的内容
例如
Parameter_1= name
Parameter_2= date
Parameter_3= street
我使用第二个代码位获得了什么
Parameter_1 = name
Parameter_2=
Parameter_GroupBy= date
Parameter_3= street
我想按日期分组(参数_2),所以我想要
Parameter_1 = name
Parameter_2= street
Parameter_GroupBy= date
Parameter_3=
如何实现这一目标?使用JDK 1.6和Windows。
答案 0 :(得分:2)
在我看来,您只需要为“下一个要放置的参数”保留一个单独的索引:
int parameterIndex = 1;
// Note: more idiomatic to declare the iteration variable
// inside the loop
for (int headerIndex = 0; headerIndex < headers.length; headerIndex++) {
String header = headers[headerIndex];
if (headerIndex == groupBy) {
parameters.put("Parameter_GroupBy", header);
} else {
parameters.put("Parameter_" + parameterIndex, header);
parameterIndex++;
}
}