【问题标题】:ireport 4.7.1 bandireport 4.7.1 频段
【发布时间】:2012-11-07 23:37:43
【问题描述】:

我正在使用 iReport 4.7.1。这是一个包含大量信息(402 个参数)的报告。(不是字段,而是参数)。
我正在使用页眉的带区 1284 和摘要的带区 1409。页面格式为 8,264 x 20,125。 报告,打印不正确。细节带,工作正常,但摘要部分是一团糟。 汇总带的代码是:

<summary>
    <band height="600" splitType="Stretch">

详细代码为:

<detail>
    <band height="1409" splitType="Inmediate">

当我使用其他细节带(detail2)时打印是一团糟 代码是:

<detail2>
    <band height="1409" splitType="Stretch">

我已尝试更改页面格式。默认情况下为 8,264 x 20,125 英寸,当我更改为 A4 时。尺寸相同,没有更好的尺寸。默认页面非常窄。 两份报告而不是一份报告是否合理?我可以更改表带的大小并为我的所有物品腾出空间吗?

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:

    首先你说8,264 x 20,125 inches 我认为这是不正确的。我认为 Jasper Reports 使用像素而不是英寸。其次,从指定的尺寸和英寸导出为 PDF 时会进行转换。例如,对于常规的 8.5" x 11" 字母,Jasper Reports 中的相应大小应为 612 X 792。

    那是什么意思?

    这意味着在 Jasper Reports 世界中,现实世界中的每一英寸都等于 72。因此,Jasper Reports 中的 8,264 x 20,125 尺寸为 114.8" x 279.5",为了提供更多视角,大约为 9.5 英尺乘以 23 英尺多一点。 这该死的大!

    那你怎么办?

    Jasper Reports 中的 A4 为 542 x 842。因此,您需要通过使用较小的字体和文本换行来缩小报告的实际大小,但在这种情况下,我认为这还不够。

    设计报告可以被视为一门艺术(坚持下去,我有一个承诺)。它有必须实现的特定目标,否则就是失败:

    • 需要包含有用的必要信息。 这可能很棘手,如果报告中没有足够的数据,它将没有用处。有太多,没有人能理解它。这是一个必须达到的平衡。
    • 需要令人欣喜若狂。这并不意味着漂亮的图片。这意味着它需要自然流动。如果事情错位或未相应分组,读者将无法处理报告。
    • 需要在布局中考虑交付格式。以 PDF 格式交付的报告与以电子表格形式交付的报告之间存在巨大差异。使用电子表格,您可以容纳更多信息,因为用户可以通过隐藏它们轻松配对他们想要的列。
    • 要打印报告吗?如果要打印,您确实需要坚持标准页面尺寸,或者至少知道它将打印在什么页面尺寸上。这会限制你,因为你不能把字体做得小到需要放大镜才能阅读。

    我相信还有其他的,但这是我个人在制作报告时会牢记的。

    在你的情况下,有这么多数据,我认为你有两个选择:

    1. 只允许导出到 Excel 并让用户决定他们想要什么。不利的一面是,如果他们正在打印它,从 Excel 打印出来的效果不会那么好。
    2. 将报告拆分为不同的报告,以满足报告用于的每项任务的特定需求。这样做的缺点是工作量更大。它要求您首先弄清楚该报告的实际用途和用途。然后用户实际需要哪些信息才能使用它来做出决策。

    就我个人而言,我会选择选项 2。一份包含大量数据的报告几乎毫无用处。用户如何从包含如此多数据的报告中得出任何结论? 尽量保持简单、干净和中肯,这样报告会更有效。

    【讨论】:

      【解决方案2】:

      谢谢。我将报告分成两个小报告。 我尝试创建其他细节乐队。我把细节 1185 像素和细节 2600 像素。两者都带有溢出类型中间体。 报告较好,但有些参数乱了 可能是某些属性不好? 将信息放在字段而不是参数中是否合理? 参数是哈希映射。 Java代码

       parameter.put("i_4_motivo_vol",     arrayTodosIndicadores[327]);
      

      jrxml 代码

      <parameter name="i_4_motivo_vol" class="java.lang.String"/>
      <textField>
      <reportElement uuid="5e27ddd1-747f-474c-82af-ac3cfcf8eee6" mode="Transparent" x="450"  y="116" width="41" height="20">
                      <printWhenExpression><![CDATA[Boolean.valueOf($P{tamMuestral_4}.intValue() >= $P{muestra2}.intValue())]]></printWhenExpression>
                  </reportElement>
                  <textElement/>
                  <textFieldExpression><![CDATA[$P{i_4_motivo_vol}]]></textFieldExpression>
              </textField>
      

      【讨论】:

      • 将报告拆分为两个小报告后
      猜你喜欢
      • 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
      相关资源
      最近更新 更多