DynamicJasper - 子报表未显示

时间:2011-11-11 02:38:36

标签: java subreport dynamic-jasper

我是DynamicJasper的新手。

我正在构建一个包含子报表的报表,我可以成功运行原始报表而不会出现任何错误,但子报表未显示。

我正在使用DynamicReportBuilder(drb)来构建我的主报告,我想知道我是以错误的方式添加子报表。

以下是我构建子报告的方式

private DynamicReport subReportTesting() throws Exception 
{

      DynamicReportBuilder drb = new DynamicReportBuilder();
      DynamicReport dr = drb.addColumn(subAbstractColumn1)
            .addColumn(subAbstractColumn2)
            .addColumn(subAbstractColumn3)
            .setPrintColumnNames(true)
            .setIgnorePagination(true)
            .setMargins(0, 0, 0, 0) 
            .setTitle("Sales Report") 
            .setSubtitle("This report was generated at " + new Date()) 
            .setUseFullPageWidth(true)
            .build();

    return dr;

}

以下是我添加主报告和子报告的方式。

public DynamicReport buildReport() throws Exception {
{

     DynamicReportBuilder drb = new DynamicReportBuilder();
     drb.setTitle("This is original report")
        .setSubtitle("This is subtitle")            
        .setMargins(15, 15, 15, 15)
        .setUseFullPageWidth(true);
        .setDetailHeight(30);
        .setAllowDetailSplit(true);
        .addColumn(mainAbstractColumn1);
        .addColumn(mainAbstractColumn2);
        .addColumn(mainAbstractColumn3);

     DynamicReport myDynamicReport = new DynamicReport();

        try {
            myDynamicReport = subReportTesting();
        } catch (Exception e) {
            e.printStackTrace();
        }

        SubReportBuilder srb = new SubReportBuilder();
        srb.setDynamicReport(myDynamicReport, new ClassicLayoutManager());

        try {
            mySubReport = srb.build();

            **drb.addConcatenatedReport(mySubReport);**

          } catch (DJBuilderException e) {
              e.printStackTrace();
          }
       DynamicReport myMainReport = drb.build();

       return myMainReport;
}

使用preparedStatement和HashMap添加我的内容 我希望子报表将显示它的标题,副标题和列标题,即使子报表的内容中没有数据显示,但目前它没有显示子报表。

如果我犯了任何错误,请纠正我。 非常感谢你。