о встроенных отчетах pentaho - PullRequest
       3

о встроенных отчетах pentaho

0 голосов
/ 22 сентября 2011

Я встроил механизм отчетов в свое Java-приложение.Я недавно обновил отчет о petaho до 3.8.2.У меня проблема с этим обновлением, поэтому я включил журналы Pentaho, чтобы посмотреть, что происходит.и я получил следующий соответствующий журнал.Может кто-нибудь объяснить, в чем его смысл?Из этих журналов я предположил, что фабрика данных не может найти значение параметров моего запроса и вместо этого установить значение null.если это так, я не понимаю, почему это так, потому что в коде я устанавливаю значения этих параметров в основном отчете, как показано ниже.аналогичным образом я устанавливаю другие значения параметров.

vReport.getParameterValues().put("propertyId", pPropertyId);

журнал, о котором я говорю, находится здесь.

Sep 20 16:00:44,540 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Detected parameter:[dateFormat, dateFormat, dateFormat, dateTimeFormat, dateTimeFormat, bookedFrom, bookedTo, propertyId]
Sep 20 16:00:44,561 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 1 set to <null>
Sep 20 16:00:44,561 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 2 set to <null>
Sep 20 16:00:44,562 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 3 set to <null>
Sep 20 16:00:44,562 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 4 set to <null>
Sep 20 16:00:44,563 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 5 set to <null>
Sep 20 16:00:44,563 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 6 set to <null>
Sep 20 16:00:44,564 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 7 set to <null>
Sep 20 16:00:44,564 DEBUG SimpleSQLReportDataFactory - [ IP=0:0:0:0:0:0:0:1, Property=72, Req=6 ] - Parametrize: 8 set to <null>

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

1 Ответ

0 голосов
/ 28 сентября 2011

Pentaho Reporting будет использовать ваши значения параметров, только если вы также объявите правильные параметры в своем отчете.Простое добавление случайных пар имя-значение не будет работать.

Так что, по крайней мере, объявите все параметры, которые вы хотите использовать.В самой общей версии, если вы выполняете правильную проверку введенных пользователем данных и можете гарантировать, что значения, которые вы передаете, являются безопасными и действительными, используйте этот код со всеми вашими параметрами:

final ModifiableReportParameterDefinition parameterDefinition =
    (ModifiableReportParameterDefinition) report.getParameterDefinition();
parameterDefinition.addParameterDefinition(new PlainParameter("dataFormat", Object.class));
...