iReport:将细节带插入高度固定框架

时间:2015-11-30 09:11:17

标签: jasper-reports

我需要在报告中显示一个列表 我需要将此列表显示在4厘米高的框架中。如果列表大于4厘米,则必须在4厘米处截断。

我不知道该怎么做,如何将细节带包含在高度固定的框架中。

1 个答案:

答案 0 :(得分:1)

"如何将细节带包含在高度固定的框架中?,截断为4cm。"

jasper报告的主要优势是扩展频段以包含您提供的所有内容。

这就是为什么我建议你重新考虑你的报告,而不是试图截断内容但提供更少的内容。最快的一个是限制详细信息区域中显示的行。 ES。

<detail>
    <band height="35" splitType="Stretch">
        <printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}<=4)]]></printWhenExpression>
        .... your textField's ...
    </band>
</detail>

即使我的数据源提供了100条记录,我也只会打印出4条记录。

没有丑陋的截断,相反我们用一些逻辑处理这种情况,有一天我们甚至可以将4转换为参数(例如用户可以定义他喜欢的记录数)或基于其他的变量content定义了我们想要显示的行数...

编辑:添加了如何使用jr:list组件(无细节带)实现此结果

如果您使用的是jr:list组件(没有详细信息区段),则需要在printWhenExpression内的组件上设置isRemoveLineWhenBlank="true"jr:list ES。

<jr:listContents height="20" width="100">
   <textField>
    <reportElement x="0" y="0" width="100" height="20" isRemoveLineWhenBlank="true" uuid="c65e627e-be7f-4bce-9976-f89c5ccc5d68">
    <printWhenExpression><![CDATA[new Boolean($V{REPORT_COUNT}<=4)]]></printWhenExpression>
    </reportElement>
    <textFieldExpression><![CDATA[$F{theField}]]></textFieldExpression>
  </textField>
</jr:listContents>

注意new Boolean()用于与jasper报告v3兼容(版本5/6不需要)