Ноу Інти, лекція, СУБД microsoft visual foxpro

Розглянуто призначення та види звітів, запитів і проекту при роботі з базами даних. Розібрана послідовність розробки звіту за допомогою Майстра, види і властивості об'єктів звітів, модифікація його в Конструкторі. Викладено основи розробки запитів за допомогою Майстра, Конструктора і SQL-програми. Дається 2 способи створення проекту: найпростішого на основі однієї екранної форми і створеного за допомогою Майстра додатків. Наведено синтаксис основних команд і функцій алгоритмічного мови системи. Мета: освоєння методів створення і використання звітів, запитів і проектів в Visual FoxPro.

Розробка звітів

Для розробки звітів - друкованих документів, що відображають інформацію бази даних. в системі VFP існує Конструктор звітів (Report Designer) і Майстер звітів (Report Wizard). Важливою властивістю звітів є можливість угрупування даних і отримання підсумкових даних для груп і всього звіту. При формуванні звітів можна задавати фільтр відбору необхідних даних або формувати звіт на основі даних SQL-запиту або подання даних (View).

Найбільш просто для розробки основи звіту скористатися Майстром звітів з наступною модифікацією і доповненням звіту в Конструкторі.

Існує 2 типу Майстри звітів:

One-to-Many Report Wizard - Майстер звіту. в якому для запису головної таблиці існує безліч записів пов'язаної з нею дочірньої таблиці.

Report Wizard - Майстер простого звіту, але з можливістю завдання угруповання даних.

Як завжди, створення нового об'єкта починаємо, натиснувши кнопку New на стандартній панелі інструментів, потім вибираємо Report - Wizard - One-to-Many Report Wizard.

Далі на першому кроці Майстра (рис. 6.1) вибираємо базу Students і поля головної таблиці бази (Spisok), які ми хочемо показати в звіті.

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.1. Крок 1 Майстри розробки звіту

На другому кроці (рис. 6.2) вибираємо поля дочірньої таблиці - Ocenki.

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.2. Крок 2 Майстри розробки звіту

Третій крок - підтверджуємо, що ці таблиці пов'язані за значенням поля NZ.

На четвертому кроці необхідно задати порядок сортування даних в звіті. Майстер дозволяє задати не більше трьох значень полів для складної сортування (зі створенням відповідного складного індексу). Виберемо поля N_fclt, Kurs, N_grup з сортуванням в порядку зростання (Ascending).

П'ятий крок (рис. 6.3) - задаємо стиль звіту, розташування його на аркуші (вертикальний лист - Portrait або горизонтальний - Landscape) і сумарні параметри - розрахунок середнього значення (Avg) для поля Ball.

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.3. Крок 5 Майстри розробки звіту

На останньому, 6-м кроці задаємо заголовок звіту, вибираємо команду Зберегти звіт і модифікувати його в Конструкторі звітів - Save report and modify it in Report Designer і після натискання на кнопку Finish задаємо ім'я (Spisok) і місце збереження файлів звіту (будуть створені два файлу з однаковим ім'ям і розширеннями *. frt і * .frx).

У вікні Report Designer ми побачимо звіт, показаний на рис. 6.4.

Ноу Інти, лекція, СУБД microsoft visual foxpro

У Конструкторі звіт розбитий на окремі зони, інформація яких може бути присутнім в звіті один раз (Title і Summary), на початку кожної сторінки (Page Header) або в кінці кожної сторінки (Page Footer), на початку кожної групи (Group Header. Груп може бути багато) і в кінці кожної групи (Group Footer), а також зона показу інформації кожного запису таблиці (Detail).

Особливість звіту, створеного Майстром. - в ньому присутні зони підсумків для групи NZ і всього звіту, але поля для розрахунку середньої оцінки в них немає, хоча ми просили Майстри це зробити (див. Рис. 6.3.). Задана умова не була виконана, тому що поле ball має текстовий тип, а ми задали функцію для роботи з числами. Для обчислення середньої оцінки доведеться самим додати нове поле в звіт з розрахунком середньої оцінки, після перетворення в цьому полі текстового значення в числове з використанням функції Val (ball).

Контекстне меню для Конструктора звітів (клацання правою кнопкою миші на порожньому місці вікна Report Designer) містить наступні пункти (рис. 6.5.):

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.5. Контекстне меню

Для використання в звіті назв факультетів, спеціальностей і предметів необхідно відкрити вікно Data Environment. додати в нього довідкові таблиці бази і правильно встановити зв'язки між ними, як показано на рис. 6.6. (Для постійних зв'язків бази іноді виникає неправильний напрямок, зв'язок повинна йти від поля головної таблиці до індексу дочірньої).

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.6. Вікно даних звіту

Для зв'язку між таблицями Spisok і Ocenki має бути встановлено властивість OneToMany = .T.

Для подальшого оформлення звіту необхідна присутність на екрані двох панелей інструментів - Report Controls і Layout.

Перша панель містить ті об'єкти, які можна розташовувати на звітах (рис. 6.7.).

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.7. Панель об'єктів звіту

Так як наша задача - представити звіт з угрупованням і розрахунком середніх оцінок по факультетах, курсах, групам, необхідно додати нові групи в звіт і модифікувати, відповідно, індексний файл головної таблиці. Вибравши пункт Data Grouping в контекстному або головному меню (розділ Report), додамо необхідні групи (рис. 6.8.).

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.8. Сторінка угруповання даних у вікні властивостей звіту

У властивостях підсумкових полів (вікно властивостей обраного поля відкривається подвійним кліком на ньому, або вибором пункту Properties в його контекстному меню. Або на клавіатурі Alt + Enter) в розділі Calculate слід правильно вказати в пункті Calculation Type - Average (середнє) і в пункті Reset based on - відповідну групу або End of Report для зони Summary (див. рис. 6.9.).

Ноу Інти, лекція, СУБД microsoft visual foxpro

Ноу Інти, лекція, СУБД microsoft visual foxpro


Мал. 6.9. Вікно властивостей поля звіту. Сторінки General і Calculate

Для таблиці Spisok слід модифікувати створений Майстром складний індекс з ім'ям WIZARD_1 - додати в нього поле FIO: STR (n_fclt, 2,0) + STR (kurs, 1,0) + n_grup + fio.

Звіт в Конструкторі матиме вигляд, показаний на див. Рис. 6.10. .

Ноу Інти, лекція, СУБД microsoft visual foxpro

Ноу Інти, лекція, СУБД microsoft visual foxpro

Схожі статті