gpt4 book ai didi

java - JasperReport & 填充组件

转载 作者:行者123 更新时间:2023-12-01 15:40:46 25 4
gpt4 key购买 nike

这里是 JasperReports 新手。我已阅读tutorialquick reference并阅读了许多有关 JR 的文章,现在已经使用 iReport 报表设计器一天左右了。

我认为我感到窒息的最后一组主要概念与图表组件及其数据之间的关系有关。尽管很容易找到其中每一个的定义,但似乎很少有实践文档显示它们在有意义的应用程序中如何相互关联。

  • 报告字段
  • 报告参数
  • 报告变量
  • 数据集

通过使用 iReport,似乎字段、参数和变量可以存在于报表级别,也可以放置在数据集中。但是我对字段、参数和变量的理解非常模糊,而且我对它们与数据集如何关联的理解也非常不稳定。

使用数据集作为轻微的延续,我很难看到“穿过树木的森林”以及图表组件(例如饼图、表格等)如何“馈送”或“注入(inject)”它们的数据。

Soo...我想到了一个例子,如果得到回答,将为我将所有内容联系在一起(我相信!)。假设我有两个图表组件,一个文本字段和一个饼图。我希望饼图显示在文本字段下方,如下所示:

The author of this report is: <value supplied by the data source>

<pie chart here>

因此,在“填充时间”(我认为我使用正确......),报告将被“填充”报告作者的姓名(字符串),以及由 2 个饼图切片组成的饼图:第 1 个切片的值为 75,标签/键为“Eloi”,第二个切片的值为 25,标签/键为“Morlocks”。如果我在这里没有使用正确的 JR 术语,我想要实现的是一个包含两个切片的填充时间饼图:一个“Eloi”切片消耗图表的 75%,一个“Morlocks”切片消耗图表的 25%。图表。

如果有人可以解释或提供如何设置此类图表的代码(Java/JRXML)片段,我认为这将有助于连接所有点并帮助我理解码件如何填充数据。预先感谢您的任何和所有帮助!

最佳答案

将参数视为最终用户在运行时提供给报表的内容。例如,您提供将在查询中使用的 StartDate 和 EndDate。您感兴趣的开始日期是您知道的,它不是由数据源提供的。 (这个想法有多种变化:也许您的应用程序根据您的登录了解有关您的信息,并将这些信息作为参数提供。但同样,这些都是在执行报告之前已知的事情。)

将字段视为从数据源返回的数据。这就是你想要学习的东西。例如,您运行如下查询:

从 mytable 中选择政治组,gullibility,其中 the_date > $P{StartDate}

大概您会为 StartDate 输入值“802701”,然后得到如下结果:

$F{political_group} $F{gullibility}
Eloi 75
Morlock 25

将变量视为操纵原始数据的一种方式。它们可以计算总计和小计,以及逐行计算(例如字符串操作)或更复杂的计算(例如运行总计)。

看看我几年前发布的饼图报告:http://mdahlman.wordpress.com/2009/05/02/limiting-pie-pieces/

它有你想要的主要想法。我将标题直接放入图表中,而不是作为单独的字段。这将是一个非常简单的改变。同样,您可以将标题更改为“此报告的作者是:$P{TheAuthor}”,然后在运行时将该参数传递给报告。

也可以在报告标题中使用字段而不是参数。但通常情况下这是没有意义的。这些字段在数据集中将有许多值。标题中属于哪一个?在上面的例子中,“Eloi”和“Morlock”是字段,它们在报告标题中确实没有意义。 (当然,您可以想象特殊情况。您可以将所有political_group值连接成一个字符串并将其放入报告标题中。但在绝大多数情况下,这是不合理的。)

祝你好运。

关于java - JasperReport & 填充组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com