2010-04-02 1 views
1

Я пытаюсь запустить отчет, который я создал в iReport, который содержит основной отчет и подчиненный отчет. В iReport субрепортаж запускает мелкие и содержит данные, однако, когда я пытаюсь запустить его из моего java-кода, вложенный отчет пуст.Бланк в отчетах Jasper

Что я сделал до сих пор:

  • У меня есть параметр String, в основном докладе под названием «SubReport», который используется для определения пути к подотчету. Например. Значение: "E: \ Java \ ReportLauncher \ Отчеты \ test_subreport1.jasper"

  • Выражение подотчет в главном отчете устанавливается: $ P {SubReport}

  • Выражение соединения подотчет является: $ P {REPORT_CONNECTION}

  • У меня также есть параметр subreport, определенный как «INVOICE_NUMBER», который установлен в $ F {InviInvNo}, который отображается в поле основного отчета.

В моем Java коде, у меня есть:

HashMap<String, Object> paramHash = new HashMap(); 
paramHash.put("INVOICE_NUMBER", invoiceID); 
paramHash.put("REPORT_CONNECTION", this.conn); 
paramHash.put("SUBREPORT", subReportPath); 

JasperPrint jasperprint = JasperFillManager.fillReport(this.reportPath, paramHash, this.conn); 

Основной отчет создается в порядке и заполняется. Однако область подрегистра не заполнена. Любые мысли о том, что я делаю неправильно?

Заранее спасибо, Andy.

ответ

1

Так вы ничего о подотчет запросе не упоминается:

Если вы используете Detail Бэнд в подотчета, то вам нужен запрос данных для отчета.

В старом iReport, от Data меню, выберите Report Query и напишите ваш запрос здесь. Если вам нужна только одна запись (т. Е. Подробная группа только один раз), вы можете использовать фиктивную таблицу. Как:

SELECT 'a' FROM DUMMY 

В противном случае, если вы не хотите использовать Detail Band, у вас есть возможность просматривать другие группы без использования запроса. От Edit меню, выберите Report Properties, под More... tab, установите флаг When no data на All Sections, no detail