Результаты запроса iReport с разбивкой по неделям или дням

Я использовал iReport для создания простого JasperReport, который я запускаю на JasperServer. Он запрашивает некоторые поля из нескольких таблиц MySQL на основе отметки времени их создания. Я предоставляю временные метки начала и окончания периода для покрытия в отчете в виде параметров типа java.sql.Timestamp. Это прекрасно работает.

Меня попросили ввести возможность показывать разбивку по неделям или дням данных отчета. Я хотел бы получить некоторые идеи о том, с чего начать с этого. На данный момент я не думаю, что смогу приспособить это «расщепление» в запросе отчета, поскольку эта функция выходит за рамки того, для чего предназначен SQL. Я знаю, что это звучит как развёртка OLAP, но я хотел бы по возможности избегать OLAP (крутая кривая обучения, сжатые сроки).

Моей первой мыслью было создать вложенный отчет для каждой недели или дня. Но это оставило бы меня с произвольным количеством подотчетов (в зависимости от общего периода времени, охватываемого отчетом, который меняется при каждом выполнении), и, насколько я могу судить, iReport не поддерживает это.


person Epicurus    schedule 22.05.2012    source источник
comment
Можешь объяснить, что ты имеешь в виду под поломкой? Вы хотите показать общее количество по типу (день, неделя и т. д.) или выполнить группировку, как в группе sql?   -  person user845279    schedule 23.05.2012
comment
Например, если у меня есть один столбец, показывающий количество товаров, проданных для каждого продукта за определенный период времени, я хотел бы разбить этот столбец на количество товаров, проданных за каждую неделю этого периода.   -  person Epicurus    schedule 23.05.2012


Ответы (1)


Вот один из способов разбить отчет.

  1. Создайте еще один параметр, groupby, который содержит значение, обозначающее требование группировки. Значения могут быть числовыми, строковыми или любыми другими, если они соответствуют дню, неделе, месяцу и т. д. Доступная группировка.
  2. Создайте группу отчетов, разбивку, которая будет предоставлять разбивку. Выражение группы будет зависеть от параметра groupby. Выражение представляет собой дату в записи, за исключением того, что любая деталь, более точная, чем значение groupby, будет обрезана.
  3. Создайте переменную total, которая будет суммировать данные в записях. Переменная должна быть сброшена в группе разбивки и может быть напечатана в концевой полосе разбивки.
  4. Убедитесь, что запросы sql сортируются по дате, чтобы работало выражение groupby.

Дайте мне знать, если у вас есть вопросы.

person user845279    schedule 23.05.2012
comment
Спасибо. Группы отчетов могут быть тем, что я ищу. Я дам вам знать, если это решит мою проблему. - person Epicurus; 23.05.2012