Генератор звітів crystal reports і дизайнер Юніверсом universe designer
У попередній статті ми розглянули кілька варіантів написання SQL-запитів по формуванню даних для поширеного звіту, що включає Кросстабліца. У даній статті пропонується ще один варіант вирішення, в основі якого лежить використання технології SAP Business Objects - Юніверс - проміжного шару метаданих, за допомогою якого користувачі виконують запити до бази даних.
Юніверс - це файл, який містить наступне:
Необхідно додати, що побудова звіту за допомогою генератора звітів CrystalReports на основі Юніверс також можливо для тих користувачів, хто є частиною системи SAP Business Objects Enterprise.
Отже, Юніверс - проміжний шар, які представляє дані в розрізі бізнес-логіки, а не зберігання бази даних. Спочатку реляційні СУБД орієнтовані саме на зберігання і обробку інформації, і часто побудова звітів по таким структурам - надзвичайно складне завдання. Має сенс ввести проміжний рівень, в якому дані представляються у вигляді більш зручному для бізнес-користувача. У попередній статті ми використовували пряме з'єднання з базою даних, а зараз розглянемо Юніверс.
Звіт за тиждень по співробітниках.
Нагадаємо постановку задачі. Є деякі події, які фіксують співробітники. Факт скоєння події записується таким чином: фіксується дата здійснення, який співробітник оформив подія, і що конкретно сталося - тобто, тип події. У нашому прикладі тип події не грає ролі, нам необхідно бачити, скільки фактів вчинення події зафіксував той чи інший співробітник у який день тижня.
1. Події фіксуються тільки в момент скоєння, тобто, деякі дні можуть бути відсутні в таблиці, якщо не відбувалося подій. У звіт повинні увійти всі дні тижня.
2. Співробітники можуть не бути на роботі або не фіксувати події. У звіті повинен бути відображений весь список співробітників.
3. До звіту необхідно передати два значення - початок періоду і закінчення періоду. У прикладі, повторюся, розглянемо тижневий звіт.
Таблиця 1. Форма звіту.
Таблиця 2. Action. Таблиця фактів (подій), що відбулися за певний час.