Вопрос по jasper-reports – В чем разница между переменной, параметром и полем в JasperReports?

28

Я новичок вJasperReports, работали над некоторыми небольшими образцами. Кажется, «поля», «параметры» и & quot; Переменные & quot; очень часто используются для демонстрации динамических данных и очень похожи. Итак, могу ли я спросить, в чем их отличие?JasperReports?

Я предполагаю, что переменная определена в отчете Jasper и может динамически меняться. Параметр извлекается из внешнего источника (Java..etc), поле предназначено для сущностей (схема базы данных, сущность класса), но я не думаю, что с моим пониманием все в порядке.

Также может быть полезно прочитать"Chapter 6: Fields, Parameters and Variables" из"iReport Ultimate Guide" доступно для скачиванияhere (для загрузки необходимо зарегистрироваться). informatik01
В дополнение к другим ответам, здесь официальныйJasperReports Library - Tutorial где, среди прочего, есть соответствующие разделы, обсуждающиеVariables, Parameters а такжеFields. informatik01

Ваш Ответ

2   ответа
19

JasperReports Я могу сделать вывод, что вы будете использовать параметры и поля наиболее. Параметры и поля - это области памяти или значения, которые вы можете заполнить из своего кода, т.е. при создании отчета.

Обычно вы будете заполнять карту параметров или карты с другими настройками для вашего отчета. Я использую параметры, если у меня есть сводная страница или титульная страница (самая первая в отчете).

parameters.put("authorName", author); //where authorName is a parameter you have created in your JRXML template.

Далее вы можете использовать некоторые пользовательские"variables" или вы можете использовать переменные из JasperReports. Вот некоторые из этих полезных переменных: PAGE_COUNT и PAGE_NUMBER. Они отслеживают ... количество страниц отчета и номера страниц. Конечно, вы можете иметь пользовательские переменные.

Поля используются там, где данные часто меняются. Они очень похожи на параметры, но с каждой итерацией данные могут меняться. Например, поле может быть спискомgermanCar  объекты для одной итерации и списокjapaneseCar Объект для следующего. Я бы использовал поле для хранения спискаCar объекты, которые могут измениться.

В итоге параметры и поля очень похожи, но поля заполняются изJasperReportDataSource (поэтому они могут часто меняться при заполнении этого источника данных), в то время как параметры, которые вы будете использовать для титульных страниц или пользовательских настроек JR, при создании самого отчета. Они могут быть довольно запутанными.

Надеюсь это немного поможет!

Могут ли поля быть переменными в количестве? Или они должны быть только статичными? Я имею в виду, может ли отчет иметь определенное количество полей в зависимости от данных, предоставленных в отчет?
Поле может быть объектом List. Затем, сколько бы элементов у вас не было в вашем Списке (переданных из вашего приложения).
Обычно параметр будет содержать объект со значением, например, String или примитивный тип. Поля могут содержать коллекцию бинов, объектов и т. Д.
Спасибо за отличные ответы. Еще один вопрос - данные должны отображаться в списке, должны ли они быть в полях или, скажем, в типе Java, параметры - это примитивные типы, а поля - для коллекций? Dreamer
21

Parameters простой ввод в JasperReports. Вы должны определить параметры в JasperReport перед их использованием. Вы можете отобразить значение переменной, вы можете использовать его как часть логических выражений и даже можете передать его в подотчеты. Это может быть вход в запрос SQL.

Fields простые определения переменных. Вы можете рассматривать их как переменные экземпляра объекта источника данных, передаваемого в отчет, или они могут быть именами ключей, если источником данных является карта. Если вы конфигурируете JasperReport для создания набора данных на основе SQL, то поля - это имена столбцов ResultSet. Вы будете использовать поля для отображения набора результатов выполненного запроса SQL.

Variables другие виды переменных, которые живут в отчете Jasper, они не являются входными данными. Они используются для расчета суммы или среднего значения определенного поля (определено выше). Вы можете выполнять многие другие предопределенные функции вычисления над полями, используя переменные.

Я думаю, что создание класса Report было бы лучшим подходом. Поскольку класс Report может абстрагировать представление вашего отчета, он может выступать в качестве модели данных для отчета.
Могут ли поля быть переменными в количестве? Или они должны быть только статичными? Я имею в виду, может ли отчет иметь определенное количество полей в зависимости от данных, предоставленных в отчет?
Спасибо. Все примеры, которые я видел, - это передача параметров или результатов источника данных в виде полей в отчет Jasper, но как насчет экземпляра класса Java? Это нормально, если создать класс отчета, который содержит набор параметров и два списка полей, лучше передать весь отчет или отдельные элементы в отчет? Что лучше? Большое спасибо. Dreamer

Похожие вопросы