将Jasper ContitionalStyles与命名样式引用一起使用

时间:2013-03-08 11:22:56

标签: jasper-reports

我有一种情况,我根据程序化生成的jrxml文件和具有给定名称和给定样式名称的样式模板创建报告。这样可以正常工作,直到有条件样式。我发现的每个例子都只使用ConditionalStyles来改变某些值,比如为特定情况设置不同的背景颜色。这不能在这里完成,因为无法知道偶数行样式和奇数行样式之间的区别。就像一个奇怪的行会得到一个灰色的背景或一个偶数行会得到一个绿色的前景和一个黑色的底笔。

我尝试或看过的内容:

  • 使用条件样式 - 似乎无法仅仅为了更改样式值而定义样式引用
  • 使用变量作为样式名称 - 变量未被评估
  • 使用偶数和奇数样式作为父样式创建具有2个ConditionalStyles的样式 - 创建jrtx文件时忽略这些样式

那么......有没有办法使用样式引用创建备用样式行?如果是,它是如何完成的?

2 个答案:

答案 0 :(得分:1)

由于似乎没有解决方案,我们必须更改样式文件的结构以包含条件样式,而不是在文档中执行此操作。

在走这条路径并尝试以编程方式更改或创建这些样式文件时,请注意,在Jasper附带的JRXmlTemplateWriter中,方法toWriteConditionalStyles实现为:

protected boolean toWriteConditionalStyles() {
    return false;
}

哪个是不幸的。您必须使用自己的导出器来更改此行为。

答案 1 :(得分:0)

简单地了解将偶数行样式与奇数行样式分开的方式 偶数行将满足条件

(($V{REPORT_COUNT}%2) == 0)

奇数行将满足条件

(($V{REPORT_COUNT}%2) != 0)

然后您可以使用具有上述条件的条件样式