JasperReport & Заполнение Компонентов - PullRequest
0 голосов
/ 09 ноября 2011

JasperReports новичок здесь. Я прочитал учебник и краткий справочник и прочитал ряд статей, касающихся JR, а теперь поигрался с дизайнером отчетов iReport для день или около того.

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

  • Поля отчета
  • Параметры отчета
  • Переменные отчета
  • Datasets

Играя с iReport, кажется, что поля, параметры и переменные могут существовать на уровне отчета, а также помещаться в наборы данных. Но мое понимание того, когда что-то представляет собой поле против параметра или переменной, очень размыто, и мое понимание того, как они связаны с наборами данных, также очень шатко.

Используя наборы данных в качестве небольшого следствия, я с трудом наблюдаю «лес сквозь деревья» с тем, как компоненты диаграммы (такие как круговые диаграммы, таблицы и т. Д.) «Питаются» или «вводятся» их данные.

Так ... Я подумал о примере, который, если бы ответили, связал бы все вместе для меня (я верю!). Допустим, у меня было два компонента диаграммы, текстовое поле и круговая диаграмма. Я хочу, чтобы круговая диаграмма отображалась ниже текстового поля следующим образом:

The author of this report is: <value supplied by the data source>

<pie chart here>

Таким образом, в «время заполнения» (я думаю я использую это правильно ...), отчет будет «заполнен» именем автора отчета (строка), как а также круговая диаграмма, состоящая из 2 круговых срезов: 1 среза со значением 75 с меткой / ключом «Eloi» и 2-го среза со значением 25 и метки / ключа «Morlocks». Если я не использую правильную терминологию JR здесь, то я пытаюсь достичь круговой диаграммы с заполнением во времени с двумя срезами: срез «Eloi», занимающий 75% диаграммы, и срез «Morlocks», потребляющий 25% график.

Если кто-то может объяснить или дать фрагменты кода (Java / JRXML) для настройки диаграммы такого типа, я думаю, что это поможет соединить все точки и поможет мне понять, как компоненты заполняются данными. Заранее спасибо за любую помощь!

1 Ответ

1 голос
/ 10 ноября 2011

Думайте о параметрах как о вещах, которые конечный пользователь предоставляет в отчет во время выполнения.Например, вы предоставляете StartDate и EndDate, которые будут использоваться в запросе.Дата начала, которая вас интересует, является чем-то, что вы знаете, оно не предоставлено источником данных.(Существует несколько вариантов этой идеи: возможно, ваше приложение знает о вас что-то на основе вашего логина и предоставляет их в качестве параметров. Но, опять же, это вещи, известные до того, как отчет будет выполнен.)

Подумайте ополя как данные, которые возвращаются из вашего источника данных.Это то, чему вы хотите научиться.Например, вы выполняете запрос, подобный следующему:

select political_group, gullibility from mytable where the_date > $P{StartDate}

Предположительно, вы вводите значение '802701' для StartDate, а затем получаете результаты, подобные этому:

$F{political_group} $F{gullibility}
Eloi                75
Morlock             25

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

Посмотрите на этот отчет с круговой диаграммой, который я опубликовал пару лет назад: http://mdahlman.wordpress.com/2009/05/02/limiting-pie-pieces/

В нем есть основные идеи, которые вы хотите.Я помещаю заголовок непосредственно в диаграмму, а не как отдельное поле.Это было бы очень простым изменением.Аналогично, вы можете изменить заголовок на «Автор этого отчета: $ P {TheAuthor}», а затем передать этот параметр в отчет во время выполнения.

Использование поля в заголовке отчета, а не параметраВозможно также.Но обычно это не имеет смысла.Поля будут иметь много значений в наборе данных.Какой из них принадлежит в названии?В приведенном выше случае «Eloi» и «Morlock» являются полями, и они действительно не имеют смысла в заголовке отчета.(Конечно, вы можете представить себе особые случаи. Вы можете объединить все значения polit_group в одну строку и поместить их в заголовок отчета. Но в подавляющем большинстве случаев это не будет разумным.)

Удачи.

...