Передача параметра в ireport с помощью jsp - PullRequest
0 голосов
/ 28 февраля 2011

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

В отчете я поместил несколько параметров, некоторые из которых содержат формат даты. Все идет хорошо в начале, когда я использую to_date(<parameter variable>).

Но теперь кажется, что этот метод не может быть запущен на Postgres, поэтому я старался не использовать to_date().

Я просто оставляю это как

ex: date = $P{date}

и я изменяю начальное значение на

new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2011").

При компиляции ошибки нет, но при запуске приложения возникает ошибка, вызванная:

java.io.StreamCorruptedException: invalid stream header: 3C68746D.

Позже я попытался изменить тип параметра на Stringjava.util.Date) и поставить "" в качестве исходного значения.

Хорошо работает, за исключением базы данных Oracle . Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2011

Передайте дату в формате строки и в формате «ДД / ММ / ГГГГ» в i-report из вашего кода.

В i-report напишите запрос в этом формате (измените форматдаты, сравниваемой в соответствии с вводом):

to_date('fieldnameofDB','DD/MM/YYYY')=$P{nameOfParameterPassed}

Просто измените способ, которым вы принимаете параметр, установите формат параметра на String.

0 голосов
/ 02 марта 2011

Прежде всего, я думаю, вы поняли, что пытались поместить значения String в поля даты, когда вы сделали new SimpleDateFormat("dd/MM/yyyy").parse("01/01/2011"), верно?

Я не знаю, правильно ли я вас понял, но я предполагаю, что поле в вашей базе данных - Дата, поэтому вы должны использовать даты, а не строки. Окончательное преобразование формата (которое приведет к появлению строки) должно быть в шаблоне отчета или в любом другом используемом вами формате. Но база данных будет возвращать даты вашему API.

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