V8 функція для виведення звіту з угрупуваннями за допомогою будівника звіту, книга знань

v8: Функція для виведення звіту з угрупуваннями за допомогою будівника звіту

Функція, за допомогою якої можна швидко і зручно вивести звіт з угрупуваннями (а-ля зведена таблиця), з довільним порядком угруповань і складом підсумків. Досить тільки вказати параметри, функція зробить все сама.


Ключові слова: будівник, звіт


Будівник звіту - потужна штука для швидкого написання звітів.
Однак іноді хочеться використовувати свої макети, та й просто хотілося б мати "рибу", яку можна було б швидко використовувати для написання звіту, особливо якщо дані беруться з таблиці значень.
Це саме така "риба".

Я пропоную функцію обПостроітельВивестіПоГруппіровкам. яка займається виведенням таблиці значень за допомогою будівника звіту з заданими угрупованнями, підсумками та параметрами угруповань.
Підсумки можна використовувати будь-які - кількість, сума, середнє.
Поки ще не підтримується сортування, саме тому список параметрів передається у вигляді структури, щоб можна було додавати свої параметри.
Використовується гнучке управління параметрами:
= Якщо не заданий макет, то заміна макета не проводиться
= Якщо не задані параметри будівника, то вони і не призначаються
= Може використовуватися в якості джерела не тільки таблиця значень, але і результат запиту
= Якщо не заданий табличний документ, то вона не виводиться

Приклад виклику функції:

структура макета

Рядки з рівнями іменуються Уровень0, Уровень1.
Колонки з рівнями іменуються кУровень0, кУровень1, ...
Детальна інформація по рядках іменується кДеталі.
Загальні підсумки іменуються ОбщіеІтогі, шапка таблиці - ШапкаТабліци, підвал таблиці - ПодвалТабліци.

V8 функція для виведення звіту з угрупуваннями за допомогою будівника звіту, книга знань

Може бути на зображенні не помітно, але колонки з підсумками містять параметри, які називаються так само, як підсумки в таблиці значень, тобто наприклад "Сума", "Залишок", "Кількість".

Зауваження по коду


Нехай у нас є якась таблиця значень ТЗ.
Будівник звіту, прив'язаний до цієї таблиці значень, створюється так:


Припустимо, в списку значень спзГруппи у нас знаходиться список колонок-угруповань для звіту, в структурі спзІтогі - список колонок-підсумків (колонки-підсумки повинні мати явно вказаний тип число, інакше не буде підсумовуватися підсумок).

Потрібно вказати, що колонки спзГруппи будуть вимірами будівника - функція обПостроітельОтчетаУстановітьІзмеренія.
Потрібно вказати, що колонки спзІтогі будуть підсумками будівника і призначити їм деяку функцію підсумків (Кількість, Сума) - функція обПостроітельОтчетаУстановітьІтогі.
Потім викликає заповнення налаштувань будівника:


Налаштування будівника сформувалися, але порядок вимірювань може не відповідати тому порядку, який є у нас в стрГруппи, потрібно поправити порядок груп - функція обПостроітельОтчетаСкорректіроватьПорядокІзмереній.

Потім ми виконуємо будівник і заповнюємо параметри виведення макета:


Тепер потрібно підставити в будівник наш власний макет. Але в макеті будівника і в нашому назви груп можуть не збігатися, тому потрібно скорегувати назви. В змінної Макет зберігається наш макет, ми його опрацюємо і підставимо в макет будівника:


Потім ми заповнюємо параметри виведення макета:


Ну і тепер можна вивести результати будівника в табличний документ:

бібліотека функцій


Ось вихідний код бібліотеки функцій:

Схожі статті