Пустой подотчет в Jasper Reports - PullRequest
1 голос
/ 02 апреля 2010

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

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

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

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

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

  • У меня также есть параметр подотчета, определенный как «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);

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

Спасибо заранее, Энди.

1 Ответ

1 голос
/ 04 апреля 2010

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

Если вы используете полосу подробностей в подотчете, то вам понадобится запрос данных для отчета.

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

SELECT 'a' FROM DUMMY

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...