Умова задачі
Задано таблицю товарів, яка має таку структуру полів
Назва поля |
Тип даних | Ключове поле | Пояснення |
ID_Tovar |
Лічильник | + |
Унікальний ідентифікатор поля |
Name |
Текстовий |
– |
Назва товару |
Price |
Дійсне число | – |
Ціна товару |
Count | Ціле число | – |
К-сть одиниць товару |
Використовуючи засоби системи програмування Delphi-7 зробити перехресну таблицю за двома вимірами: Назва товару та вартість одиниці товару. Також здійснити сумування за стовпцями та рядками таблиці.
Хід виконання
Створюємо базу даних з псевдонімом “myDb”. Створюємо таблицю бази даних з назвою “tovar.db” яка має структуру згідно з умовою задачі.
- Компоненти для Створення перехресної таблиці.
Для створення перехресних таблиць в системі програмування Delphi використовуються компоненти з вкладки “Decision Cube” палітри компонент (рис. 1).
Рис. 1. Вкладка Decision Cube з палітри компонент
Отже, виносимо на форму такі чотири компоненти з вкладки “Decision Cube”:
– компонент типу TDecisionCube (за замовчуванням має ім’я DecisionCube1);
– компонент типу TDecisionQuery (за замовчуванням має ім’я DecisionQuery1);
– компонент типу TDecisionSource (за замовчуванням має ім’я DecisionSource1);
– компонент типу TDecisionGrid (ім’я за замовчуванням DecisionGrid1).
З цих чотирьох компонентів тільки TDecisionGrid призначений для відображення даних таблиці.
Форма з розміщеними компонентами має вигляд (рис. 2):
Рис. 2. Основна форма програми з компонентами DecisionCube1, DecisionQuery1, DecisionSource1, DecisionGrid1
- Налаштування компонент.
Встановлюємо такі властивості для компонент:
– у компоненті DecisionCube1 властивість DataSet встановлюємо рівною в DecisionQuery1;
– у компоненті DecisionQuery1 властивість DatabaseName встановлюємо в значення myDb;
– у компоненті DecisionSource1 властивість DecisionCube встановлюємо в значення DecisionCube1;
– в DecisionGrid1 властивість DecisionSource рівна DecisionSource1.
- Налаштування “Decision Query Editor”.
Налаштування перехресної таблиці здійснюється в компоненті DecisionQuery1. Для виклику вікна налаштування необхідно клікнути правою кнопкою миші і з контекстного меню вибрати Decision Query Editor. Другий метод виклику – подвійний клік мишкою в області компонента DecisionQuery1 (рис. 3).
Рис. 3. Виклик редактора для налаштування в компоненті DecisionQuery1
У результаті виведеться вікно “Decision Query Editor” (рис. 4).
Рис. 4. Вікно “Decision Query Editor”
Як видно, вікно складається з двох вкладок:
– вкладка “Dimensions/Summaries” дозволяє задавати поля таблиці та агрегатні функції (суми, загальна кількість та ін.) на основі яких здійснюються обчислення;
– вкладка “SQL Query” дозволяє описувати запити до таблиці на мові SQL.
В цьому вікні є доступні такі області (поля):
– область List of Available Fields виводить інформацію про поля вибраної таблиці;
– область Dimensions виводить інформацію про поля таблиці, які є вимірами на основі яких розраховуються агрегатні функції (суми, середнє арифметичне і т.д.);
– область Summaries висвітлює які агрегатні функції застосовуються до таблиці;
– поле Table показує таблицю бази даних, для якої ведуться обчислення;
– поле Database задає базу даних, до таблиць якої здійснюються обчислення.
У нашому випадку вибираємо таблицю “tovar.db” з бази даних “myDb”.
Вікно редактора прийме вигляд (рис. 5).
Рис. 5. Вікно редактора “Decision Query Editor” після вибору бази даних “myDb” і таблиці “tovar.db”
З допомогою стрілок вліво (вправо) можна додавати поля таблиці, що будуть брати участь в обчисленнях. Поля додаються в область Dimensions.
Стрілки вправо/вліво, що розміщені в нижній частині вікна редактора дозволяють задавати ту чи іншу агрегатну функцію (рис. 6).
Рис. 6. Додавання агрегатних функцій
Сформуємо вікно редактора таким чином, щоб воно мало наступний вигляд і підтвердимо свої дії кліком на кнопці OK (рис. 7).
Рис. 7. Вікно редактора після заповнення (налаштування) усіх полів
У вкладці “SQL Query” можна переглянути вигляд сформованого редактором запиту на мові SQL.
- Налаштування компонента DecisionCube1.
Після налаштування компонента TDecisionQuery можна здійснити налаштування компонента TDecisionCube.
Для цього викликається редактор Decision Cube так само як і у випадку з редактором Decision Query Editor (рис. 8).
Рис. 8. Виклик редактора “Decision Cube” компонента DecisionCube1
У результаті відкриється вікно Decision Cube Editor (рис. 9)
Рис. 9. Вікно редактора “Decision Cube Editor”
Вікно містить дві вкладки: “Dimension Settings” та “Memory Control”.
У першій вкладці “Dimension Settings” можна задати ряд налаштувань для вимірів куба. Вкладка містить такі поля:
– поле “Display Name” задає ім’я, яке буде відображатись в компоненті відоображення даних TDecitionGrid;
– список “Type” задає тип поля. У нашому випадку список неактивний, тому що інформація витягується з компонента TDecisionQuery;
– список “Active Type” задає момент завантаження в пам’ять бази даних (“As Needed” – в міру необхідності, “Active” – завжди, “Inactive” – ніколи);
– рядок “Format” дозволяє задати формат відображуваних значень;
– випадаючий список “Grouping” дозволяє групувати дані за часом.
У нашому випадку не робимо ніяких змін у цьому вікні і залишаємо все як є.
- Відображення перехресної таблиці.
Якщо попередні кроки виконані правильно, то можна відобразити перехресну таблицю. Для цього в компоненті DecisionQuery1 властивість Active встановлюємо в значення true.
У результаті форма програми прийме вигляд (рис. 10).
Рис. 10. Вигляд форми після проведених налаштувань
Після запуску програми на виконання отримуємо перехресну таблицю (рис. 11).
Рис. 11. Результат виконання програми
Підсумок
У цій роботі вивчено створення елементарних перехресних таблиць в системі програмування Delphi-7.
Для організації роботи з перехресними таблицями використовуються такі компоненти з палітри “Decision Cube”:
– компонент TDecisionCube;
– компонент TDecisionQuery;
– компонент TDecisionSource;
– компонент відображення TDecisionGrid.
Попередньо база даних і таблиця мають бути створені засобами утиліти Database Desktop, яка постачається як інструмент роботи з базами даних в системі програмування Delphi-7.
В розглянутому прикладі створено таблицю на основі двох вимірів. Користувач може на свій розсуд створювати перехресні таблиці з більшою кількістю вимірів. Збільшення кількості вимірів може призвести до ускладненого сприйняття сформованих даних в таблиці. Тому, рекомендовано, щоб кількість вимірів коливалась в межах від 2 до 4.