首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ireport 4.7.1频段

ireport 4.7.1频段
EN

Stack Overflow用户
提问于 2012-10-31 21:55:12
回答 2查看 2.3K关注 0票数 0

我正在使用iReport 4.7.1。它是一个包含批次信息(402个参数)的报告(不是字段,而是参数)。

我使用的是页眉的带1284和摘要的带1409。页面格式为8,264 x 20,125。报告,打印不正确。细节部分工作正常,但摘要部分却是一团糟。汇总频段的代码为:

代码语言:javascript
复制
<summary>
    <band height="600" splitType="Stretch">

详细代码为:

代码语言:javascript
复制
<detail>
    <band height="1409" splitType="Inmediate">

当我使用其他细节区域(detail2)打印时,代码是:

代码语言:javascript
复制
<detail2>
    <band height="1409" splitType="Stretch">

我已尝试更改页面格式。当我更改为A4时,默认大小为8,264 x 20,125英寸。大小是一样的,没有更好的大小。默认页面非常窄。对于两个报告而不是一个报告是合理的吗?我可以改变带子的大小,这样就可以放我所有的东西了吗?

EN

回答 2

Stack Overflow用户

发布于 2012-11-02 03:06:11

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

这是什么意思?

嗯,这意味着在贾斯珀报告的世界里,现实世界的每一英寸都等于72。这真是太大了!

你是做什么的?

贾斯珀报告中的A4是542x842。因此,您需要通过使用较小的字体和文本换行来缩小报表的实际大小,但在这种情况下,我认为这是不够的。

设计报告可以看作是一门艺术(继续挂,我有一个观点,一个承诺)。它有特定的目标,必须达到,否则就会失败:

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

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

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

  1. 只允许导出到Excel,并让用户决定他们想要什么。这样做的缺点是它需要更多的工作。它要求你首先弄清楚这份报告的实际用途和用途。然后,用户实际需要什么信息才能使用它来做出决定。

就我个人而言,我会选择第二种选择。一份包含大量数据的报告几乎无用。用户如何才能从如此多的数据中得出任何结论呢?尽可能保持简单、干净和切中要害,这将是一个更有效的报告。

票数 1
EN

Stack Overflow用户

发布于 2012-11-05 19:13:57

谢谢。我把这份报告分成两份小报告。我试着创建了其他细节波段。我将细节设置为1185像素,细节设置为2600像素。两者都是Spilt类型的中间类型。报告是比较好的,但是一些参数是混乱的,可能是一些属性不好吗?合理地将信息放在字段中而不是参数中吗?参数是散列映射。Java代码

代码语言:javascript
复制
 parameter.put("i_4_motivo_vol",     arrayTodosIndicadores[327]);

jrxml代码

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13159622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档