Skip to content

Фильтрация отображения "указанной даты" по годам (графики без данных о дате) - Справка FineReport | Разработка отчетов | Использование отчетов | Учебные пособия

Фильтрация для отображения сравнения за год по "указанной дате" (данные о дате на графике отсутствуют)

1. Обзор

1.1 Сценарии применения

Иногда мы не хотим сравнивать показатели за год в течение всего месяца.

Например, если в октябре отмечается национальный праздник, если вы хотите узнать цепную реакцию общей цены контракта в октябре, нельзя напрямую сравнивать данные сентября и октября. Мы должны использовать данные "8-31 числа" для сравнения с данными "8-31 числа" в сентябре, чтобы показать лучшую картину ситуации с подписанием контрактов. Другой пример: этот месяц только что достиг 15-го числа, и он хочет знать общую цену контракта с 1 по 15 число этого месяца по сравнению с 1 по 15 число предыдущего месяца, а также сравнение в годовом исчислении с 1 по 15 число того же периода прошлого года.

Желаемый эффект: В фильтре интервала дат с 2013-03-15 по 2013-03-31, сгруппированная таблица автоматически отфильтровывает текущий временной период общей цены контракта. И рассчитайте сравнение за год по временному периоду, как показано на рисунке ниже:

1.2 Идеи для реализации

Это достигается путем добавления компонента фильтрации даты по несвязанному полю в сочетании с вычисляемым показателем.

1) Компоненты добавляют временные параметры

2) Используйте параметр для фильтрации общей цены контракта за текущий период времени, за последний месяц и за последний год. Поскольку временной период выбирается динамически, фильтр выбирает параметр "XXX одинаковая длина шага".

3) Вычисление одного и того же кольца и создание компонентов и приборных панелей

4) Добавьте компонент фильтра "Интервал даты" на приборную панель. Компонент фильтра не связывает поля, не выбирает диапазон управления и связывает только параметры.

(5) В этот момент вы можете отфильтровать интервал дат, чтобы получить динамическую общую цену контракта для той же цепочки данных.

2. Операционные шаги

2.1 Добавление компонентов

(1) Создайте новую тему анализа и добавьте в нее встроенные данные "Статистика данных провинциальных и муниципальных контрактов", как показано ниже:

2) Затем создайте новый компонент, который будет использовать эти данные, как показано ниже:

2.2 Новые параметры

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

1) Добавьте параметр типа time в интерфейс редактирования компонента, как показано ниже:

1688104547823585.png

2) Сгенерированные параметры сохраняются в анализируемой области, как показано ниже:

1688104564710474.png

2.3 Расчет общей цены контракта по периодам времени

Год к году = (общая цена контракта за текущий период времени - общая цена контракта за тот же период времени в прошлом году ) / общая цена контракта за тот же период времени в прошлом году * 100 процентов

Коэффициент цепочки = (общая цена контракта за текущий период времени - общая цена контракта за тот же период времени в предыдущем месяце)/общая цена контракта за тот же период времени в предыдущем месяце*100 процентов

Поэтому, чтобы запросить данные за месяц и месяц за месяц, нам нужны три новых поля: "Общая цена контракта за текущий период времени", "Общая цена контракта за тот же период времени в прошлом году" и "Общая цена контракта за тот же период времени в прошлом месяце". Все эти три новых поля необходимо привязать к вновь созданным параметрам. Для этого нужно выполнить следующие шаги:

2.3.1 Расчет "общей цены контракта за текущий период времени"

1) Скопируйте поле "Общая цена контракта" и назовите его "Общая цена контракта за текущий период времени".

2) Выполните детальную фильтрацию по полю "Общая цена контракта за текущий период времени". В результате фильтрации общая цена контракта будет отфильтрована и получены данные за интервал дат, выбранный компонентом фильтра.

2.3.2 Расчет "общей цены контракта за аналогичный период прошлого года"

1) Скопируйте поле "Общая цена контракта" и назовите его "Общая цена контракта за тот же период времени в прошлом году";

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

2.3.3 Расчет "общей цены контракта за тот же период времени в предыдущем месяце"

1) Скопируйте поле "Общая цена контракта" и назовите его "Общая цена контракта за тот же период времени в прошлом месяце";

(2) Детальная фильтрация поля "Общая цена контракта за тот же период времени в предыдущем месяце", фильтрация для достижения следующего эффекта: общая цена контракта фильтруется для получения данных за тот же период времени до января в интервале дат, выбранном компонентом фильтра.

2.4 Расчет коэффициентов за год

2.4.1 Расчет поля "Год за годом"

Добавьте поле расчета за год и введите формулу: if(ISNULL(sum_agg(общая цена контракта в прошлом году за тот же период времени)),null,(sum_agg(общая цена контракта в текущем периоде времени)-sum_agg( общая цена контракта в прошлом году за тот же период времени ))/sum_agg( общая цена контракта в прошлом году за тот же период времени))

Здесь мы разделили формулу на две части для удобства понимания пользователем:

факторизацияописанияфайл справки
if(ISNULL (sum_agg( общая цена контракта за тот же период времени в прошлом году )),null ,год к году )Если значение "Общая цена контракта за тот же период времени в прошлом году" отсутствует, то поле "Год за год" будет пустым, в противном случае будет рассчитано значение год за год.SUM_AG - СуммированиеISNULL
Год к году = (sum_agg( общая цена контракта за текущий период времени ) -sum_agg( общая цена контракта за тот же период времени в прошлом году ))/sum_agg( общая цена контракта за тот же период времени в прошлом году )Рассчитайте значение за год.SUM_AG - Суммирование

2.4.2 Расчет поля "Кольцо"

Добавьте поле Расчет кольца. Введите формулу: if(ISNULL(sum_agg(total contract price for same time period last month)),null,(sum_agg( total contract price for current time period )-sum_agg( total contract price for same time period last month ))/sum_agg( total contract price for same time period last month ))

Здесь формула также разделена на две части для удобства понимания пользователем:

факторизацияописанияИспользуемые функции
if(ISNULL (sum_agg( общая цена контракта за тот же период времени в прошлом месяце )),null ,ring )Еслизначение" Общая цена контракта за тот же период времени в предыдущем месяце " отсутствует, то это поле "Кольцо" будет пустым, в противном случае рассчитывается значение кольца.SUM_AG - СуммированиеISNULL
Ring = (sum_agg( общая цена контракта за текущий период времени ) -sum_agg( общая цена контракта за тот же период времени в прошлом месяце ))/sum_agg( общая цена контракта за тот же период времени в прошлом месяце )Рассчитайте стоимость кольца.SUM_AG - Суммирование

2.5 Производство таблиц группировки

После того как все поля рассчитаны, можно легко сделать компонент диаграммы.

Здесь мы создаем таблицу группировки, перетаскиваем поля в область анализа и меняем формат значений для "Год за год, г/г" на процентный. Это показано на рисунке ниже:

Примечание: Поскольку здесь не выбрана дата, общая цена контракта в одной и той же провинции за текущий месяц, предыдущий месяц и тот же период прошлого года равны, поэтому соотношение год к году равно 0. Когда компонент фильтра даты выбирает дату, он отображает то же соотношение для соответствующего времени.

2.6 Добавление компонентов фильтра для присвоения значений параметрам

1) Создайте новую приборную панель и добавьте в нее компоненты, как показано ниже:

2) Добавьте компонент Date Interval Filter на приборную панель, как показано ниже:

(3) на параметрах привязки компонента фильтрации для достижения диапазона дат фильтрации компонента фильтрации, который является динамической датой наших новых параметров, как показано на рисунке ниже:

Примечание: Компонент Filter не перетаскивает никакие поля, а в Scope of Control компонент не отмечен.

2023-11-06_17-16-45.png

2.7 Эффекты просмотра

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