002 – Створення перехресних таблиць в Delphi




Умова задачі

Задано таблицю товарів, яка має таку структуру полів

Назва поля

Тип даних Ключове поле Пояснення

ID_Tovar

Лічильник +

Унікальний ідентифікатор поля

Name

Текстовий

Назва товару

Price

Дійсне число

Ціна товару

Count Ціле число

К-сть одиниць товару

Використовуючи засоби системи програмування Delphi-7 зробити перехресну таблицю за двома вимірами: Назва товару та вартість одиниці товару. Також здійснити сумування за стовпцями та рядками таблиці.

Хід виконання

  1. Запуск Delphi.
  1. Створення бази даних та таблиці засобами утиліти Database Desktop.

Створюємо базу даних з псевдонімом “myDb”. Створюємо таблицю бази даних з назвою “tovar.db” яка має структуру згідно з умовою задачі.

  1. Компоненти для Створення перехресної таблиці.

Для створення перехресних таблиць в системі програмування Delphi використовуються компоненти з вкладки “Decision Cube” палітри компонент (рис. 1).

01_01_00_001_01_

Рис. 1. Вкладка Decision Cube з палітри компонент

Отже, виносимо на форму такі чотири компоненти з вкладки “Decision Cube”:

– компонент типу TDecisionCube (за замовчуванням має ім’я DecisionCube1);

– компонент типу TDecisionQuery (за замовчуванням має ім’я DecisionQuery1);

– компонент типу TDecisionSource (за замовчуванням має ім’я DecisionSource1);

– компонент типу TDecisionGrid (ім’я за замовчуванням DecisionGrid1).

З цих чотирьох компонентів тільки TDecisionGrid призначений для відображення даних таблиці.

Форма з розміщеними компонентами має вигляд (рис. 2):

01_01_00_001_02_

Рис. 2. Основна форма програми з компонентами DecisionCube1, DecisionQuery1, DecisionSource1, DecisionGrid1

 

  1. Налаштування компонент.

Встановлюємо такі властивості для компонент:

– у компоненті DecisionCube1 властивість DataSet встановлюємо рівною в DecisionQuery1;

– у компоненті DecisionQuery1 властивість DatabaseName встановлюємо в значення myDb;

– у компоненті DecisionSource1 властивість DecisionCube встановлюємо в значення DecisionCube1;

– в DecisionGrid1 властивість DecisionSource рівна DecisionSource1.

 

  1. Налаштування “Decision Query Editor”.

Налаштування перехресної таблиці здійснюється в компоненті DecisionQuery1. Для виклику вікна налаштування необхідно клікнути правою кнопкою миші і з контекстного меню вибрати Decision Query Editor. Другий метод виклику – подвійний клік мишкою в області компонента DecisionQuery1 (рис. 3).

01_01_00_001_03_

Рис. 3. Виклик редактора для налаштування в компоненті DecisionQuery1

У результаті виведеться вікно “Decision Query Editor” (рис. 4).

01_01_00_001_04_

Рис. 4. Вікно “Decision Query Editor”

Як видно, вікно складається з двох вкладок:

– вкладка “Dimensions/Summaries” дозволяє задавати поля таблиці та агрегатні функції (суми, загальна кількість та ін.) на основі яких здійснюються обчислення;

– вкладка “SQL Query” дозволяє описувати запити до таблиці на мові SQL.

В цьому вікні є доступні такі області (поля):

– область List of Available Fields виводить інформацію про поля вибраної таблиці;

– область Dimensions виводить інформацію про поля таблиці, які є вимірами на основі яких розраховуються агрегатні функції (суми, середнє арифметичне і т.д.);

– область Summaries висвітлює які агрегатні функції застосовуються до таблиці;

– поле Table показує таблицю бази даних, для якої ведуться обчислення;

– поле Database задає базу даних, до таблиць якої здійснюються обчислення.

У нашому випадку вибираємо таблицю “tovar.db” з бази даних “myDb”.

Вікно редактора прийме вигляд (рис. 5).

01_01_00_001_05ru

Рис. 5. Вікно редактора “Decision Query Editor” після вибору бази даних “myDb” і таблиці “tovar.db”

З допомогою стрілок вліво (вправо) можна додавати поля таблиці, що будуть брати участь в обчисленнях. Поля додаються в область Dimensions.

Стрілки вправо/вліво, що розміщені в нижній частині вікна редактора дозволяють задавати ту чи іншу агрегатну функцію (рис. 6).

01_01_00_001_06ru

Рис. 6. Додавання агрегатних функцій

Сформуємо вікно редактора таким чином, щоб воно мало наступний вигляд і підтвердимо свої дії кліком на кнопці OK (рис. 7).

01_01_00_001_07ru

Рис. 7. Вікно редактора після заповнення (налаштування) усіх полів

У вкладці “SQL Query” можна переглянути вигляд сформованого редактором запиту на мові SQL.

 

  1. Налаштування компонента DecisionCube1.

Після налаштування компонента TDecisionQuery можна здійснити налаштування компонента TDecisionCube.

Для цього викликається редактор Decision Cube так само як і у випадку з редактором Decision Query Editor (рис. 8).

01_01_00_001_08e

Рис. 8. Виклик редактора “Decision Cube” компонента DecisionCube1

У результаті відкриється вікно Decision Cube Editor (рис. 9)

01_01_00_001_09ru

Рис. 9. Вікно редактора “Decision Cube Editor”

Вікно містить дві вкладки: “Dimension Settings” та “Memory Control”.

У першій вкладці “Dimension Settings” можна задати ряд налаштувань для вимірів куба. Вкладка містить такі поля:

– поле “Display Name” задає ім’я, яке буде відображатись в компоненті відоображення даних TDecitionGrid;

– список “Type” задає тип поля. У нашому випадку список неактивний, тому що інформація витягується з компонента TDecisionQuery;

– список “Active Type” задає момент завантаження в пам’ять бази даних (“As Needed” – в міру необхідності, “Active” – завжди, “Inactive” – ніколи);

– рядок “Format” дозволяє задати формат відображуваних значень;

– випадаючий список “Grouping” дозволяє групувати дані за часом.

У нашому випадку не робимо ніяких змін у цьому вікні і залишаємо все як є.

 

  1. Відображення перехресної таблиці.

Якщо попередні кроки виконані правильно, то можна відобразити перехресну таблицю. Для цього в компоненті DecisionQuery1 властивість Active встановлюємо в значення true.

У результаті форма програми прийме вигляд (рис. 10).

01_01_00_001_10ru

Рис. 10. Вигляд форми після проведених налаштувань

Після запуску програми на виконання отримуємо перехресну таблицю (рис. 11).

01_01_00_001_11ru

Рис. 11. Результат виконання програми

 

Підсумок

У цій роботі вивчено створення елементарних перехресних таблиць в системі програмування Delphi-7.

Для організації роботи з перехресними таблицями використовуються такі компоненти з палітри “Decision Cube”:

– компонент TDecisionCube;

– компонент TDecisionQuery;

– компонент TDecisionSource;

– компонент відображення TDecisionGrid.

Попередньо база даних і таблиця мають бути створені засобами утиліти Database Desktop, яка постачається як інструмент роботи з базами даних в системі програмування Delphi-7.

В розглянутому прикладі створено таблицю на основі двох вимірів. Користувач може на свій розсуд створювати перехресні таблиці з більшою кількістю вимірів. Збільшення кількості вимірів може призвести до ускладненого сприйняття сформованих даних в таблиці. Тому, рекомендовано, щоб кількість вимірів коливалась в межах від 2 до 4.