gpt4 book ai didi

java - JasperReport 组件

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:20 25 4
gpt4 key购买 nike

刚接触 JasperReports,并尝试:(a) 手动编写 JRXML(b) 自己手动编写 JasperDesign(不使用模板)。我的理解是,XML 和 Java 对象都代表相同的概念:报表的空“壳”,其中没有任何数据。

我正在尝试找出哪些 JR 组件适合我的需求,而 referencesamples并且许多在线搜索都没有返回任何明确的信息。至少对于新手来说,大多数 JR 文档似乎都是从“假定知识”的角度编写的。

以下“组件”之间的区别和适当用法是什么(不太确定还能调用它们什么):

  • 文字
  • 文本字段
  • 文本元素
  • 静态文本

这个images example here显示了大部分正在使用的元素,看似随意,但格式不那么明显。

我的问题的根源是我希望显示两种类型的基于文本的信息;一个我称之为“字段”(不要与 JR 字段混淆),另一个我称之为“文本 block ”,由标题和正文组成。我希望这些字段/文本 block 呈现如下:

“字段”:

Name:          John Smith
Age: 42
Summary: This is an example of a field

还有一个“文本 block ”:

Name:
John Smith

Age:
42

Summary:
This is an example of a text block. "Summary:" is the head, and this is the body.

相同的信息,只是呈现方式不同。我相信上面列出的一个/几个 JR 组件是我需要使用的组件,但我似乎找不到任何证实/拒绝这一点的文档。

有人对此有什么想法吗?提前致谢!

最佳答案

您说得对,.jrxmlJasperDesign 对象是类似的,并且代表一个空的报表设计。然后可以将此设计编译为 .jasper 文件或 JasperReport 对象,然后填充数据以生成实际报告。

在您列出的四个“组件”中,只有 TextFieldStaticText 是真正的报表组件。其他的只是保存父元素的属性。

  • StaticText 保存永不改变的文本。它已在设计中设定,仅此而已。
  • TextField 具有一个在报表填充时执行的表达式。这些是您希望将数据放入报告中的元素。
  • Text 是一个保存 StaticText 元素实际文本内容的标记。这是它唯一出现的地方。
  • TextElement 声明特定于报表应如何呈现文本的属性。每个 TextFieldStaticText 都可以包含此标记。属性包括文本对齐、旋转、字体、字体大小等。

要解决您的问题,您需要对姓名、年龄和摘要标签使用 StaticText 组件,因为它们始终相同;和用于实际报告数据的 TextField 组件。

正如其他人所建议的,我会推荐 iReport。我会使用它完成大部分设计,然后手动制作和更改 JRXML(它生成的 xml 有点臃肿)。设计器将对您隐藏 TextTextElement,并且看起来好像这些属性是在文本组件本身上设置的。这不是问题,但如果您要手动更改 JRXML,您应该意识到这一点,以免将属性添加到错误的标签中。查看 iReport 的输出也是学习有效 JRXML 的好方法,因为您收到的不正确 .jrxml 文件的错误消息并不总是有帮助。

希望有帮助!

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

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