2011-11-11 69 views
1

我是DynamicJasper的新手。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来添加的。
我希望子报表将显示标题,副标题和列标题,即使没有数据要显示在子报表内容中,但目前它没有显示有关子报表的任何内容。

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

+0

嗨,我尝试使用addFooterSubreport添加DJGroup下我的报表,而这一次我得到了一个错误 - ar.com.fdvs.dj.core.layout.LayoutExceptionat ar.com .fdvs.dj.core.layout.AbstractLayoutManager.applyLayout(AbstractLayoutManager.java:150)ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:517) 任何人都知道如何解决这个问题?非常感谢高级! –

回答