Как передать значение даты в отчет BIRT через строку запроса

Я создал статическую html-страницу (называемую start.jsp), содержащую форму, в которой пользователь выбирает 2 диапазона дат, и эта форма имеет средства выбора даты для этих текстовых полей. Когда пользователь отправляет форму, он должен перейти к отчету BIRT, который я разработал. Он ДОЛЖЕН передавать 2 параметра, которые нужны моему отчету (дата начала и дата окончания).

Вот строка запроса, которая добавляется к URL-адресу birt-viewer / run__report = Business_Activity_Monitoring.rptdesign & FilterStartDate = 2000-01-01 & FilterEndDate = 2009-01-01

Я получаю ошибку неверной даты: org.eclipse.birt.report.exception.ViewerValidationException: параметр «FilterStartDate» недействителен. Значение «06-08-2010» недопустимо для типа «dateTime».

Как получается, что если я полностью удалю строку запроса, то BIRT предложит мне ввести дату начала и дату окончания (скриншот прилагается). Я ввожу те же данные, которые пытается отправить форма, и она работает !?

Это доказывает, что моя строка даты правильно отформатирована, но она не примет их, если они будут отправлены в отчет BIRT через строку запроса? Похоже, у него проблема с тем, что это в первую очередь строка.

Я правильно настроил эти параметры отчета в своем отчете BIRT. Я также попытался изменить их, указав для параметра «Форматировать как» значение «пользовательский» ГГГГ-ММ-дд, но это не сработало.

Можно ли вообще отправить параметры даты в отчет о рождении через строку запроса?

Я предполагаю, что решение будет включать преобразование этих строк в даты на вкладке «скрипт» отчета о рождении. но я не знаю, как получить отсюда доступ к переменным строки запроса или как установить переменные параметров отчета.

Спасибо -Томми


person Tommy    schedule 14.06.2010    source источник


Ответы (4)


Параметр вашего отчета, вероятно, имеет тип данных «DateTime». Таким образом, вашего прохождения одного свидания недостаточно. Когда вы используете страницы запроса параметров OOTB, это скрыто. Либо измените тип данных параметра на «Дата», либо добавьте временной размер к параметру, передаваемому в отчет через вашу страницу (например, 2009-01-01 00:00:00). Любой подход должен помочь.

Удачи!

person MystikSpiral    schedule 14.06.2010
comment
Спасибо MystikSpiral - с момента публикации я решил проблему сам, и исправление было связано с тем, что вы упомянули. Параметр моего отчета имел тип данных, дату и время, и я фактически изменил его на строку. Это устранило проблему. SQL-запрос в моем наборе данных был в порядке с принятием строки в качестве параметра - при условии, что он был отформатирован в формате даты MySQL. - person Tommy; 16.06.2010

Ниже приведен формат, который BIRT использует для проверки параметров:

DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS"

Итак, если вы передадите дату / время, как оно должно работать

&mydate=2009-11-22 00:00:00.0
person mike    schedule 14.11.2011

Если параметр даты начала, который вы передаете, - 2000-01-01, почему он выдает сообщение об ошибке, в котором говорится, что 06-08-2010 недействительно? Похоже, что параметр даты устанавливается в другом месте в отчете либо как значение по умолчанию, либо, возможно, в сценарии события.

person Community    schedule 15.06.2010
comment
Спасибо, Марк, в своем посте я использовал смесь разных примеров ошибки. Извините за недопонимание - person Tommy; 16.06.2010

Проверьте свой формат даты; помните, что ММ используется для месяца, а мм - для минут.

Также проверьте это решение, которое можно найти на форумах сообщества Eclipse:

Попробуйте это в URL-адресе:

& mydate = 22.11.2009 & __ islocale = mydate

Замените mydate своим именем параметра. Параметр __isLocale указывает, что параметр локализован.

person muriloq    schedule 30.01.2011