Я новичок в 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;
}
Мое содержимое добавляется с использованием prepareStatement и HashMap.
Я ожидаю, что в подотчете будут отображаться заголовок, подзаголовок и заголовок столбца, даже если в его содержимом нет данных для отображения, но в настоящее время он ничего не показывает о подотчете.
Пожалуйста, поправьте меня, если я сделаю какую-либо ошибку.
Большое вам спасибо.