如何避免在JRXML中重复列名?在使用JRXML和Jasper生成报告时,是否有任何属性可以避免在每个页面中使用列标题?
答案 0 :(得分:17)
如果标题始终位于特定页面(例如第一页)上,则可以添加
<printWhenExpression><![CDATA[$V{PAGE_NUMBER}==1]]></printWhenExpression>
到乐队,这将使其仅在第1页上打印。PAGE_NUMBER
是一个内置变量,在生成报告时自动递增。
答案 1 :(得分:16)
如果使用java填充报告,请将以下参数设置到java代码中:
parameters.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
答案 2 :(得分:9)
在jasper报告标签中输入
isIgnorePagination="true"
答案 3 :(得分:2)
“如果设置为true,将在一个长页面上生成报告。”
答案 4 :(得分:1)
使用JRXML和Jasper生成报告时是否有任何属性可以避免在每个页面中使用列标题?
您可以使用 isPrintInFirstWholeBand
属性,并将列标题移至Group Header
频段(或Title
频段(如果您还没有分组)。
答案 5 :(得分:1)
更简单的选择是选择用于标题的“表格标题”而不是“列标题”。
我也面临同样的问题,这个解决方案对我有用。
答案 6 :(得分:0)
创建一个虚拟组并使用Group Footer Band ..这对我来说很有用,因为已经使用了摘要带..
答案 7 :(得分:0)
我尝试过:
params.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
但是,我的页面很长,只有1/1,如果不将任何行分成两半就很难打印。
相反,我从iReport设计器中选择了第二种方法:
1-在表标题中创建新的空单元格。
2-通过逐一拖动,将单元格(标题单元格)从列标题移动到表格标题。
3-删除列标题中的空白单元格。
4-选择新的单元格背景,方法是从属性中选择“背景色”,或选择要定义样式的列(表),然后从属性中选择table 1_CH
。
答案 8 :(得分:0)
我会尽量避免使用列标题。由于某些原因,组标题为用户提供了更多选择和灵活性。
因此,即使我不在报表中使用组,我也会创建一个“常量组”,该常量组将常量表达式用作groupExpression
,然后将该组的标题用作报表的列标题。
使用像true
这样的常量表达式,该组就不会改变,因为它与数据集无关。而且由于它永远不会改变,所以它不仅不会自动打印两次,它还提供了选项,只需在JasperSoft studio中选中复选框,即可在每页上(其他选项中)重印(或将相应的属性添加到组标签)。
与停用分页或使用依赖页面的printWhenExpression
相比,优点是:
缺点
以下是JRXML中非重复常量组头定义的示例:
<group name="columnHeaderGroup" isReprintHeaderOnEachPage="false">
<groupExpression><![CDATA["a constant"]]></groupExpression>
<groupHeader>
<band height="20">
<!-- any column header content like Static Texts or Text Fields -->
</band>
</groupHeader>
</group>
请注意,您也可以直接删除isReprintHeaderOnEachPage="false"
,因为这是默认行为。
答案 9 :(得分:0)
我们也可以使用下面的行来避免重复的columnHeader