首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态排序主报表(Jasper report)中的子报表

如何动态排序主报表(Jasper report)中的子报表
EN

Stack Overflow用户
提问于 2015-10-01 09:08:06
回答 1查看 1.2K关注 0票数 0

假设一个主报表可以有9个子报表.然后用户可以拥有用户界面,用户可以根据他/她的选择订购子报表(比如,应该首先显示哪个子报表,哪个是下一个报告等等)。所以,我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-01 10:49:30

按照以下步骤实现您的需求

  1. 创建9个参数,例如:reportpath1、reportpath2、reportpath3、....reportpath9.
  2. 提示用户输入报表的顺序。根据顺序将尊重的报表路径传递给每个参数.

意思是,如果选择subreport9作为第一报表,则将该subreport9的路径传递为reportpath1,如果选择subreport8作为第二报表,则将该报表的路径传递为reportpath2等等。

例如,如果"report/samples/subreports/subreport9",为subreport9的路径,则将参数reportpath1值设置为"report/samples/subreports/subreport9".如果subreport8的路径为“report/samples/subreports/subreport8 8”,则将参数reportpath2值设置为等。

  1. 在报表设计中,创建9个子报表,而不是对每个报表的路径进行硬编码,而是在subreportexpression中传递参数,如下所示

对于subreport1,

代码语言:javascript
复制
    <subreportExpression><![CDATA[$P{ReportPath1}]]></subreportExpression>

对于subreport2,

代码语言:javascript
复制
    <subreportExpression><![CDATA[$P{ReportPath2}]]></subreportExpression>

诸若此类。

希望这能解决你的问题。

从子报表获取变量的答案

  1. 右键单击父报表中的子报表。
  2. 转到Properties
  3. 在子报告会话下,单击“返回值”
  4. 添加子报表变量并将其映射到父报表变量。
  5. 然后在父报表中使用父报表变量。

希望这能解决你的另一个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32883609

复制
相关文章

相似问题

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