如何在主报表中动态排序子报表(jasper报表)

时间:2015-10-01 09:08:06

标签: jasper-reports

假设,一份主要报告可以有9份子报告。 然后,用户可以拥有用户可以根据他/她的选择订购子报告的UI(例如,应该首先显示哪个子报告,然后显示哪个子报告,等等)。 那么,我怎么能实现这个目标呢?

1 个答案:

答案 0 :(得分:0)

按照以下步骤来达到您的要求

  1. 创建9个参数,例如 reportpath1,reportpath2,reportpath3,.... reportpath9。

  2. 提示用户输入报告的顺序。根据订单,将尊重的报告路径传递给每个参数。

  3. 意思是,如果子报告9被选为第一个报告,那么如果选择子报告8作为第二个报告路径作为reportpath1 传递>,然后将该报告的路径传递为reportpath2 ,依此类推

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

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

          <subreportExpression><![CDATA[$P{ReportPath1}]]></subreportExpression>
      

      对于subreport2,

          <subreportExpression><![CDATA[$P{ReportPath2}]]></subreportExpression>
      

      等等。

      希望这可以解决你的问题。

      从子报告获取变量的答案

        
          
      1. 右键点击“父报告”中的 子报告
      2.   
      3. 转到 属性
      4.   
      5. 子报告 会话下,点击“返回值
      6.   
      7. 添加 子报告变量 并将其映射到 父报告变量
      8.   
      9. 然后在父报告中使用该parentreport变量。
      10.   

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