如何根据JODReports的数据为表行着色?

时间:2012-12-12 15:52:48

标签: java templates reporting freemarker odt

我正在使用JODReports从模板生成ODT文件。我想用数据填充一个表,所以我使用JOOScriptFreemarker指令。 现在我想根据我的数据有条件地格式化每一行:

@table:table-row
[#list rows as row]
[#if row.bar = "ipsum"]
    [#assign rowcolor="#0000AA"]
[#else]
    [#assign rowcolor="#000000"]
[/#if]

@/table:table-row
[/#list]

@#table:table-cell
<What_Should_I_Put_Here_To_Color_The_Cell_Background_With_rowcolor?>

如您所见,如果row.bar == "ipsum"我希望整行都是背景色 #0000AA。你知道一种方法(或可接受的解决方法)吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我们通常在节中创建表(比如名为MyStyleTable)并隐藏它。我们对该表的处理是设置它的属性,例如设置每个单元格的背景颜色,比如A1红色,B1绿色。然后将适当的MyStyleTable单元格分配给您的表(具有数据的单元格)单元格属性:

@table:table-row
[#if row.bar = "ipsum"]
    [#assign rowcolor='MyStyleTable.A1']
[#else]
    [#assign rowcolor='MyStyleTable.B1']
[/#if]
@/table:table-row

@#table:table-cell 
table:style-name=${rowcolor}

我相信我已经读过有一种方法可以从contex.xml导出样式,然后将样式分配给任何表或单元格,但我还没有尝试过。