Несколько запросов SQL в отчете - PullRequest
3 голосов
/ 10 мая 2011

Требуется сгенерировать один отчет, соединяющийся с одной БД:

  1. Query1 - это группа по запросу, в которой есть гистограмма и круговая диаграмма.
  2. Query2 - это простой запрос, по которому создается таблица.

Оба эти запроса требуют результатов, основанных на предложении WHERE, которое предоставляется динамически.

Может кто-нибудь указать мне нанесколько примеров, как этого добиться?

Спасибо.

1 Ответ

3 голосов
/ 11 мая 2011

Вы можете указать JasperReports использовать параметр для определения части запроса с использованием синтаксиса $P!{PARAMETER_NAME}. Это говорит JasperReports использовать буквальное значение PARAMETER_NAME как часть запроса. Затем вы можете сделать:

  1. Создайте параметр с именем WHERE_CLAUSE в отчете.
  2. Дайте WHERE_CLAUSE значение по умолчанию 1=1.
  3. Рассмотрим следующий оператор SQL:
    SELECT * FROM table WHERE $P!{WHERE_CLAUSE}

Выражение $P! изменяет буквальный оператор SQL на:

SELECT * FROM table WHERE 1=1

Это правильный запрос. Обратите внимание на разницу между $P{} и $P!{} - восклицательный знак (!) важен.

Затем вы можете динамически предоставлять условия SQL.

...