В Crystal Reports вы можете передавать SQL напрямую в параметр отчета в виде строки, и SQL разрешается при запуске отчета.
Например, допустим, вы хотите запланировать запуск отчета в начале каждого месяца для данных, относящихся к предыдущему месяцу. Запрос для конкретного отчета может выглядеть следующим образом:
SELECT
sum(jobid) jobs
FROM
job
WHERE
created_date >= {?StartDate}
and created_date < {?EndDate}
Вместо установки параметров StartDate и EndDate в поля даты и необходимости обновлять параметры, отправляемые в отчет каждый месяц, вы можете установить параметры в строку и передать следующий SQL-код каждому параметру:
StartDate = add_months(trunc(sysdate, 'mm'), -1)
EndDate = trunc(sysdate, 'mm')
Таким образом, каждый раз, когда запускается запланированный отчет, он автоматически определяет правильный период времени, для которого нужно запустить. Это работает, потому что отчеты Crystal передают аргументы как литералы, а не как 'trunc (sysdate,' mm ')'.
Можно ли передать SQL в параметр отчета BIRT, как этот? Я использую плагин BIRT для Eclipse и продолжаю получать ошибки ORACLE, которые указывают на то, что BIRT передает параметры в запрос в виде строки SQL с одинарными кавычками.