当前位置: 首页 > 知识库问答 >
问题:

在运行时向主报表添加子报表(java)

廉志强
2023-03-14

目前,我正在使用JasperReports和DynamicJasper构建我的报告并打印它们。当我只使用单个jasper-files或jrxml-files时,所有的工作都很好。我还有一段代码,如果需要合并报表,它可以将所有JasperPrint-files合并为一个。然而,这并不是最理想的...

我可以使用一个.jasper或.jrxml文件作为主报表(它有一个页眉、一个页脚和n个空的详细信息带),并用1-n个子报表(当前在.jasper或.jxrml中)填充它的详细信息带吗?

目前,只有一个我想要的子报表使用datasource(tablemodel),而其他想要的子报表从参数获取数据。

我已经找到了几种不同的方法来做一件事情,最终达到我想要的结果,但到目前为止还没有成功。哪些建筑商/经理/我需要什么?因为找不到关于不同类、方法及其参数的足够信息而感到有点沮丧。他们为什么在那里以及需要什么。举例说明不够...

我是否应该使用DynamicReportBuilder为生成JasperReport的DynamicJasperHelper生成DynamicReport,而JasperReport又由JasperfillManager.FillReport方法填充?

共有1个答案

东门子昂
2023-03-14

将所有子报表都包含在一个主报表中,并使用打印时表达式以获得可见性。下面是子报表代码。

<subreport>
   <reportElement uuid="9f36c3cb-7e29-4040-a14e-6a91775e89e4" x="0" y="35" width="555" height="47">
      <printWhenExpression><![CDATA[$P{disp} == 1]]></printWhenExpression>
   </reportElement>
<!-- Other Element -->
</subreport>

注意上面代码中的下面一行。

<printWhenExpression><![CDATA[$P{disp} == 1]]></printWhenExpression>

这意味着当$p{disp}.intvalue()==1时,应包含整个子报表。这里的$p{disp}是使用PrintWhenExpression时必须传递给report的参数。

 类似资料:
  • 我有一个要转换成CSV格式的XML。我使用Jasper Reports来转换它,并使用Jasper Studio来设计JRXML。 这是XML: 我希望CSV格式包含以下列: fields_exitence分为3个(nonMap、ux和两者),属性在

  • 我正在使用 iReport 4.0.2 创建一个包含一个子报表的主报表。我尝试在子报表的页眉带和页脚带中添加一些静态文本,我希望页眉带和页脚带中的文本将重复,但如果子报表本身有多个页面,则这些文本仅显示在子报表的第一页(但不显示在其余页面上)。 实际上,我想做的是在子报表中放置一个“第 x 页,共 n 页”变量,以便子报表可以有自己的一组页码。 这是我当前报告的布局:(对不起,我没有权限在这里上传

  • 我已经创建了一个Jasper报告,我正试图将报告集成到主报告中。我可以按原样填充子报表中的数据,但如果我将其集成到主报表中,我就不能呈现我在子报表中呈现的数据。事实上,我在集成子报表的地方得到了空白。

  • 我目前正在设计一个报表,它应该在主报表的详细信息部分使用多个子报表。我刚刚开始,到目前为止,我的主报告只留下了详细信息1和页脚带,在页脚中使用Y的第X页,以及详细信息1中的第一个子报告。 我使用A4横向页面格式的两个报告。我的子报表当前包含标题带和详细信息带。 编辑1:附加问题当我修改子报表时,主报表的预览不变,它总是显示子报表的旧版本

  • 当我使用iReport v2.0.4制作一些带有子报告的报告时,我遵循了这个代码示例 现在我想运行Java这个报告。我的代码是: 给出以下错误 现在我正在更改我的IReport版本5.5像这样的错误 保存我的报告Path=E:\Myproject\NetBeansProjects\Inventory_control_system_for_hotel\Mainreportname.jrxmlSub

  • 我必须为主报表中的每一行打印一个子报表,但问题是,只有当我返回主报表中某一列的字段值时,我才得到子报表的数据(< code>Subreport取决于每行中该字段值的返回值)。 我知道jasper报告不支持字段值中的典型数据类型(< code>$F{abc}只能保存有限的数据类型,如字符串、数字等),如< code >数组 、< code >列表 、< code >集合或< code>JRDataS