【问题标题】:iReport : insert detail band into height fixed frameiReport:将细节带插入高度固定框架
【发布时间】:2015-11-30 20:14:11
【问题描述】:

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

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

【问题讨论】:

  • 您需要固定像素高度还是显示的最大元素(行)数是否足够?
  • 对我都有好处
  • 好的,我已经回答了你如何在细节带中使用最大数量的元素来做到这一点......这肯定是最好的(以及开发碧玉报告的方式)......

标签: jasper-reports


【解决方案1】:

“如何在高度固定的框架中加入细节带?,截断为 4cm。”

jasper 报告的主要优势是扩展范围以包含您提供的所有内容..

这就是为什么我建议您重新考虑您的报告,不要试图截断内容,而是提供更少的内容。最快的是 limit 在您的详细信息带中显示的行。是的。

<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组件(你没有detail band),你需要在jr:listes内的组件上设置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 版本不需要)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多