iReport:将细节标注栏插入高度固定的框架中



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

我不知道如何做到这一点,如何将细节带包含在高度固定的框架中。

"如何将细节带包括在高度固定的框架中?截断为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转换为一个参数(例如,用户可以定义他喜欢的记录数量)或一个变量,该变量基于其他内容定义我们喜欢显示的行数。。。

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

如果您使用的是jr:list组件(没有详细带),则需要在jr:list es内的组件上设置printWhenExpressionisRemoveLineWhenBlank="true"

<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 report v3兼容(对于5/6版本,这是不需要的)

最新更新