Рис. 2.22 – Створення 1 запиту в режимі конструктора
Рис. 2.23 – Результат виконання 1 запиту в режимі конструктора
SQL-код 1 запиту:
SELECT Hudogniki.fio, Hudogniki.epoha, Hudogniki.date_birth,;
Hudogniki.date_death, Hudogniki.count_kartin, Hudogniki.best_kartin;
FROM ;
GIVOPIS!HUDOGNIKI;
WHERE Hudogniki.epoha = ( "Передвижники" );
AND Hudogniki.count_kartin > ( 10.0000 );
ORDER BY Hudogniki.fio
2) Запит, що виводить на екран усі картини художника Леонардо Да Вінчі. Створення 2 запиту в режимі конструктора показано на рис. 2.24, а результат виконання запиту – на рис. 2.25.
Рис. 2.24 – Створення 2 запиту в режимі конструктора
Рис. 2.25 – Результат виконання 2 запиту в режимі конструктора
SQL-код 2 запиту:
SELECT Kartini.name, Kartini.fio, Kartini.date, Kartini.epoha,;
Kartini.museum;
FROM ;
GIVOPIS!KARTINI;
WHERE Kartini.fio = ( "Леонардо да Винчи" );
ORDER BY Kartini.name
Представлення даних – це засіб перегляду даних з кількох пов’язаних між собою таблиць бази даних. За допомогою представлень даних можна об’єднати декілька таблиць в одну, вибрати необхідні поля таблиць, задавити умови відбору даних. Після створення представлення даних його можна використовувати як звичайну таблицю в формах, звітах та при створенні запитів.
Представлення даних відрізняються від запитів наступним:
· На відміну від запитів представлення даних зберігаються попередній стан, тобто запити при їх запуску завжди заново створюють результуючу таблицю, а представлення даних зберігають раніше створену таблицю до тих пір, поки представлення не перекомпілювати.
· У конструкторі представлення даних є додаткова вкладка, яка дозволяє вказати поля для модифікації даних та вказати критерії обновлення даних для цих полів. Тобто представлення можна використовувати для редагування таблиці, відкритої за допомогою представлення даних. Це не доступно у запиті до бази даних. Запит дає змогу тільки переглянути виведені дані.
· За допомогою представлення даних можна задати параметри, значення яких повинен буде ввести користувач при відкриті представлення даних. Так, наприклад, користувач може задавши якийсь параметр вибрати необхідні йому дані з таблиці по якомусь критерію.
· Також представлення даних дає змогу заздалегідь встановити кількість записів, що вибираються з таблиці.
· В представленнях даних можна встановити додаткові опції до полів даних. Наприклад, задати нове ім’я поля даних чи встановити для нього тригер.
· Представлення даних є частиною бази даних, а запит – частиною проекту.
В роботі створено 1 представлення даних, що виводить на екран дані про художників, епоху, до якої вони відносяться, історичний період епохи, її основні риси, картини художників, музеї в яких вони зберігаються та місце, де знаходяться музеї. Це представлення даних показано нижче на рис. 2.26 і 2.27:
Рис. 2.26 – Створення локального представлення в конструкторі
Рис. 2.27 – Результат виконання представлення даних
SQL-код представлення даних:
SELECT Hudogniki.fio, Hudogniki.epoha, Epohi.period, Epohi.cherti,;
Kartini.name, Kartini.museum, Museums.place;
FROM ;
givopis!epohi ;
INNER JOIN givopis!hudogniki ;
ON Epohi.name = Hudogniki.epoha ;
INNER JOIN givopis!kartini ;
ON Hudogniki.fio = Kartini.fio;
AND Epohi.name = Kartini.epoha ;
INNER JOIN givopis!museums ;
ON Museums.name = Kartini.museum
Звіт – це документ, при перегляді якого, видно, яка інформація зберігається у базі даних, тобто це форматоване представлення даних, яке виводиться на екран, принтер чи у файл. В звіті можна показати як часткову інформацію про данні, так і повну. Його можна представити у різному оформленні, в залежності від бажання користувача.
Використовуючи Wizard, створюємо спочатку звичайний звіт, а потім звіт один-до-багатьох.
У звичайному звіті обираємо таблицю для побудови звіту, способи сортування записів та опції підведення підсумків та зберігаємо звіт у вказаний каталог з подальшим редагуванням. Після збереження звіту відкриється вікно редактора звітів, у якому редагуємо необхідні параметри (рис. 2.29). При бажанні звіт можна також розпечатати.
Рис. 2.29 – Редагування звіту «Картини»
Рис. 2.30 – Фрагмент звіту «Картини»
Для створення звіту один-до-багатьох - епохи - обираємо батьківську таблицю, дочірню таблицю та індекси, за якими таблиці зв'язуватимуться. Зберігаємо звіт з подальшим редагуванням у конструкторі (рис. 2.31).
Рис. 2.31 – Редагування звіту «Епохи»
Рис. 2.32 – Фрагмент звіту «Епохи»
В даному розділі створимо власне меню, що викликає створені раніше запити, локальні представлення даних, форми та звіти. При запуску меню, його кнопки з’являються поміж стандартних кнопок меню. При створенні меню, стандартне меню (файл dovidnik_givopis_main у вкладці Other→Menus) було русифіковано і до нього було додано меню проекту під назвою «Живопись».
Після закінчення редагування меню натискаємо кнопку Preview, переглядаємо отриманий результат та генеруємо файл меню. Для цього обираємо пункт головного меню Menu→Generate…, погоджуємося із збереженням змін та обираємо каталог для збереження.
Вид цього меню показано нижче на рис. 2.33:
Рис. 2.33 – Власне меню проекту довідника аматора живопису
Опишемо створені пункти меню:
1. Підменю Формы (має 4 пункти). Тут є посилання на 4 чотири форми, за допомогою яких можна також редагувати дані у таблицях.
Для виклику форм в цьому підменю створюються наступні команди:
· Пункт «Художники»:
DO FORM “H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\artists.scx”
· Пункт «Картины»:
DO FORM “H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\pictures.scx”
· Пункт «Эпохи»:
DO FORM “H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\epoch.scx”
· Пункт «Музеи»:
DO FORM “H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\museums.scx”
2. Підменю Отчёты (має 2 пункти) призначене для перегляду звітів про склад бази даних.
Для виклику звіту про картини потрібно використати наступну команду:
REPORT FORM
"H:\Visual FoxPro Projects\Dovidnik_givopis\REPORTS\PICTURES.FRX " PREVIEW
Для виклику звіту про епохи живопису була використана наступна команда:
REPORT FORM
" H:\Visual FoxPro Projects\Dovidnik_givopis\REPORTS\EPOCH.FRX " PREVIEW
3. В підменю Запросы є 2 запити до бази даних, що були створені раніше. Для їх виклику з меню потрібно використати такі команди відповідно:
DO "h:\visual foxpro projects\dovidnik_givopis_2\queries\query1_hud.qpr"
DO "h:\visual foxpro projects\dovidnik_givopis_2\queries\query2_kart.qpr"
4. В підменю Представления є 1 представлення даних бази даних, що було створене раніше. Для його виклику з меню потрібно теж створити процедуру та вписати в неї SQL-код представлення даних, що було приведене раніше.
візуальний моделювання програмний
Після проведення усіх необхідних операцій над усіма компонентами створеної бази даних переходимо до етапу безпосередньо розробки додатку для роботи з базою даних. Для того щоб створити самостійний додаток на основі розробленої бази даних наводимо курсор на файл dovidnik_givopis_app, що міститься на вкладці Code, у групі Programs, та обираємо пункт контекстного меню файлу Set Main, що робить дану програму головною для проекту.
Після цього обираємо пункт меню Project→Build… та у вікні, що з’явилося (рис. 2.34) обираємо Win32 executable/COM server (exe), залишаємо прапорці навпроти пунктів Recompile all files (Перекомпілювати усі файли) та Display errors (Відображати помилки). Після цього програма запропонує зберегти додаток у вказане місце. Обираємо каталог з проектом та натискаємо ОК.
Рис. 2.34– Компілювання додатку
Таким чином, спроектувавши додаток для роботи з базою даних бібліотечного каталогу, ми отримали практичні навички з розробки баз даних у Visual FoxPro, зокрема створення екранних форм та звітів, розробки меню та створення додатку для роботи з базою даних.
Лістинг програми керування додатку меню DOVIDNIK_GIVOPIS_GO.MPR
* *********************************************************
* *
* * 05/26/11 DOVIDNIK_GIVOPIS_GO.MPR 17:45:26
* *
* *********************************************************
* *
* * Миних
* *
* * Copyright (C) 2011 Криворожский Технический Университет
* * Address
* * Кривой Рог, Zip
* * Украина
* *
* * Description:
* * This PROGRAM was automatically generated BY GENMENU.
* *
* *********************************************************
* *********************************************************
* *
* * Setup Code
* *
* *********************************************************
*
* This file is a generated, framework-enabling component
* created by APPBUILDER
* (c) Microsoft Corporation
#INCLUDE [..\DOVIDNIK_GIVOPIS_APP.H]
* *********************************************************
* *
* * Menu Definition
* *
* *********************************************************