Довідник аматора живопису

Зміст

Вступ 2

1. Постановка задачі 5

1.1 Опис задачі 5

1.3.1 DBase і Visual DBase 7

1.3.3 Microsoft Visual FoxPro 8

1.3.4 Microsoft Access 9

2. Проектування задачі 13

2.1 Проектування і створення бази даних довідника аматора живопису 13

2.1.1 Створення проекту 13

2.1.2 Створення бази даних 15

2.1.3 Створення таблиць 15

2.1.4 Встановлення зв’язків між таблицями 19

2.1.5 Визначення умов цілісності даних 20

2.2 Створення форм 21

2.3 Формування запитів 24

2.4 Формування локальних представлень даних 26

2.6 Створення власного меню 31

2.7 Компіляція додатку 33

3. Програмування програмної оболонки керування базами даних 35

4. Створення інсталяційного пакету 52

Висновки 55

Перелік використаної літератури 56

Вступ

Зміни, що відбуваються в нашій країні останнім часом, не могли не торкнутися областей інформатики й обчислювальної техніки. Ще 10 років тому робота з базами даних була долею професійних програмістів. Самі системи не були призначені для простого користувача. Основним споживачем таких систем був військово-промисловий комплекс. З появою банків, акціонерних товариств, приватних компаній бази даних знайшли більше широке застосування. Люди розуміють, що інформація - це гроші. Її втрата або несвоєчасне одержання можуть дорого коштувати. Саме цим можна пояснити настільки бурхливий ріст інформаційних технологій і стрімкий розвиток систем керування базами даних (СУБД).

Перші системи керування базами даних з'явилися в середині шістдесятих і підтримували ієрархічну модель даних, у якій між записами існували відносини предок/нащадок. Через короткий час, були розроблені мережні бази даних, в основу яких була закладена значно більше складна мережна модель. У кожної із цих моделей були свої достоїнства й недоліки, які зіграли ключову роль у розвитку реляційної моделі.

В 1970 році стаття наукового співробітника компанії IBM доктори Е. Ф. Кодда про реляційну модель даних зробила революцію в підході до зберігання й обробки інформації. На основі цієї моделі в сімдесяті роки були розроблені перші реляційні бази даних, а в цей час вони розглядаються як стандарт для сучасних комерційних СУБД.

У реляційних базах даних вся інформація зведена в таблиці, рядки й стовпці яких називаються записами й полями відповідно. Ці таблиці одержали назву реляцій, тому модель стала називатися реляційною.

Записи в таблицях не повторюються. Їхня унікальність забезпечується первинним ключем, що містить набір полів, що однозначно визначають запис. Для швидкого пошуку інформації в базі даних створюються індекси по одному або декількох полях таблиці. Значення індексів зберігаються в упорядкованому виді й містять посилання на записі таблиці. Для автоматичної підтримки цілісності зв'язаних даних, що перебувають у різних таблицях, використаються первинні й зовнішні ключі. Для вибірки даних з декількох зв'язаних таблиць використаються значення одного або декількох співпадаючих полів.

Одним з важливих достоїнств баз даних є швидка вибірка збереженої в ній інформації. Використовуючи телефонно-адресну книгу, у якій дані впорядковані по прізвищах, ви можете знайти номер телефону на прізвище його власника. Однак, якщо запису в книзі реєстрації міжміських розмов упорядковані в хронологічному порядку, вам доведеться витратити значний час на одержання списку клієнтів, що замовляли розмову з певним містом, або на з'ясування того, у якому районі проживають абоненти, що приносять найбільший прибуток телефонної компанії своїми тривалими розмовами.

Комп'ютерні бази даних, незважаючи на величезний обсяг інформації, що зберігається в них, забезпечують високу швидкість пошуку необхідної інформації. У таких базах даних користувач може виконати пошук по будь-якому його параметрі, що цікавить. Крім того, комп'ютерні бази даних дуже компактні. База даних, утримуюча кілька тисяч записів, може поміститися на одній дискеті.

Використання баз даних і інформаційних систем стає невід'ємної складової ділової діяльності сучасної людини й функціонування процвітаючих організацій. У зв'язку із цим більшу актуальність здобуває освоєння принципів побудови й ефективного застосування відповідних технологій і програмних продуктів: систем керування базами даних, CASE-систем автоматизації проектування, засобів адміністрування й захисту баз даних і інших.

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

У цей час великою популярністю користується мережа Інтернет, Однієї із причин цього є можливість одержання в реальному масштабі часу різноманітної інформації, що охоплює всі сфери діяльності людини. Для ефективної роботи з інформацією такого величезного обсягу потрібна високий ступінь її впорядкування. Сучасні системи керування базами даних надають розвинені кошти для організованого доступу до інформації. Цілком логічне застосування технології систем керування базами даних у мережі Інтернет.

Для забезпечення доступу клієнтів мережі Інтернет до потрібної інформації з бази даних, що перебуває на комп'ютері, на якому запущений Web-сервер, потрібно ці дані опублікувати (представити) в HTML-форматі. Публікація баз даних в Інтернеті здійснюється за допомогою технологій, що реалізують можливість розміщення на Web-сторінках інформації з баз даних, що зберігаються на Web-сервері.

Результатом застосування об'єднаної технології Інтернет/СУБД є здешевлення установки й супроводу програмного забезпечення як користувачів мережі Інтернет, так і програмного забезпечення інформаційних систем, побудованих на основі використання СУБД.

1. Постановка задачі

1.1 Опис задачі

Останні десятиріччя людської історії ознаменувалися бурхливим розвитком техніки, зокрема комп’ютерних технологій. Від винаходу першої ЕОМ і до сьогодні пройшло досить небагато часу – всього 60 років – а комп’ютери стали невід’ємною частиною усіх сфер людського життя, починаючи з військової справи та промисловості й закінчуючи повсякденним вжитком в лікарнях, вдома та у навчальних закладах.

Живопис (від рос. жваво і писати) - один з найдавніших видів образотворчого мистецтва, вид академічних мистецтв, пов'язаний з передачею зорових образів за допомогою нанесення фарб на тверду або гнучку основу; створенням зображення з допомогою цифрових технологій; а також твори мистецтва, виконані такими способами.

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

Найбільш поширені твори живопису, виконані на плоских або майже плоских поверхнях, таких як натягнутий на підрамник полотно, дерево, папір, картон, оброблені поверхні стін і т.д. У тому числі до живопису відносять і виконані фарбами зображення на декоративних і церемоніальних судинах, поверхні яких можуть мати складну форму.

Кількість картин живопису, технік їх написання, епох (направлень) живопису досить багато. Тому існує необхідність їх систематизації. Систематизувати всі ці дані допоможе база даних Visual FoxPro. За його допомогою можна організувати дані так, щоб будь-яка людина могла їх переглянути, включаючи також і людей, які займаються або почали займатися живописом, тобто аматорів.

Вихідні дані до проекту:

В базі даних необхідно зберігати всі дані про::

    художників;

    їх картини;

    епохи, в які картини були написані;

    музеї, в яких картини зберігаються.

1.2 Вимоги до програмно-апаратного комплексу

Система програмування баз даних повинна бути такою, що підтримує сучасну технологію візуального та об’єктно-орієнтованого програмування. Проектувати програмну систему слід за допомогою засобів візуального моделювання. Для вирішення поставленої задачі достатньо настільної СУБД. Обчислювальна система повинна бути побудована на базі персонального комп’ютера з процесором не гірше 600 МГц з операційною системою Windows XP, тому що перераховане вище сучасне інструментальне програмне забезпечення не забезпечує комфортної роботи на комп’ютерах нижчого класу. Оперативної пам’яті повинно бути від 256 Мб, місткість накопичувача на жорсткому диску від 10 Гб.

Для комфортної роботи слід вважати комп’ютер з характеристиками не гірше ніж:

    Процесор Pentium III – 600 МГц (або Celeron);

    Оперативна пам'ять – 256 Мб;

    Накопичувач на жорсткому диску – 10 Гб.

1.3 Вибір СУБД

На сьогоднішній день відомо більш двох десятків форматів даних настільних СУБД, однак найбільш популярними, виходячи з числа проданих копій, варто визнати dBase, Paradox, FoxPro і Access. Слід також зазначити Microsoft Data Engine — власне кажучи серверну СУБД, що представляє собою “полегшену” версію Microsoft SQL Server, але призначену, проте, для використання головним чином у настільних системах і невеликих робочих групах.

Проаналізуємо зазначені вище СУБД на предмет можливості їх використання.

1.3.1 DBase і Visual DBase

В даний час Visual dBase належить компанії dBase Іnc. Його остання версія — Visual dBase 7.5 має наступні можливості:

• Засоби маніпуляції даними dBase і FoxPro усіх версій.

• Засоби створення форм, звітів і додатків.

• Засоби публікації даних в Internet і створення Web-клієнтів.

• Ядро доступу до даних Advantage Database Server фірми Extended Systems і ODBC- драйвер для доступу до даних цієї СУБД.

• Засоби публікації звітів у Web.

• Засоби візуальної побудови запитів.

• Засоби генерації файлів, що виконуються, і дистрибутивів.

В даний час до Visual dBase як доповнення може бути придбаний компонент dConnectіons, що дозволяє здійснити доступ до даних Oracle, Sybase, Informix, MS SQL Server, DB2, InterBase з Visual dBase 7.5 і додатків, створених з його допомогою.

1.3.2 Paradox

Поточна версія даної СУБД – Paradox 9, поставляється в двох варіантах – Paradox 9 Standalone Edition і Paradox 9 Developer's Edition. Перший з них призначений для використання в якості настільної СУБД і входить у Corel Office Professional, другий — у якості як настільної СУБД, так і засобу розробки додатків і маніпуляції даними в серверних СУБД. Обидві версії містять:

• Засоби маніпуляції даними Paradox і dBase.

• Засоби створення форм, звітів і додатків.

• Засоби візуальної побудови запитів.

• Засоби публікації даних і звітів в Internet і створення Web-клієнтів.

• Corel Web-сервер.

• ODBC — драйвер для доступу до даних формату Paradox з Windows — додатків.

• Засобу для доступу до даних формату Paradox з Java-додатків.

Крім цього Paradox 9 Developer's Edition містить:

• Run-time- версію Paradox для постачання разом з додатками.

• Засоби створення дистрибутивів.

• Драйвери SQL Links для доступу до даних серверних СУБД.

Відзначимо, однак, що популярність цього продукту як засобу розробки останнім часом трохи знизилася, хоча у світі експлуатується ще чимало інформаційних систем, створених з його допомогою.

1.3.3 Microsoft Visual FoxPro

Visual Fox Pro 9.0 надає наступні можливості:

• Засоби публікації даних в Internet і створення Web-клієнтів.

• Засоби створення ASP — компонентів і Web-додатків.

• Засоби створення COM - об'єктів і об'єктів для Microsoft Transactіon Server, що дозволяють створювати багатоланкові додатки для обробки даних, які масштабуються.

• Засоби доступу до даних серверних СУБД, що базуються на використанні OLE DB (набір COM-інтерфейсів, що дозволяє здійснити уніфікований доступ до даних з різноманітних джерел, у тому числі з нереляційних баз даних і інших джерел, наприклад Microsoft Exchange).

• Засоби доступу до даних Microsoft SQL Server і Oracle, включаючи можливість створення і редагування таблиць, тригерів, збережених процедур

• Засоби налагодження збережених процедур Microsoft SQL Server.

• Засіб візуального моделювання компонентів і об'єктів, що є складовими частинами додатка — Visual Modeler.

• Засіб для керування компонентами додатків, що дозволяє здійснювати їхнє повторне використання.

Отже, тенденції розвитку цього продукту очевидні: з настільної СУБД Visual FoxPro поступово перетворюється в засіб розробки додатків в архітектурі “клієнт-сервер” і розподілених додатків в архітектурі Windows DNA. Утім, ці тенденції деякою мірою характерні для усіх найбільш популярних настільних СУБД — ми вже переконалися, що і dBase, і Paradox також дозволяють здійснювати доступ до найбільш популярних серверних СУБД.

1.3.4 Microsoft Access

На відміну від Visual FoxPro, що фактично перетворились у засіб розробки додатків, Access орієнтований у першу чергу на користувачів Microsoft Office, у тому числі і не знайомих із програмуванням. Це, зокрема, проявилося в тім, що вся інформація, що відноситься до конкретної бази даних, а саме таблиці, індекси (природно, ті які підтримуються), правила посилальної цілісності, бізнес-правила, список користувачів, а також форми і звіти зберігаються в одному файлі, що в цілому зручно для починаючих користувачів.

Остання версія цієї СУБД — Access 2010 входить до складу Microsoft Office 2010, а також доступна як самостійний продукт. До складу Access 2010 входять:

• Засоби маніпуляції даними Access і даними, доступними через ODBC (останні можуть бути “приєднані” до бази даних Access).

• Засоби створення форм, звітів і додатків; при цьому звіти можуть бути експортовані у формат Microsoft Word чи Microsoft Excel, а для створення додатків використовується Visual Basic for Applications, загальний для всіх складових частин Microsoft Office.

• Засоби публікації звітів в Internet.

• Засоби створення інтерактивних Web — додатків для роботи з даними (Data Access Pages).

• Засоби доступу до даних серверних СУБД через OLE DB.

• Засоби створення клієнтських додатків для Microsoft SQL Server.

• Засобу адміністрування Microsoft SQL Server.

Підтримка COM у Access виражається в можливості використовувати елементи керування Active у формах і Web-сторінках, створених за допомогою Access. На відміну від Visual FoxPro створення COM — серверів за допомогою Access не передбачається. Microsoft Access може бути використаний, з одного боку, у якості настільної СУБД і складової частини офісного пакета, а з іншого боку, в якості клієнта Microsoft SQL Server, що дозволяє здійснювати його адміністрування, маніпуляцію його даними і створення додатків для цього сервера.

Крім маніпуляції даними Microsoft SQL Server, Access 2000 дозволяє також як сховище даних використовувати Microsoft Data Engine (MSDE), що представляє собою власне кажучи настільний сервер баз даних, сумісний з Microsoft SQL Server.

1.3.5 Microsoft Data Engine

MSDE являє собою СУБД, що базується на технологіях Microsoft SQL Server, але призначену для використання в настільних системах чи у мережних додатках з обсягом даних до 2 Гбайт і невеликою кількістю користувачів. Власне кажучи MSDE є полегшеною версією Microsoft SQL Server, які не підтримують засобів адміністрування, і до настільних СУБД може бути віднесена дуже умовно. Бази даних MSDE цілком сумісні з базами даних Microsoft SQL Server і можуть при необхідності керуватися цим сервером. Як більшість серверних СУБД, ці бази даних підтримують трансакції, дозволяють створювати тригери і збережені процедури (недоступні в базах даних Access), використовувати механізми захисту даних, надані операційною системою.

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

Всі перераховані вище СУБД загалом можуть бути використані в якості інструментального середовища для вирішення поставленої задачі. З урахуванням можливої необхідності міграції в наступному на клієнт — серверні СУБД найбільш сприйнятливими є MSDE та Visual FoxPro. А враховуючи багатий інструментарій та розвинуті засоби проектування і програмування додатків зупиняємося на останньому тобто Visual FoxPro.

1.4 Розробка тестової задачі

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

2. Проектування задачі

2.1 Проектування і створення бази даних довідника аматора живопису

Visual FoxPro – це мова програмування систем управління реляційними базами даних, розроблена корпорацією Microsoft. Також це об’єктно-орієнтована, процедурна, візуально-програмована мова, що керується по подіях. В якості подій у Visual FoxPro розглядаються певні дії, що викликають стандартну реакцію об’єкта.

Основою для даного програмного продукту послужив мова програмування FoxPro. Відноситься до сімейства мов xBase, розроблених на базі синтаксису мови програмування dBase.

Visual FoxPro належить до реляційних баз даних, у яких вся інформація зведена до таблиць, строки та стовпці у яких називаються відповідно записами та полями.

2.1.1 Створення проекту

Для створення нового проекту у головному вікні Visual FoxPro обираємо пункт меню File→New… та обираємо створення проекту за допомогою майстра (Wizard). Пишемо ім’я проекту Dovidnik_givopis та обираємо каталог для збереження файлів проекту (рис. 2.1)

Рис. 2.1 – Створення файлу проекту

Після цього Visual FoxPro створює структуру каталогів та необхідні для проекту базові компоненти і на екрані з’являється діалогове вікно конструктора додатків, що показано на Рис. 2.2, з пропозицією ввести параметри для даного проекту: ім’я, малюнок, дані про автора та інше.

Рис. 2.2– Вікно редагування параметрів проекту

Створений проект автоматично відкривається для редагування і усі його компоненти можна побачити у вікні Project Manager, що зображене на Рис. 2.3.

Рис. 2.3– Менеджер проекту

2.1.2 Створення бази даних

База даних – плоска (реляційна) таблиця, що складається зі строк й колонок. Строки не підписуються. Колонки називаються полями. Поля мають імена, формат кожного поля задається наперед. Строки називаються записами. Основною відмінністю бази даних від звичайних таблиць є їх безрозмірність.

База даних-контейнер – таблиця, в якій перераховані усі файли, що входять в базу даних. В ньому показано як зв’язані таблиці, вбудовані процедури. Розширення файлу таблиці VFPro - *.dbf. Розширення самої бази даних – *.dbc.

Для створення нової базі даних на вкладці Data обираємо пункт Database та натискаємо кнопку New… У вікні, що з’явилося, обираємо New Database, задаємо ім’я бази та обираємо у якості каталогу для збереження каталог Data.

2.1.3 Створення таблиць

В створену базу даних додамо 4 таблиці:

    Таблиця epohi має поля: kod (код епохи), name (назва епохи живопису), period (історичний період), cherti (коротка характеристика епохи), predstaviteli (найвідоміші представники епохи);

    Таблиця hudogniki має поля: num (номер), fio (прізвище, ім’я та по-батькові художника), date_birth (дата народження художника), date_death (дата смерті художника), epoha (спрямування в історії живопису), count_kartin (кількість картин, що написав художник), best_kartin (найкращі картини художника);

    Таблиця kartini має поля: num (номер), name (назва картини), fio (прізвище, ім’я та по-батькові художника), date (дата написання картини), epoha (епоха, в яку була створена картина), razmer (розмір картини), material (матеріал, з якого було створено картину), museum (музей, в якому картина зберігаться);

    Таблиця museums має поля: kod (код музею), name (зава музею), place (місце розташування), opisanie (короткий опис музею).

Для того, щоб створити кожну з таблиць, натискаємо на хрестик поруч з базою даних та зі списку обираємо пункт Tables. Натискаємо Create… →New table та обираємо ім’я таблиці і місце зберігання – каталог Data. Після цього відкривається вікно табличного редактора першої таблиці epohi (рис. 2.4), у якому вводимо імена та псевдоніми для полів таблиці, типи даних цих полів. На вкладці Індекси створюємо необхідні для роботи індекси (Error: Reference source not found).

Рис. 2.4 – Створення полів таблиці epohi

Рис. 2.5 – Створення індексів таблиці epohi

Після створення усіх полів та індексів відкриваємо таблицю для введення даних, натиснувши кнопку Browse. Для створення нового запису необхідно натиснути комбінацію клавіш Ctrl+Y. Заповнена таблиця epohi показана на Error: Reference source not found.

Рис. 2.6 – Заповнена даними таблиця epohi

Аналогічно створюємо заповнюємо і інші 3 таблиці:

1) створення полів таблиць hudogniki, kartini, museums відповідно показано на рис. 2.7, 2.10 та 2.13;

2) створення індексів таблиць hudogniki, kartini, museums відповідно показано на рис. 2.8, 2.11 та 2.14;

3) заповнення даними таблиць hudogniki, kartini, museums відповідно показано на рис. 2.9, 2.12 та 2.15.

Рис. 2.7 – Створення полів таблиці hudogniki

Рис. 2.8 – Створення індексів таблиці hudogniki

Рис. 2.9 – Заповнена даними таблиця hudogniki

Рис. 2.10 – Створення полів таблиці kartini

Рис. 2.11 – Створення індексів таблиці kartini

Рис. 2.12 – Заповнена даними таблиця kartini

Рис. 2.13 – Створення полів таблиці museums

Рис. 2.14 – Створення індексів таблиці museums

Рис. 2.15 – Заповнена даними таблиця museums

2.1.4 Встановлення зв’язків між таблицями

У вікні Database designer відкриваємо створені раніше таблиці та встановлюємо необхідні для роботи зв’язки, використовуючи створені на попередньому етапі індекси. Схема зв’язків між таблицями показана на рис. 2.16.

Рис. 2.16 – Схема зв’язків між таблицями бази Dovidnik_Givopis

2.1.5 Визначення умов цілісності даних

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

Перевірка цілісності даних може здійснюватися програмними засобами. Однак більш правильним є визначення умови цілісності даних на рівні бази даних, тому що в цьому випадку жодний додаток не може порушити цілісність даних.

Встановити умови цілісності даних можна за допомогою вікна “REFERENTIAL INTEGRITY BUILDER”. Їх встановлення показано нижче на рис. 2.17.

Рис. 2.17 – Визначення умов цілісності даних бази

Як бачимо в полі UPDATE усіх зв’язків між таблицями стоїть опція CASCADE, яка означає наступне: при зміні значень полів первинного ключа чи ключа-кандидата в батьківській таблиці автоматично здійснюється каскадна зміна усіх відповідних значень у дочірній таблиці. Наприклад, якщо це правило застосувати до відношення між таблицями hudogniki і kartini, то при зміні коду диска в таблиці hudogniki автоматично будуть змінені коди диска й у таблиці kartini.

Для поля DELETE також встановлена опція CASCADE, але тут вона означає дещо інше: при видаленні запису в батьківській таблиці автоматично здійснюється каскадне видалення всіх записів з дочірньої таблиці, зв'язаних із записом, що видаляється.

Для поля INSERT встановлена опція IGNORE, що означає наступне: при введенні даних у дочірню таблицю не аналізується значення індексного вираження. Цілісність даних при цьому не підтримується.

При визначенні умов цілісності даних VISUAL FOX PRO створює службові тригери, текст яких можна переглянути у вкладці STORED PROCEDURES.

2.2 Створення форм

В Visual FoxPro для перегляду, введення і редагування даних, що зберігаються в таблицях, використовуються форми, що є найбільш наочним засобом представлення інформації. Наприклад, додаток, призначений для роботи з бухгалтерськими документами, які мають стандартний вигляд. Природно, що форми, призначені для введення документів, повинні виглядати на екрані монітора точно так, як і стандартні бланки цих документів. Іншою важливою перевагою форм є те, що вони дозволяють працювати не з однією, а з декількома зв'язаними таблицями, що, у свою чергу, також збільшує наочність.

Користувачу додатку немає необхідності знати, що таке Visual FoxPro, які команди використовуються для додавання або видалення записів в таблицях. Він може навіть взагалі не знати, з використанням яких програмних засобів створювався додаток. Для нього головним є переміщення по таблиці, додавання нових записів, редагування і видалення старих. Всі ці можливості є у формах.

За допомогою майстра форм створимо 4 форми:

1) Форма artists – є звичайною однотабличною формою, що відображає дані з таблиці hudogniki. Загальний вид цієї форми представлений нижче на рис. 2.18.

Рис. 2.18 – Загальний вигляд форми artists

В цій формі виводяться такі дані як прізвище, ім’я та по-батькові художника, дата народження і смерті, епоха, кількість картин, створених художником та найбільш відомі його картини.

2) Форма pictures – також однотаблична форма, що відображає дані з таблиці kartini. Загальний вид цієї форми представлений нижче на рис. 2.19.

Рис. 2.19 – Загальний вигляд форми kartini

В цій формі виводяться такі дані як назва картини, художник, яку цю карти ну написав, дата створення, епоха, розмір та матеріал картини, а також музей, в якому ця картина зберігається.

3) Форма epoch – це багатотаблична форма, що відображає дані з 2 таблиць: epohi та hudogniki. Загальний вид цієї форми представлений нижче на рис. 2.20.

Рис. 2.20 – Загальний вигляд форми epoch

В цій формі виводяться такі дані як назва епохи живопису, історичний період, коротка характеристика епохи, найвідоміші представники епохи. Нижче в таблиці описано художників, які належать до вказаної епохи. При цьому описані такі дані як прізвище, ім’я та по-батькові художника, дата народження і смерті, кількість картин, які він написав та найкращі картини художника.

4) Форма museums – це також багатотаблична форма, що відображає дані з 2 таблиць: museums та kartini. Загальний вид цієї форми представлений нижче на рис. 2.21.

Рис. 2.21 – Загальний вигляд форми museums

В цій формі виводяться такі дані як назва музею, місце розташування музею, короткий опис музею. Нижче в таблиці описано картини, які зберігаються у вказаному музею. При цьому описані такі дані як назва картини, ім’я та по-батькові художника, дата створення картини, епоха, в яку картина була написана.

2.3 Формування запитів

Запит – це засіб швидкого пошуку інформації в базах даних за визначеними критеріями. При створенні запиту необхідно вказати поля результуючої таблиці, критерії відбору даних. Також дані можна впорядкувати та згрупувати по одному або декількох полях.

Створимо 2 запити до бази даних:

1) Запит, що виводить на екран усіх художників-передвижників, які написали більше ніж 10 картин. Створення 1 запиту в режимі конструктора показано на рис. 2.22, а результат виконання запиту – на рис. 2.23.

Рис. 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

2.4 Формування локальних представлень даних

Представлення даних – це засіб перегляду даних з кількох пов’язаних між собою таблиць бази даних. За допомогою представлень даних можна об’єднати декілька таблиць в одну, вибрати необхідні поля таблиць, задавити умови відбору даних. Після створення представлення даних його можна використовувати як звичайну таблицю в формах, звітах та при створенні запитів.

Представлення даних відрізняються від запитів наступним:

    На відміну від запитів представлення даних зберігаються попередній стан, тобто запити при їх запуску завжди заново створюють результуючу таблицю, а представлення даних зберігають раніше створену таблицю до тих пір, поки представлення не перекомпілювати.

    У конструкторі представлення даних є додаткова вкладка, яка дозволяє вказати поля для модифікації даних та вказати критерії обновлення даних для цих полів. Тобто представлення можна використовувати для редагування таблиці, відкритої за допомогою представлення даних. Це не доступно у запиті до бази даних. Запит дає змогу тільки переглянути виведені дані.

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

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

    В представленнях даних можна встановити додаткові опції до полів даних. Наприклад, задати нове ім’я поля даних чи встановити для нього тригер.

    Представлення даних є частиною бази даних, а запит – частиною проекту.

В роботі створено 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

2.5 Створення звітів

Звіт – це документ, при перегляді якого, видно, яка інформація зберігається у базі даних, тобто це форматоване представлення даних, яке виводиться на екран, принтер чи у файл. В звіті можна показати як часткову інформацію про данні, так і повну. Його можна представити у різному оформленні, в залежності від бажання користувача.

Використовуючи Wizard, створюємо спочатку звичайний звіт, а потім звіт один-до-багатьох.

У звичайному звіті обираємо таблицю для побудови звіту, способи сортування записів та опції підведення підсумків та зберігаємо звіт у вказаний каталог з подальшим редагуванням. Після збереження звіту відкриється вікно редактора звітів, у якому редагуємо необхідні параметри (рис. 2.29). При бажанні звіт можна також розпечатати.

Рис. 2.29 – Редагування звіту «Картини»

Рис. 2.30 – Фрагмент звіту «Картини»

Для створення звіту один-до-багатьох - епохи - обираємо батьківську таблицю, дочірню таблицю та індекси, за якими таблиці зв'язуватимуться. Зберігаємо звіт з подальшим редагуванням у конструкторі (рис. 2.31).

Рис. 2.31 – Редагування звіту «Епохи»

Рис. 2.32 – Фрагмент звіту «Епохи»

2.6 Створення власного меню

В даному розділі створимо власне меню, що викликає створені раніше запити, локальні представлення даних, форми та звіти. При запуску меню, його кнопки з’являються поміж стандартних кнопок меню. При створенні меню, стандартне меню (файл dovidnik_givopis_main у вкладці OtherMenus) було русифіковано і до нього було додано меню проекту під назвою «Живопись».

Після закінчення редагування меню натискаємо кнопку Preview, переглядаємо отриманий результат та генеруємо файл меню. Для цього обираємо пункт головного меню Menu→Generate…, погоджуємося із збереженням змін та обираємо каталог для збереження.

Вид цього меню показано нижче на рис. 2.33:

Рис. 2.33 – Власне меню проекту довідника аматора живопису

Опишемо створені пункти меню:

    Підменю Формы (має 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 пункти) призначене для перегляду звітів про склад бази даних.

Для виклику звіту про картини потрібно використати наступну команду:

REPORT FORM

"H:\Visual FoxPro Projects\Dovidnik_givopis\REPORTS\PICTURES.FRX " PREVIEW

Для виклику звіту про епохи живопису була використана наступна команда:

REPORT FORM

" H:\Visual FoxPro Projects\Dovidnik_givopis\REPORTS\EPOCH.FRX " PREVIEW

    В підменю Запросы є 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"

    В підменю Представления є 1 представлення даних бази даних, що було створене раніше. Для його виклику з меню потрібно теж створити процедуру та вписати в неї SQL-код представлення даних, що було приведене раніше.

2.7 Компіляція додатку

візуальний моделювання програмний

Після проведення усіх необхідних операцій над усіма компонентами створеної бази даних переходимо до етапу безпосередньо розробки додатку для роботи з базою даних. Для того щоб створити самостійний додаток на основі розробленої бази даних наводимо курсор на файл 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, зокрема створення екранних форм та звітів, розробки меню та створення додатку для роботи з базою даних.

3. Програмування програмної оболонки керування базами даних

Лістинг програми керування додатку меню 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

* *

* *********************************************************

*

DEFINE PAD _msm_Go OF _MSYSMENU PROMPT "\<Перейти" COLOR SCHEME 3 ;

BEFORE _MWINDOW ;

KEY ALT+G, "ALT+G" ;

MESSAGE "Navigates the currently selected table, cursor, or view"

ON PAD _msm_Go OF _MSYSMENU ACTIVATE POPUP перейти

DEFINE POPUP перейти MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF перейти PROMPT "\<Начало"

DEFINE BAR 2 OF перейти PROMPT "\<Конец"

DEFINE BAR 3 OF перейти PROMPT "\<Следующая"

DEFINE BAR 4 OF перейти PROMPT "\<Предыдущая"

DEFINE BAR 5 OF перейти PROMPT "\-"

DEFINE BAR 6 OF перейти PROMPT "\<Перейти на..."

DEFINE BAR 7 OF перейти PROMPT "\<Указать..."

DEFINE BAR 8 OF перейти PROMPT "\<Сортировать по возрастанию"

DEFINE BAR 9 OF перейти PROMPT "\<Сортировать по убыванию"

DEFINE BAR 10 OF перейти PROMPT "Установить \<фильтр..."

ON SELECTION BAR 1 OF перейти APP_GLOBAL.GoTop()

ON SELECTION BAR 2 OF перейти APP_GLOBAL.GoBottom()

ON SELECTION BAR 3 OF перейти APP_GLOBAL.GoNext()

ON SELECTION BAR 4 OF перейти APP_GLOBAL.GoPrevious()

ON SELECTION BAR 6 OF перейти APP_GLOBAL.ShowTableGoToDialog()

ON SELECTION BAR 7 OF перейти APP_GLOBAL.ShowTableFindDialog()

ON SELECTION BAR 8 OF перейти APP_GLOBAL.DoSort(,,,.F.)

ON SELECTION BAR 9 OF перейти APP_GLOBAL.DoSort(,,,.T.)

ON SELECTION BAR 10 OF перейти APP_GLOBAL.ShowTableSetFilterDialog()

ON SELECTION POPUP перейти MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

Лістинг програми керування додатку меню DOVIDNIK_GIVOPIS_MAIN.MPR

* *********************************************************

* *

* * 05/31/11 DOVIDNIK_GIVOPIS_MAIN.MPR 18:21:36

* *

* *********************************************************

* *

* * Миних

* *

* * 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

* *

* *********************************************************

*

SET SYSMENU TO

SET SYSMENU AUTOMATIC

DEFINE PAD _msm_file OF _MSYSMENU PROMPT "\<Файл" COLOR SCHEME 3 ;

NEGOTIATE LEFT, NONE ;

KEY ALT+F, "" ;

MESSAGE "Creates, opens, saves, prints files or quits "+APP_GLOBAL.cCaption

DEFINE PAD _msm_edit OF _MSYSMENU PROMPT "\<Правка" COLOR SCHEME 3 ;

KEY ALT+E, "" ;

MESSAGE "Edits text or current selection"

DEFINE PAD _msm_tools OF _MSYSMENU PROMPT "\<Сервис" COLOR SCHEME 3 ;

KEY ALT+T, ""

DEFINE PAD _msm_run OF _MSYSMENU PROMPT "\<Живопись" COLOR SCHEME 3 ;

NEGOTIATE LEFT, NONE ;

KEY ALT+G, "" ;

MESSAGE "Запуск форму, отчётов, запросов по живописи"

DEFINE PAD _msm_prog OF _MSYSMENU PROMPT "\<Программа" COLOR SCHEME 3 ;

NEGOTIATE MIDDLE, NONE ;

KEY ALT+P, "" ;

MESSAGE "Runs, debugs, compiles, and suspends programs"

DEFINE PAD _msm_fave OF _MSYSMENU PROMPT "И\<збранное" COLOR SCHEME 3 ;

KEY ALT+A, "ALT+A" ;

MESSAGE "Easy access to favorite documents"

DEFINE PAD _msm_windo OF _MSYSMENU PROMPT "\<Окно" COLOR SCHEME 3 ;

NEGOTIATE RIGHT, NONE ;

KEY ALT+W, ""

DEFINE PAD _msm_systm OF _MSYSMENU PROMPT "\<Помощь" COLOR SCHEME 3 ;

KEY ALT+H, ""

ON PAD _msm_file OF _MSYSMENU ACTIVATE POPUP файл

ON PAD _msm_edit OF _MSYSMENU ACTIVATE POPUP правка

ON PAD _msm_tools OF _MSYSMENU ACTIVATE POPUP сервис

ON PAD _msm_run OF _MSYSMENU ACTIVATE POPUP живопись

ON PAD _msm_prog OF _MSYSMENU ACTIVATE POPUP программа

ON PAD _msm_fave OF _MSYSMENU ACTIVATE POPUP избранное

ON PAD _msm_windo OF _MSYSMENU ACTIVATE POPUP окно

ON PAD _msm_systm OF _MSYSMENU ACTIVATE POPUP помощь

DEFINE POPUP файл MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF файл PROMPT "\<Создать..." ;

MESSAGE "Creates a document"

DEFINE BAR 2 OF файл PROMPT "\<Открыть..." ;

MESSAGE "Opens a document"

DEFINE BAR 3 OF файл PROMPT "\<Закрыть" ;

SKIP FOR TYPE("_SCREEN.Activeform") # "O" OR _SCREEN.ActiveForm.ShowWindow = 2 ;

MESSAGE "Closes the active form"

DEFINE BAR 4 OF файл PROMPT "\-"

DEFINE BAR 5 OF файл PROMPT "\<Сохранить" ;

SKIP FOR EMPTY(AUSED(latemp)) ;

MESSAGE "Saves the editing on the current form or formset"

DEFINE BAR 6 OF файл PROMPT "\<Отменить" ;

SKIP FOR EMPTY(AUSED(latemp)) ;

MESSAGE "Reverts the editing on the current form or formset"

DEFINE BAR 7 OF файл PROMPT "\-"

DEFINE BAR 8 OF файл PROMPT "Печат\<ь..." ;

SKIP FOR EMPTY(AUSED(latemp)) ;

MESSAGE "Prints current data"

DEFINE BAR 9 OF файл PROMPT "\<Печать отчётов..." ;

MESSAGE "Picks a report"

DEFINE BAR 10 OF файл PROMPT "На\<стройки печати...."

DEFINE BAR 11 OF файл PROMPT "\-"

DEFINE BAR 12 OF файл PROMPT "\<Быстрый старт..." ;

MESSAGE "Picks a form or report document to run"

DEFINE BAR 13 OF файл PROMPT "\<Логин..." ;

MESSAGE "Log in as a different User"

DEFINE BAR 14 OF файл PROMPT "\-"

DEFINE BAR 15 OF файл PROMPT "В\<ыход" ;

MESSAGE "Exit "+APP_GLOBAL.cCaption

ON SELECTION BAR 1 OF файл APP_GLOBAL.DoNewOpen(.T.)

ON SELECTION BAR 2 OF файл APP_GLOBAL.DoNewOpen()

ON SELECTION BAR 3 OF файл IIF(APP_GLOBAL.QueryDataSessionUnload(),APP_GLOBAL.ReleaseForm(),.T)

ON SELECTION BAR 5 OF файл APP_GLOBAL.DataUpdate()

ON SELECTION BAR 6 OF файл APP_GLOBAL.DataRevert()

ON SELECTION BAR 8 OF файл APP_GLOBAL.DoTableOutput()

ON SELECTION BAR 9 OF файл APP_GLOBAL.DoReportDialog()

ON SELECTION BAR 10 OF файл SET PRINTER TO NAME (SYS(1037))

ON SELECTION BAR 12 OF файл APP_GLOBAL.DoStartupForm()

ON SELECTION BAR 13 OF файл IIF(APP_GLOBAL.ReleaseForms(),IIF(APP_GLOBAL.SetCurrentUser(.T.),.T., APP_GLOBAL.Release()),.T.)

ON SELECTION BAR 15 OF файл APP_GLOBAL.Release()

DEFINE POPUP правка MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR _med_undo OF правка PROMPT "\<Отменить" ;

KEY CTRL+Z, "Ctrl+Z" ;

MESSAGE "Undoes the last command or action"

DEFINE BAR _med_redo OF правка PROMPT "По\<вторить" ;

KEY CTRL+R, "Ctrl+R" ;

MESSAGE "Repeats the last command or action"

DEFINE BAR _med_sp100 OF правка PROMPT "\-"

DEFINE BAR _med_cut OF правка PROMPT "Вы\<резать" ;

KEY CTRL+X, "Ctrl+X" ;

MESSAGE "Removes the selection and places it onto the Clipboard"

DEFINE BAR _med_copy OF правка PROMPT "\<Копировать" ;

KEY CTRL+C, "Ctrl+C" ;

MESSAGE "Copies the selection onto the Clipboard"

DEFINE BAR _med_paste OF правка PROMPT "\<Вставить" ;

KEY CTRL+V, "Ctrl+V" ;

MESSAGE "Pastes the contents of the Clipboard"

DEFINE BAR _med_clear OF правка PROMPT "Очи\<стить" ;

MESSAGE "Removes the selection and does not place it onto the Clipboard"

DEFINE BAR _med_sp200 OF правка PROMPT "\-"

DEFINE BAR _med_slcta OF правка PROMPT "Вы\<брать всё" ;

KEY CTRL+A, "Ctrl+A" ;

MESSAGE "Selects all text or items in the current window"

DEFINE BAR _med_sp300 OF правка PROMPT "\-"

DEFINE BAR _med_find OF правка PROMPT "\<Найти..." ;

KEY CTRL+F, "Ctrl+F" ;

MESSAGE "Searches for specified text"

DEFINE BAR _med_finda OF правка PROMPT "Найти е\<щё раз" ;

KEY CTRL+G, "Ctrl+G" ;

MESSAGE "Repeats the last search"

DEFINE BAR _med_repl OF правка PROMPT "З\<аменить..." ;

KEY CTRL+L, "Ctrl+L" ;

MESSAGE "Replaces specified text with different text"

DEFINE POPUP сервис MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF сервис PROMPT "М\<акрос..." ;

MESSAGE "Creates, deletes, or revises a keyboard macro"

DEFINE BAR 2 OF сервис PROMPT "\<Логи ошибок"

DEFINE BAR 3 OF сервис PROMPT "\-"

DEFINE BAR 4 OF сервис PROMPT "\<Опции..."

DEFINE BAR 5 OF сервис PROMPT "\<Сменить пароль..."

ON BAR 1 OF сервис ACTIVATE POPUP макрос

ON BAR 2 OF сервис ACTIVATE POPUP логиошибок

ON SELECTION BAR 4 OF сервис APP_GLOBAL.DoOptionsDialog()

ON SELECTION BAR 5 OF сервис APP_GLOBAL.DoChangePassword()

DEFINE POPUP макрос MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF макрос PROMPT "\<Записать макрос"

DEFINE BAR 2 OF макрос PROMPT "\<Очистить макрос"

DEFINE BAR 3 OF макрос PROMPT "\<Сохранить макрос по умолчанию"

DEFINE BAR 4 OF макрос PROMPT "Восстановить \<макрос по умолчанию"

ON SELECTION BAR 1 OF макрос KEYBOARD ("{"+SET("MACKEY")+"}")

ON SELECTION BAR 2 OF макрос CLEAR MACROS

ON SELECTION BAR 3 OF макрос APP_GLOBAL.SetMacros(.T.)

ON SELECTION BAR 4 OF макрос APP_GLOBAL.SetMacros()

DEFINE POPUP логиошибок MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF логиошибок PROMPT "\<Показать лог ошибок"

DEFINE BAR 2 OF логиошибок PROMPT "\<Експортировать лог"

DEFINE BAR 3 OF логиошибок PROMPT "\<Очистить лог"

ON SELECTION BAR 1 OF логиошибок APP_GLOBAL.DisplayErrorLog()

ON SELECTION BAR 2 OF логиошибок APP_GLOBAL.ExportErrorLog()

ON SELECTION BAR 3 OF логиошибок APP_GLOBAL.PurgeErrorLog()

DEFINE POPUP живопись MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF живопись PROMPT "\<ФОРМЫ"

DEFINE BAR 2 OF живопись PROMPT "\<ОТЧЁТЫ"

DEFINE BAR 3 OF живопись PROMPT "\<ЗАПРОСЫ"

DEFINE BAR 4 OF живопись PROMPT "\<ПРЕДСТАВЛЕНИЯ"

ON BAR 1 OF живопись ACTIVATE POPUP формы

ON BAR 2 OF живопись ACTIVATE POPUP отчёты

ON BAR 3 OF живопись ACTIVATE POPUP запросы

ON BAR 4 OF живопись ACTIVATE POPUP представле

DEFINE POPUP формы MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF формы PROMPT "\<Художники"

DEFINE BAR 2 OF формы PROMPT "\<Картины"

DEFINE BAR 3 OF формы PROMPT "\<Эпохи"

DEFINE BAR 4 OF формы PROMPT "\<Музеи"

ON SELECTION BAR 1 OF формы DO FORM "H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\artists.scx"

ON SELECTION BAR 2 OF формы DO FORM "H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\pictures.scx"

ON SELECTION BAR 3 OF формы DO FORM "H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\epoch.scx"

ON SELECTION BAR 4 OF формы DO FORM "H:\Visual FoxPro Projects\Dovidnik_givopis\FORMS\museums.scx"

DEFINE POPUP отчёты MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF отчёты PROMPT "\<КАРТИНЫ"

DEFINE BAR 2 OF отчёты PROMPT "\<ЭПОХИ"

ON SELECTION BAR 1 OF отчёты REPORT FORM "H:\Visual FoxPro Projects\Dovidnik_givopis\REPORTS\KARTINI.FRX " PREVIEW

ON SELECTION BAR 2 OF отчёты REPORT FORM " H:\Visual FoxPro Projects\Dovidnik_givopis\REPORTS\EPOHI.FRX " PREVIEW

DEFINE POPUP запросы MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF запросы PROMPT "\<Художники"

DEFINE BAR 2 OF запросы PROMPT "\<Картины да Винчи"

ON SELECTION BAR 1 OF запросы DO "h:\visual foxpro projects\dovidnik_givopis_2\queries\query1_hud.qpr"

ON SELECTION BAR 2 OF запросы DO "h:\visual foxpro projects\dovidnik_givopis_2\queries\query2_kart.qpr"

DEFINE POPUP представле MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF представле PROMPT "\<Живопись"

ON SELECTION BAR 1 OF представле ;

DO _38c13cokn ;

IN LOCFILE("DOVIDNIK_GIVOPIS_2\MENUS\DOVIDNIK_GIVOPIS_MAIN" ,"MPX;MPR|FXP;PRG" ,"WHERE is DOVIDNIK_GIVOPIS_MAIN?")

DEFINE POPUP программа MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR _mpr_do OF программа PROMPT "\<Запустить..." ;

MESSAGE "Runs a program, application, form, report, query, or menu"

DEFINE BAR _mpr_cancl OF программа PROMPT "\<Отменить" ;

MESSAGE "Stops running the current program"

DEFINE BAR _mpr_resum OF программа PROMPT "\<Продолжить" ;

MESSAGE "Resumes running the current suspended program"

DEFINE BAR _mpr_suspend OF программа PROMPT "\<Остановить" ;

MESSAGE "Suspends the currently running program"

DEFINE BAR _mpr_compl OF программа PROMPT "С\<компилировать..." ;

MESSAGE "Compiles the current or selected program"

DEFINE BAR 6 OF программа PROMPT "\-"

DEFINE BAR 7 OF программа PROMPT "Отл\<адчик"

DEFINE BAR 8 OF программа PROMPT "С\<ессии данных"

DEFINE BAR 9 OF программа PROMPT "Ко\<мандная строка"

DEFINE BAR 10 OF программа PROMPT "\-"

DEFINE BAR _mtl_browser OF программа PROMPT "Проводник \<классов" ;

MESSAGE "Runs the Class Browser"

ON SELECTION BAR 7 OF программа DEBUG

ON SELECTION BAR 8 OF программа APP_GLOBAL.ActivateSystemWindow("View")

ON SELECTION BAR 9 OF программа APP_GLOBAL.ActivateSystemWindow("Command")

DEFINE POPUP избранное MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF избранное PROMPT "\<Добавить в избранное..." ;

MESSAGE "Add to Favorites menu"

DEFINE BAR 2 OF избранное PROMPT "\<Очистить избранное" ;

MESSAGE "Clear list of Favorites"

DEFINE BAR 3 OF избранное PROMPT "\-"

ON SELECTION BAR 1 OF избранное APP_GLOBAL.DoStartupForm(.T.)

ON SELECTION BAR 2 OF избранное APP_GLOBAL.ClearFavorites()

DEFINE POPUP окно MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF окно PROMPT "\<Каскадом"

DEFINE BAR _mwi_arran OF окно PROMPT "\<Организовать вс" ;

MESSAGE "Arranges windows as non-overlapping tiles"

DEFINE BAR _mwi_rotat OF окно PROMPT "Ц\<икл" ;

KEY CTRL+F1, "CTRL+F1"

ON SELECTION BAR 1 OF окно APP_GLOBAL.CascadeAll()

DEFINE POPUP помощь MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF помощь PROMPT "\<Помощь" ;

KEY F1, "F1"

DEFINE BAR 2 OF помощь PROMPT "\-"

DEFINE BAR 3 OF помощь PROMPT "\<О "+APP_GLOBAL.cCaption+"..."

ON SELECTION BAR 1 OF помощь APP_GLOBAL.DoHelp()

ON SELECTION BAR 3 OF помощь APP_GLOBAL.DoAboutBox()

ON SELECTION POPUP файл MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

ON SELECTION POPUP сервис MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

ON SELECTION POPUP логиошибок MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

ON SELECTION POPUP программа MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

ON SELECTION POPUP избранное MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

ON SELECTION POPUP окно MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

ON SELECTION POPUP помощь MESSAGEBOX(APP_FEATURE_NOT_AVAILABLE_LOC,0,APP_GLOBAL.cCaption)

* *********************************************************

* *

* * Cleanup Code & Procedures

* *

* *********************************************************

*

* none of these statements will work

* in exactly this way in a Top menu --

* we'll use the array elements

IF VERSION(2) = 0

RELEASE PAD _msm_prog OF _MSYSMENU

RELEASE POPUP _mprog EXTENDED

SET SYSMENU SAVE

SET SYSMENU TO

SET SYSMENU TO DEFAULT

ENDIF

* the program pad items, above, always get

* get released in runtime, but some items

* specific to application state may be

* released or disabled as you choose:

IF NOT APP_GLOBAL.lReleaseUnusedMenuItems

IF EMPTY(APP_GLOBAL.cHelpFile)

SET SKIP OF BAR 1 OF _msystem .T.

ENDIF

IF EMPTY(APP_GLOBAL.cOptionsDialogClass)

SET SKIP OF BAR 4 OF _mtools .T.

ENDIF

IF EMPTY(APP_GLOBAL.cAboutBoxClass)

SET SKIP OF BAR 3 OF _msystem .T.

ENDIF

IF EMPTY(APP_GLOBAL.cStartupFormClass) ;

OR NOT (APP_GLOBAL.lStartupForm)

SET SKIP OF BAR 12 OF _mfile .T.

ENDIF

IF NOT APP_GLOBAL.lUserPreferences

SET SKIP OF BAR 13 OF _mfile .T.

SET SKIP OF BAR 5 OF _mtools .T.

ENDIF

ELSE

* if you prefer

IF EMPTY(APP_GLOBAL.cOptionsDialogClass)

RELEASE BAR 4 OF _mtools

ENDIF

IF EMPTY(APP_GLOBAL.cAboutBoxClass)

RELEASE BAR 3 OF _msystem

ENDIF

IF EMPTY(APP_GLOBAL.cHelpFile)

RELEASE BAR 1 OF _msystem

RELEASE BAR 2 OF _msystem

ENDIF

IF NOT APP_GLOBAL.lUserPreferences

RELEASE BAR 13 OF _mfile

RELEASE BAR 14 OF _mfile

RELEASE BAR 5 OF _mtools

ENDIF

IF EMPTY(APP_GLOBAL.cStartupFormClass) ;

OR NOT (APP_GLOBAL.lStartupForm)

RELEASE BAR 12 OF _mfile

ENDIF

ENDIF

IF (NOT APP_GLOBAL.lReadEvents)

* unlikely for a Replace-style menu unless

* Top Form, but the following

* isn't safe in a non-ReadEvents environment

RELEASE BAR 1 OF _mTools

RELEASE POPUP _mMacros

ELSE

APP_GLOBAL.cMacroPopupName = "_mMacros"

APP_GLOBAL.SetMacros() && refresh to appropriately disable bar

IF EMPTY(SET("MACKEY"))

RELEASE BAR 1 OF _mMacros

ENDIF

ENDIF

IF (NOT APP_GLOBAL.lFavorites)

RELEASE PAD _msm_Fave OF _MSYSMENU

RELEASE POPUP _mfave EXTENDED

ACTI MENU _MSYSMENU NOWAIT

ELSE

APP_GLOBAL.cFavoritePopupName = "_mFave"

APP_GLOBAL.RefreshFavoritePopup()

ENDIF

* *********************************************************

* *

* * _38C13COKN ON SELECTION BAR 1 OF POPUP представле

* *

* * Procedure Origin:

* *

* * From Menu: DOVIDNIK_GIVOPIS_MAIN.MPR, Record: 69

* * Called By: ON SELECTION BAR 1 OF POPUP представле

* * Prompt: Живопись

* * Snippet: 1

* *

* *********************************************************

*

PROCEDURE _38c13cokn

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

4. Створення інсталяційного пакету

Створення інсталяційного пакету будемо проводити за допомогою програми InstallSheld Express Visual FoxPro Limited Edition:

    Запускаємо програму InstallSheld Express Visual FoxPro Limited Edition (Рис. 4.1)

Рис. 4.1 – Головне вікно InstallSheld Express Visual FoxPro Limited Edition

    Створюємо новий проект (Рис. 4.2)

Рис. 4.2 – Вікно New Project

Вводимо Application Information, як показано на рис. 4.3.

Рис. 4.3 – Вікно Application Information

    Вставляємо потрібну нам БД до інсталяційного пакету (Рис. 4.4)

Рис. 4.4 – Вкладка Application Files

    Будуємо інсталяційний пакет (Рис. 4.5).

Рис. 4.5 – Створення інсталяційного пакету програми

    Після створення інсталяційного пакету записуємо його на диск.

Висновки

Бази даних відіграють велику роль у сучасному світі. Все з чим ми сьогодення зустрічаємось, швидше всього зареєстровано в тій чи іншій базі. При роботі з великим обсягом даних важливу роль відіграє їх наглядність. Тому часто дані представляють у вигляді таблиць. На прикладі баз даних ми ознайомимось з тим, як організовується збереження і обробка даних в таблиці, для зручності редагування та перегляду даних зробимо форми та звіти. Вміння працювати з базами даних сьогодні є одним з найважливіших навиків роботи з комп’ютером, а спеціалісти з цієї галузі ніколи не залишаться безробітними.

Результатом даної роботи є база даних під назвою «Довідник аматора живопису». В цій базі даних, окрім таблиць, що містять інформацію про художників, картини, епохи живопису, музеї та інше, є також форми, що забезпечують користувачеві можливості перегляду і редагування бази даних. Були також створені запити, які показують окремі частини бази даних, які відібрані по певному критерію, а також представлення даних, що забезпечує користувачеві можливість перегляду повного вмісту бази даних.

База даних має власне меню, в якому є всі запити, форми, представлення даних та багато іншого.

Таким чином, при виконанні курсової роботи були отримані практичні навички розробки баз даних та додатків для керування ними у Visual FoxPro.

Перелік використаної літератури

    Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: учебник для высших учебных заведений. – 3-е издание, дополненное и переработанное. – СПБ: Корона принт, 2003. – 672 с.

    Агальцов В. П. Базы данных. – М.: Мир, 2002. – 376 с.

    Русскоязычная справка Visual FoxPro 8.

    Иллюстрированный самоучитель по Visual FoxPro 7

    Методичний посібник з лабораторного практикуму. Частина 1 та 2. /Склали П.В. Бурнасов, М.П.Тиханський, Л.І.Єфименко - Кривий Ріг: КТУ, 2002.

    Методичний посібник для проектування і програмування додатків з використанням СУБД для студентів спеціальностей 8.0101.04, 8.0914.01, 7.091501 усіх форм навчання / Укладач П.В. Бурнасов - Кривий Ріг: КТУ, 2003.

    Ставровский А.Б. «Fox для начинающих:Учебное пособие» - К.: Издательская группа BHV, 2000. – 400 с.

    3. Глушаков С.В., Сурядный А.С. «Персональный компьютер». – 5-е изд., доп. и перераб. – Харьков: Фолио, 2007. – 500 с. – (Учебный курс).

    Електронний ресурс: http://www.museum-online.ru/

    Електронний ресурс:

    http://av-gostemilov-foxpro.narod.ru/Glava11/Index10.htm

    Електронний ресурс: http://www.yworld.ru/book/info/Glava13/Index6.htm