Людмила Омельченко Дар'я Шевякова САМОУЧИТЕЛЬ Санкт-Петербург «БХВ-Петербург» 2005 УДК 681.3.068+800.92Visual FoxPro 9 ББК 32.973.26-018.1 О-57 Омельченко Л. Н., Ш. . – СПб.: БХВ-Петербург, 2005. – 608 с.: іл. ISBN 5-94157-632-3 Розглянуто Visual FoxPro 9.0 - потужний пакет програм, призначений для побудови професійних програм, що працюють з базами даних. Описано інтегроване середовище розробки додатків та створення з її допомогою основних об'єктів, таких як класи, таблиці, запити, форми, звіти. Розглянуто експорт та імпорт даних, а також публікацію даних на Webсервері. Показано як розробляти, створювати та тестувати клієнт-серверні програми. Приділено увагу особливостям чергової версії популярного пакету, а також додатковим можливостям для роботи з XML Web-сервісами та взаємодії з іншими програмами (Microsoft Visual Studio .NET та Microsoft SQL Server 2000). Численні приклади та ілюстрації допоможуть швидко освоїти та успішно застосовувати на практиці викладений матеріал. Для програмістів та розробників баз даних УДК 681.3.068+800.92Visual FoxPro 9 ББК 32.973.26-018.1 Група підготовки видання: Головний редактор Заст. гол. редактора Зав. редакцією Редактор Комп'ютерна верстка Коректор Дизайн обкладинки Зав. виробництвом Катерина Кондукова Ігор Шишигін Григорій Добін Наталія Довгулевич Наталії Караваєвої Вікторія Піотровська Ігоря Цирульникова Микола Тверських Ліцензія ВД № 02429 від 24.07.00. Підписано до друку 18.03.05. Формат 70 1001/16. Друк офсетний. Ум. піч. л. 49. Тираж 5000 екз. Замовлення № "БХВ-Петербург", 194354, Санкт-Петербург, вул. Єсеніна, 5Б. Санітарно-епідеміологічний висновок на продукцію № 77.99.02.953.Д.006421.11.04 від 11.11.2004 р. видано Федеральною службою з нагляду у сфері захисту прав споживачів та благополуччя людини. Надруковано з готових діапозитивів у ДУП "Друкарня "Наука" 199034, Санкт-Петербург, 9 лінія, 12 © Омельченко Л. Н., Шевякова Д. А., 2005 Петербург", 2005 Îãëàâëåííå ВСТУП............................................ .................................................. ............. 1 Як користуватися книгою................................. .................................................. ................. 2 Як побудована книга ............................. .................................................. ............................ 2 Спеціальні елементи книги. .................................................. ......................................... 3 РОЗДІЛ 1. ЗНАЙОМСТВО З VISUAL FOXPRO . .................................................. ... 5 Сучасні реляційні СУБД........................................... .......................................... 7 Об'єкти Visual FoxPro .... .................................................. ................................................. 10 Що нового з'явилося у Visual FoxPro 9.0........................................... ............................ 12 РОЗДІЛ 2. ПОЧАТОК РОБОТИ З VISUAL FOXPRO ............. .................................. 15 Запуск Visual FoxPro ............ .................................................. ............................................ 15 Головне вікно Visual FoxPro . .................................................. ........................................... 15 Менеджер панелі завдань... .................................................. ............................................... 27 Довідкова система Visual FoxPro ................................................ ................................... 30 РОЗДІЛ 3. ПРОЕКТ ЯК ЗАСІБ ОБ'ЄДНАННЯ ЕЛЕМЕНТІВ ДОДАТКА..... .................................................. .... 39 Створення проекту програми.......................................... ............................................... 39 Управління проектом за допомогою меню............................................... .......................... 45 Управління елементами проекту.................... .................................................. ................ 46 Використання майстра при створенні проекту............................ .................................. 47 РОЗДІЛ 4. СТВОРЕННЯ БАЗИ ДАНИХ ПРОЕКТУ........ ..................................... 57 Створення бази даних у вікні проекту...... .................................................. .................... 57 Створення бази даних поза проектом........................ .................................................. ....... 61 Таблиці - основа бази даних..................................... ................................................. 62 Вікно конструктора таблиць............................................... ................................................. 68 Індекси................................................. .................................................. ........................... 78 Відносини між таблицями................... .......... .................................................. ............ 82 Цілісність даних................................... .................................................. ..................... 85 IV Îãëàâëåíèå РОЗДІЛ 5. ФОРМА ЯК ЗАСІБ ВВЕДЕННЯ І РЕДАКТУВАННЯ ДАНИХ................ ........................................ 89 Створення форми за допомогою майстра. .................................................. ....................... 90 Запуск форми........................ .................................................. ........................................... 97 Об'єкти форми. .................................................. .................................................. .......... 97 Дії, що виконуються з об'єктами форми................................. .............................. 101 Зміна послідовності введення інформації в поля форми............ .............. 105 РОЗДІЛ 6. КОНСТРУКТОР ФОРМ.............................. .......................................109 Вікно конструктора форм....... .................................................. ....................................... 109 Створення форми........ .................................................. .................................................. .. 113 Налаштування параметрів форми............................................ ............................................ 114 Середовище оточення форми. .................................................. ............................................. 116 Послідовність дій під час налаштування параметрів форми............................. 122 Розміщення об'єктів у формі.............. .................................................. ....................... 123 РОЗДІЛ 7. СТВОРЕННЯ І ДРУК ЗВІТІВ................... ..................................157 Що таке звіт............ .................................................. .................................................. 157 Рекомендації щодо створення звіту............................................ .................................... 157 Засоби створення звітів.......... .................................................. .................................. 158 Використання майстра для створення однотабличного звіту......... .......................... 158 Перегляд підготовленого звіту.................... .................................................. ........... 168 Друк звіту.................................... ............................................ .................................... 169 ГЛАВА 8. СТВОРЕННЯ ЗВІТУ З ДОПОМОГЮ КОНСТРУКТОРА ЗВІТІВ. .................................................. .........173 Вікно конструктора звітів..................................... .................................................. ..... 173 Використання команди Quick Report для розміщення полів.................................... 175 Встановлення середовища оточення звіту.............................................. ................................. 179 Властивості об'єктів звіту............... .................................................. ................................. 182 Розміщення об'єктів у звіті............ .................................................. ......................... 188 Додавання до звіту областей заголовка та підсумків................. ........................................ 200 Створення простого звіту...... .................................................. ....................................... 201 Створення звіту у вільній формі..... .................................................. ...................... 203 Створення табличного звіту........................ .................................................. ................. 205 Угруповання даних у звіті............................ .................................................. ........... 207 Використання у звіті змінних.................................. ........................................... 211 Розмітка сторінки звіту... .................................................. .......................................... 213 Багатоколонковий звіт..... .................................................. .......................................... 215 РОЗДІЛ 9. ЗАПИТАННЯ ДО БАЗИ ДАНИХ .................................................. ...........217 Конструктор запитів.................................... .................................................. ............... 218 Формування списку полів результуючої таблиці запиту............................ ... 221 Вкладка Order By конструктора запитів......................................... ............................. 225 Завдання умов вибору записів............... .................................................. ........... 227 Багатотабличні запити.................................... .................................................. ......... 233 Угруповання полів запиту.................................................. .................................................. .. ... 237 Зміна найменувань полів у запиті......................................... ......................... 241 Îãëàâëåíèå V РОЗДІЛ 10. ПЕРЕХРЕСНІ ТАБЛИЦІ ТА ДІАГРАМИ............... ...............243 Перехресні таблиці................................ .................................................. .................. 243 Експорт даних............................. .................................................. ................................ 254 Побудова діаграм............... .................................................. ..................................... 254 РОЗДІЛ 11. МЕНЮ ДОДАТКА....... .................................................. .........261 Підготовка до створення меню.................................... .................................................. .. 261 Дії, необхідні для створення меню......................................... ....................... 262 Запуск конструктора меню....................... .................................................. .................... 262 Створення меню........................... .................................................. .................................... 264 Збереження, генерація та запуск меню....... .................................................. ................ 278 Створення спливаючого меню.............................. .................................................. ...... 279 РОЗДІЛ 12. СТВОРЕННЯ ДОВІДКОВОЇ СИСТЕМИ ДОДАТКА...............281 Рядок стану.................. .................................................. ......................................... 281 Використання діалогових вікон..... .................................................. ............................ 282 Створення довідкової системи у форматі HTML ............... ......................................... 285 Використання довідкової системи у додатках... ............................................... 293 РОЗДІЛ 13 УПРАВЛІННЯ ПРОЕКТОМ І СТВОРЕННЯ ДОДАТКА..........297 Визначення властивостей вікна проекту............................. .................................................. 297 Встановлення параметрів проекту.............................................. ............................................. 299 Встановлення основної програми проекту .................................................. .................... 302 Використання опції Exclude .......................... .................................................. ............ 303 Очищення проекту від віддалених файлів. .................................................. ...................... 303 Побудова проекту......................... .................................................. .............................. 303 Галерея компонентів Visual FoxPro ............... .................................................. .............. 306 РОЗДІЛ 14. УМОВИ ДОСТАВНОСТІ, ЗБЕРІГАНІ ПРОЦЕДУРИ, ТРИГЕРИ, ПРЕДСТАВЛЕННЯ ДАНИХ...................... ................315 Умови достовірності введення даних на рівні записів.......................... ................. 315 Умови достовірності введення даних на рівні поля таблиці........................ ........ 323 Використання уявлень даних...................................... ................................... 325 РОЗДІЛ 15. РОЗШИРЕНІ ЗАСОБИ ВВЕДЕННЯ ДАНИХ....... .......................337 Відображення даних у формі у табличному вигляді................... ...................................... 337 Створення форми з вкладками....... .................................................. ............................... 356 Набір форм................ .................................................. .................................................. .. 360 Таймер.............................................. .................................................. ............................... 361 Додавання даних до списку.............. .................................................. ......................... 364 РОЗДІЛ 16. БІБЛІОТЕКИ КЛАСІВ І ACTIVEX-КОМПОНЕНТИ............... ..367 Використання бібліотек класів............................................ .................................... 367 Використання ActiveX-компонентів у формі....... .................................................. .... 374 Використання браузера об'єктів.......................................... ....................................... 390 РОЗДІЛ 17. РОЗШИРЕНІ ЗАСОБИ СТВОРЕННЯ ЗВІТІВ... ..................395 Використання у звітах уявлень даних........................ ............................... 395 Етикетки. .................................................. .................................................. ...... 396 Використання у звітах відносини "один-багатьом" ................................ ............ 404 VI Îãëàâëåíèå ГЛАВА 18. РОЗШИРЕНІ ЗАСОБИ ВИБІРКИ ДАНИХ.......................409 Виведення результатів запиту. .................................................. ....................................... .... 409 Збереження результатів запиту у форматі HTML ....................................... .............. 412 Використання в програмах команди Select .............................. ................................. 414 РОЗДІЛ 19. ВІЗУАЛЬНЕ ОБ'ЄКТНО-ОРІЄНТУВАНЕ ПРОГРАМУВАННЯ........ .................................................. ........419 Використання класів....................................... .................................................. .......... 419 Використання вкладених об'єктів.................................... ......................................... 434 Користувальницькі класи...... .................................................. ........................................ 437 Перегляд інформації про клас та визначення значка для нього позначення.......... 447 Формування списку бібліотек, що використовуються в конструкторах форм і класів............................ .................................................. ...... 450 Створення форм на основі користувальницьких класів..................................... ............. 450 Використання форми для створення класу............................... .................................. 454 Засіб Class Browser ............ .................................................. ....................................... 455 Створення панелі інструментів....... .................................................. ............................ 458 РОЗДІЛ 20. БАГАТОКОРИСТУВАЛЬНА РОБОТА У ЛОКАЛЬНІЙ МЕРЕЖІ............. .................................................. ........463 Типи блокувань....................................... .................................................. .................... 463 Автоматичне блокування........................... .................................................. ............... 463 Повне блокування таблиці та блокування змін............................ .................. 465 Блокування таблиці............................. .................................................. ......................... 466 Блокування записів...................... .................................................. ................................. 466 Зняття блокувань таблиць та записів........... .................................................. .............. 468 Сеанси роботи з даними............................... .................................................. ............. 469 Використання буферів.................................. ..................... ........................................... 470 Використання транзакцій. .................................................. ....................................... 474 РОЗДІЛ 21. ЗВ'ЯЗУВАННЯ І ВПРОВАДЖЕННЯ ОБ'ЄКТІВ, ЕКСПОРТ І ІМПОРТ ДАНИХ................................................ .....................475 Visual FoxPro та OLE-об'єкти...................... .................................................. ................. 475 Зв'язування OLE-об'єкта............................ .................................................. .................. 481 Редагування OLE-об'єкта........................... .................................................. ............ 484 Видалення OLE-об'єкта................................. .................................................. ................. 484 Використання об'єктно-орієнтованого програмування........................... ... 484 Передача даних з Visual FoxPro до інших програм...................................... ..... 486 Імпорт даних.......................................... .................................................. .................... 488 Використання даних з Visual FoxPro у Microsoft Word ..................... .................... 491 РОЗДІЛ 22. ВИДАЛЕНІ ПРЕДСТАВЛЕННЯ ДАНИХ....................... ............497 Визначення джерела даних ODBC ................................. ....................................... 497 Іменоване з'єднання........ .................................................. ..................................... 500 Конструктор з'єднань.......... .................................................. .................................... 500 Налаштування параметрів віддалених уявлень та з'єднань у діалоговому вікні Options ... .................................................. .......................................... 503 Створення віддаленого представлення даних... .................................................. .......... 505 Îãëàâëåíèå VII Спільно використовувані з'єднання.................................. ......................................... 513 Комбінування у поданні локальних та віддалених даних. ........................ 514 Налаштування подання за допомогою словника бази даних.................. .................... 516 РОЗДІЛ 23. ПЕРЕНОС ДАНИХ З VISUAL FOXPRO НА ПЛАТФОРМУ КЛІЄНТ-СЕРВЕР................ ...............................519 Використання майстра нарощування для перенесення даних до бази даних SQL Server ....... ...... .................................................. ................................. 519 ГЛАВА 24. ПУБЛІКАЦІЯ ДАНИХ НА WEB-СЕРВЕРІ....... ..........................531 Майстер Web Publishing .................... .................................................. ................................ 531 Налаштування параметрів Web-сторінки за допомогою майстра......... ............................... 535 Створення Web-сторінки.............. .................................................. ................................. 539 Редагування створеної Web-сторінки........... .................................................. ...... 543 РОЗДІЛ 25. НАЛАШТУВАННЯ ПАРАМЕТРІВ VISUAL FOXPRO ................................545 Параметри вкладок вікна Options ................................................. ................................... 546 ДОДАТОК. ВСТАНОВЛЕННЯ VISUAL FOXPRO ..............................................573 Вимоги до системи............................................... .................................................. ..... 573 Встановлення Visual FoxPro ......................................... .................................................. ....... 573 Налаштування Visual FoxPro ....................................... .................................................. ........ 575 ГЛОСАРІЙ........................................ .................................................. ...........579 ПРЕДМЕТНИЙ ПОКАЖЧИК.................................... ........................................589 VIII Îãëàâëåííå Ââåäåíèå В останні роки періодично виникають чутки про те, що Microsoft припинить підтримку програмного продукту Visual FoxPro. Але вкотре вони виявляються підступами недоброзичливців. І чергова нова версія Visual FoxPro 9.0 - пряме підтвердження цього. Незважаючи на появу нових систем керування базами даних, Visual FoxPro продовжує залишатися однією з найпопулярніших програм у цій галузі. Це, перш за все, пов'язане з тим, що під час створення нових версій Microsoft зберігає сумісність із попередніми версіями. Тому створені вами програми можна буде використовувати і надалі. Visual FoxPro реалізовано всі атрибути реляційних систем управління базами даних. У базі даних підтримується цілісність даних за допомогою первинних ключів та зв'язків між таблицями. Для обробки подій додавання, видалення або зміни записів таблиць засобами самої бази даних ви можете використовувати тригери та процедури, що зберігаються. Visual FoxPro - це об'єктно-орієнтована, візуально-програмована мова, керована за подіями, яка повною мірою відповідає новим вимогам, що висуваються до сучасних засобів проектування та реалізації програмного забезпечення. Visual FoxPro можуть використовувати користувачі різних рівнів підготовки. Якщо ви тільки починаєте освоювати Visual FoxPro і вам необхідно в найкоротші терміни розробити простий додаток, вам допоможуть майстри створення баз даних, таблиць, додатків, форм, звітів і т.д. , який дозволяє не тільки використовувати базові класи Visual FoxPro і зовнішні бібліотеки, але й створювати класи користувача. Ця книга представляє інтерес як для початківців знайомство з Visual FoxPro 9.0, так і досвід роботи з цією системою розробників. У книзі послідовно описується весь процес створення закінчених додатків: створення бази даних та таблиць, що входять до неї, конструювання форм для введення та перегляду даних, створення запитів і звітів, а також інших засобів відображення та обробки інформації баз даних. Книга містить велику кількість ілюстрацій, які допоможуть вам знайомитись із викладеним у ній матеріалом. 2 Ââåäåíèå Êàê ïîëüçîâàòüñÿ êíèãîé Якщо ви тільки приступаєте до вивчення Visual FoxPro, то запропонований порядок розділів дозволить вам послідовно йти від простого до складного в освоєнні даного програмного продукту. Якщо ви знайомі з Visual FoxPro, вам не обов'язково читати книгу від початку до кінця. У змісті книги ви можете подивитися, які розділи представляють найбільший інтерес, і вивчити тільки їх. Багато чого можна дізнатися, просто швидко переглянувши книгу. У ній є спеціально виділені моменти, які трапляться вам на очі, коли ви її гортатимете. Êàê ïîñòðîåíà êíèãà Книга передбачає послідовне вивчення матеріалу від більш простого до складного. Глави 1 і 2 книги є вступними. Ви дізнаєтесь, як запустити Visual FoxPro, як отримати в ньому довідкову інформацію, познайомитеся з елементами головного вікна програми та з тим новим, що з'явилося у Visual FoxPro 9.0 порівняно з попередніми версіями. У розділі 3 ви познайомитеся з проектом, який є засобом поєднання елементів програми. Вивчивши розділ 4, ви навчитеся створювати базу даних, таблиці, індекси, зв'язки між таблицями, що входять до неї, визначати умови цілісності даних. У розділах 5 і 6 розглядається створення форм для введення та редагування даних за допомогою майстра та конструктора форм. Глави 7 та 8 присвячені розробці простих звітів. Прочитавши розділ 9, ви можете створити запит будь-якої складності. Глава 10 познайомить вас зі створенням перехресних таблиць та діаграм. Для запуску форм, звітів та програм у програмі використовується меню. У розділі 11 розповідається про створення такого меню програми. Вивчивши перші одинадцять розділів і розібравши запропоновані вашій увазі приклади, ви зможете самостійно створювати програми. Наступні розділи базуються на знаннях, отриманих у перших розділах, та присвячені розширеним засобам створення форм, запитів, звітів. Про те, як розробити для своєї програми ефективну довідкову систему у форматі HTML, ви дізнаєтеся з розділу 12. У розділі 13 обговорюються деякі додаткові питання управління проектом, включаючи створення файлу, що виконується (exe). У розділах з 14 до 18 обговорюються розширені засоби управління базою даних, створення багатотабличних форм і звітів, використання у формах компонентів ActiveX. Розділ 19 познайомить вас з особливостями об'єктно-орієнтованого підходу до створення програм, призначених для управління базами даних. Ви навчитеся створювати класи та об'єкти на їх основі. Глава 20 присвячена роботі Visual FoxPro у локальній мережі. Ââåäåíèå 3 Visual FoxPro не є ізольованою системою і може ефективно взаємодіяти з іншими програмами Windows. Прочитавши розділ 21, ви дізнаєтесь, як працювати зі складовими об'єктами (OLE), експортувати та імпортувати дані. Як встановити драйвер ODBC, як створити віддалене представлення даних та налаштувати його параметри, ви дізнаєтеся з розділу 22. Глава 23 познайомить вас із перенесенням даних із Visual FoxPro на платформу клієнт/сервер за допомогою майстра нарощування. Visual FoxPro є можливість формування Web-сторінки з використанням інформації, що міститься в базі даних. Про це йтиметься в розділі 24. Для ефективної роботи з Visual FoxPro використовуються параметри, налаштування яких розглянуто в останньому розділі книги. У програмі ви познайомитеся з інсталяцією Visual FoxPro 9.0. Книга містить глосарій з описом термінів Visual FoxPro. Ñïåöèàëüííå ýëåìåíòû êíèãè У книзі є багато особливих вставок, виділених спеціальним чином. Вони містять додаткову інформацію, яка полегшує читання та пошук інформації: ÇÀÌÅ×ÀÍÈÅ У зауваженнях йдеться про наслідки, до яких призводять ті чи інші дії. ÑÎÂÅÒ У порадах розповідається про деякі хитрощі, які слід знати, щоб найбільш ефективно використовувати можливості Visual FoxPro. ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ Попередження повинні допомогти вам уникнути проблем. У них сказано, чого слід побоюватися, а також що робити, щоб уникнути помилок. У книзі використовуються різні види шрифту: нові терміни виділено курсивом; той текст, який ви повинні вводити з клавіатури, виділено жирним курсивом; команди меню, найменування кнопок, вкладок, опцій, прапорців, діалогових вікон, областей тощо виділені напівжирним шрифтом; назви функцій, властивостей, методів, баз даних, таблиць, полів таблиць виділено моноширинним шрифтом. Дві клавіші, з'єднані знаком плюс - це комбінація клавіш. Натисніть першу клавішу та, не відпускаючи її, натисніть другу. Потім відпустіть обидві. Автори висловлюють свою вдячність видавництву "BHV-Петербург" за довгу плідну співпрацю та допомогу при підготовці та написанні книги. 4 Ââåäåíèå Ãëàâà 1 Çíàêîìñòâî ñ Visual FoxPro Зміни, що відбуваються в нашій країні останнім часом, не могли не торкнутися областей інформатики та обчислювальної техніки. Ще десять років тому робота з базами даних була долею професійних програмістів. Самі системи були призначені простого користувача. Основним споживачем таких систем був військово-промисловий комплекс. З появою банків, акціонерних товариств, приватних компаній бази даних знайшли ширше застосування. Люди розуміють, що інформація – це гроші. Її втрата або невчасне отримання можуть коштувати дорого. Саме цим можна пояснити бурхливе зростання інформаційних технологій і стрімкий розвиток систем управління базами даних (СУБД). Перші системи управління базами даних з'явилися в середині шістдесятих років минулого століття і підтримували ієрархічну модель даних, в якій між записами існували стосунки предків/нащадків. Через короткий час були розроблені мережеві бази даних, в основу яких було закладено значно складнішу мережеву модель. Кожна з цих моделей мала свої переваги і недоліки, які відіграли ключову роль у розвитку реляційної моделі. У 1970 р. стаття наукового співробітника компанії IBM доктора Е. Ф. Кодда про реляційну модель даних зробила революцію у підході до зберігання та обробки інформації. На основі цієї моделі у сімдесяті роки минулого століття були розроблені перші реляційні бази даних, а нині вони розглядаються як стандарт для сучасних комерційних СУБД. У реляційних базах даних вся інформація зведена в таблиці, рядки та стовпці яких називаються записами та полями відповідно. Ці таблиці отримали назву реляцій1, тому модель стала називатися реляційною. Записи у таблицях не повторюються. Їх унікальність забезпечується первинним ключем, що містить 1 Відношення - математичний термін з теорії множин, яка лягла в основу реляційної моделі даних. В англійській мові "відношення" відповідає слово "relation", звідси назва "реляція". – Ред. Ãëàâà 1 6 набір полів, що однозначно визначають запис. Для швидкого пошуку інформації в базі даних створюються індекси по одному або декільком полям таблиці. Значення індексів зберігаються в упорядкованому вигляді та містять посилання на запис таблиці. Для автоматичної підтримки цілісності пов'язаних даних, що у різних таблицях, використовуються первинні та зовнішні ключі. Для вибірки даних з кількох зв'язаних таблиць використовуються значення одного або декількох полів, що збігаються. Наприклад, таблиця реєстрації міжміських телефонних розмов може містити таку інформацію: Ïðèìå÷àíèå Записи про міжміські розмови заносяться до книги реєстрації в табличному вигляді в хронологічному порядку (рис. 1.1). Кожен рядок має однакову структуру і складається із восьми полів. У цьому прикладі це поля: Номер замовлення, Код послуги, Номер телефону, Дата розмови, Код міста, Тривалість розмови, Вартість. Ðèñ. 1.1. Êíèãà ðåãèñòðàöèè ìåæäóãîðîäíèõ ðàçãîâîðîâ ÇÀÌÅ×ÀÍÈÅ У реляційних базах даних поля можуть мати різні типи даних (числовий, рядковий, типу дати тощо), але для кожного запису тип даних поля залишається незмінним. Однією з важливих переваг бази даних є швидка вибірка інформації, що зберігається в ній. Використовуючи телефонно-адресну книгу, в якій дані впорядковані на прізвища, ви можете знайти номер телефону на прізвище його власника. Однак якщо записи в книзі реєстрації міжміських розмов упорядковані в хронологічному порядку, вам доведеться витратити значний час на отримання списку клієнтів, які замовляли розмову з певним містом, або на з'ясування того, в якому районі проживають абоненти, які приносять телефонної компанії своїми тривалими розмовами На допомогу приходять комп'ютерні бази даних. Вони, незважаючи на величезний обсяг інформації, що зберігається в них, забезпечують високу швидкість пошуку необхідної інформації. У таких базах даних користувач може виконати пошук за будь-яким параметром, що його цікавить. Крім того, комп'ютерні бази даних дуже компактні. База даних, що містить кілька тисяч записів, може розміститися на одній дискеті. Для створення бази даних, зміни її структури, редагування та вибірки даних використовуються системи управління базами даних. Сучасні реляційні системи управління базами даних містять: набір інструментів створення таблиць і відносин між пов'язаними таблицями; засоби адміністрування бази даних; розвинений інтерфейс користувача, який дозволяє отримати доступ до інформації, що зберігається в базі даних; засоби розробки додатків, які використовують бази даних. На рис. 1.2 показаний приклад обліку міжміських телефонних розмов за допомогою двох таблиць реляційної бази даних Visual FoxPro. Ðèñ. 1.2. Ó÷åò ìåæäóãîðîäíèõ òåëåôîíííõ ðàçãîâîðîâ ñ ïîìîùüþ ðåëÿöèîíííõ òàáëèö Ãëàâà 1 8 Ðèñ. 1.3. Îò÷åò â òàáëè÷íîì âèäå, ñîäåðæàùèé èíôîðìàöèþ î êëèåíòàõ òåëåôîííîé êîìïàíèè Ðèñ. 1.4. Èíôîðìàöèîííîå ïèñüìî, èñïîëüçóþùåå ñâåäåíèÿ èç áàçû äàííûõ Çíàêîìñòâî ñ Visual FoxPro 9 Ðèñ. 1.5. Ãðàôè÷åñêîå ïðåäñòàâëåíèå èíôîðìàöèè î êîëè÷åñòâå ìåæäóãîðîäíèõ ïåðåãîâîðîâ ïî êëèåíòàì За допомогою засобів СУБД ви можете: За допомогою засобів СУБД ви можете: Наприклад, ви можете отримати відомості про всі міжміські розмови певного клієнта за будь-який проміжок часу; вивести на друк всю таблицю або лише вибрані записи та поля у різних форматах. Наприклад, на рис. 1.3 показаний табличний звіт, який містить адреси клієнтів телефонної компанії. На рис. 1.4 наведено один із варіантів інформаційного листа, що містить імена та прізвища клієнтів з тієї ж самої таблиці; відображати інформацію бази даних у графічному вигляді. Наприклад, на рис. 1.5 виведено у вигляді діаграми дані про кількість міжміських переговорів щодо клієнтів; здійснювати необхідні обчислення для формування звітів та вибірці даних з таблиць. В даний час є більш ніж десять популярних СУБД для персональних комп'ютерів. Традиційно однією з найпоширеніших у Росії та країнах СНД є СУБД Visual FoxPro, нова версія якої Visual FoxPro 9.0 містить доповнення та покращення, що розширюють можливості системи. 10 Ãëàâà 1 Îáúåêòû Visual FoxPro Visual FoxPro складається з окремих компонентів, які використовуються для зберігання інформації, її відображення та редагування. У Visual FoxPro вся інформація зберігається в базі даних, яка складається з таблиць, відносин між таблицями, індексів, тригерів і процедур, що зберігаються. Кожна таблиця має унікальне ім'я та зберігається у окремому файлі, найменування якого збігається з ім'ям таблиці. Створений файл має розширення DBF. Кожна створювана таблиця може мати пов'язані з нею індекси, що використовуються для впорядкування даних та швидкого пошуку необхідних записів, причому одна таблиця може мати кілька індексів. Для зберігання значень полів типу Memo та General застосовуються окремі файли. Memo-поля таблиць містять текстову інформацію, а поля типу General використовуються, як правило, для зберігання двійкової інформації та інших програм, що працюють у середовищі Windows. У Visual FoxPro реалізовані тригери, які дозволяють централізовано обробляти події, що виникають за будь-яких змін у базі даних. Ви також можете створювати збережені процедури, які є частиною бази даних і можуть використовуватися при описі таблиць, для перевірки введених даних, визначення за промовчанням і т. п. Надзвичайно зручним і корисним засобом доступу до бази даних є представлення даних. Подання даних дозволяють об'єднувати дані таблиць і відображати їх у зручнішому вигляді. Ви можете вибрати тільки поля таблиць, що цікавлять вас, об'єднати кілька полів в одне поле, обчислити підсумкові значення і задати нові імена полів таблиці. Як правило, кількість уявлень у базі даних набагато перевищує кількість таблиць. У міру експлуатації бази даних їхня кількість безперервно зростає. У багатьох інформаційних системах доступ до даних, включаючи перегляд, додавання та редагування, здійснюється лише за допомогою уявлень даних. Цей підхід дозволяє здійснити гнучке управління доступом до інформації. При використанні подань для вибірки даних у формах, звітах, при створенні запитів і програм застосовуються ті ж правила, що і для таблиць. Редагування даних, включених до подання, можливе лише за певних умов. Наприклад, якщо воно створено на основі тільки однієї таблиці. Для відображення та редагування даних використовуються форми, звіти, запити та програми. При створенні форм, звітів та запитів застосовуються конструктори. Тому ці компоненти часто називають конструкторськими об'єктами. Форми та звіти є складовими об'єктами, тому що вони складаються з дрібніших об'єктів (таких як поля, кнопки, діаграми, рамки, OLE-компоненти тощо). п.), які називаються об'єктами інтерфейсу. Форми використовуються для перегляду чи введення даних у таблиці. Дані можна вводити безпосередньо в таблиці, але використання форми є швидшим та ефективнішим способом введення. Форма містить деякі або всі поля таблиць, які ви вводите інформацію. Для створення форм можна використовувати майстер створення форм або конструктор форм. Майстер форм містить цілу низку шаблонів, які визначають співвідношення між особами, що відображаються у формі таблиці, вид відображення даних і порядок розміщення полів. Для створення складних форм застосовується конструктор форм. Звіти використовуються для друку інформації, що міститься в базі даних. Прикладами звітів є прайс-лист товарів, список покупців, складська відомість. Зазвичай, звіти створюються у разі, якщо інформацію необхідно передавати комусь у друкованому вигляді. Для створення звітів у Visual FoxPro, як і форм, використовуються майстер і конструктор звітів. За допомогою майстра звітів можна швидко створити власний звіт на основі наявних шаблонів. Застосування конструктора звітів дозволяє створювати звіти довільної складності, включаючи багаторівневе угруповання даних та розміщення обчислюваних полів. Запити є засобом вибірки даних із однієї або декількох таблиць. У Visual FoxPro для створення запиту можна використовувати як конструктор запитів, так і спеціалізовану мову Structured Query Language (SQL). Результати виконання запиту можуть відображатися у формі, виводитися у вигляді звітів та діаграм або зберігатися у вказаній таблиці. Програми, написані мовою Visual FoxPro, є объектноориентированными. За допомогою них ви обробляєте події у формі, створюєте об'єкти, здійснюєте різні обчислення, керуєте базою даних. Для зручності роботи ви можете поєднати програми в бібліотеки. Для створення форм Visual FoxPro можна використовувати не тільки базові класи, але і створювати власні. Наприклад, ви можете визначити клас форм, в якому встановлено певний колір фону і стандартний набір кнопок для управління даними. Щоб стандартизувати розробку, корисно мати один або кілька класів для кожного базового класу. Класи, створені у Visual FoxPro, зберігаються у бібліотеках класів. Для об'єднання компонентів створюваного додатка використовується проект, куди включаються всі перелічені вище компоненти. Використання проекту спрощує розробку програми та її супровід. Кожен компонент зберігається в окремому файлі, причому імена файлів, що містять основні компоненти, ви задаєте самостійно, а назви файлів, що містять об'єкти, пов'язані з таблицею, збігаються з ім'ям таблиці. Залежно від типу об'єкта Visual FoxPro, що міститься в ньому, автоматично присвоює кожному файлу розширення, яке допомагає в ідентифікації об'єкта. Список розширень файлів наведено у табл. 1.1. Òàáëèöà 1.1. Ðàñøèðåíèÿ èìåí ôàéëîâ îáúåêòîâ Visual FoxPro Íàèìåíîâàíèå îáúåêòà Ðàñøèðåíèÿ Ïðîåêò prj, fpc, cat, pjx, pjt Áàçà îñòàâíîé èíäåêñíûé ôàéë cdx Memo-ïîëå è ïîëå òèïà General frt Ãëàâà 1 12 Òàáëèöà 1.1 (îêîí÷àíèå) Íàèìåííà Ðàñøèðåíèÿ Ôîðìà scx Çàïðîñ qpr Îò÷åò frx, frm Ïî÷òîâàÿ íàêëåéêà lbx, lbl Ìåíþ mnx Áèáëèîòåêà êëàñàà ðàìì, òåêñò ìåíþ, prg, fxp, mpr, qpr òåêñò çàïðîñà Ðèñóíîê bmp, jpg, gif, ico, dib , cur, ani Çâóêîçàïèñü wav ×òî íîâîãî ïîÿâèëîñü Visual FoxPro 9.0 Visual FoxPro є постійно розвивається. У порівнянні з попередньою версією, у Visual FoxPro 9.0 зроблено ще один крок у розширенні функціональних можливостей системи, покращено наявні засоби, що стосуються інтерфейсу середовища розробки та обробки помилок, додані нові команди, базові класи та функції та розширені наявні. Нова версія має всі можливості для роботи з XML Web-сервісами, а також покращеною сумісністю з Microsoft Visual Studio.NET і Microsoft SQL Server 2000. У Visual FoxPro розширено кошти конструктора таблиці. Для полів таблиць можна використовувати нові типи даних: двійковий Blob та текстовий Varbinary. Тип даних Blob використовується для структур, що містять інформацію про блок даних. Застосовується для зберігання двійкової інформації будь-якого типу, наприклад, символів ASCII, файлів, що виконуються, потоків байтів. Тип даних Varbinary містить шістнадцяткові значення. Він аналогічний типу Character, але даних цього типу немає заповнення вільних місць незначною інформацією. З'явився новий тип індексу Binary (Двійковий), що створюється на основі логічних виразів і використовується як для вільних таблиць, так і таблиць, що входять до бази даних. Цей індекс займає значно менше місця і завдяки цьому дозволяє збільшити швидкість використання індексів. У об'єктів, які у формі, з'явилися нові властивості. Розглянемо найцікавіші. Властивість Anchor (Закріплювати) встановлює абсолютні та відносні позиції та розміри об'єкта щодо всіх чотирьох сторін об'єкта-контейнера, вирішуючи проблему автоматичного позиціонування та зміни розмірів об'єктів на формі при зміні її розмірів у разі виникнення події Resize (Змінювати розміри). Çíàêîìñòâî ñ Visual FoxPro 13 Властивість Rotation (Обертання) об'єктів типу Label, Line і Shape дозволяє виводити підписи до великих об'єктів класу EditBox у вигляді тексту, що йде знизу вгору. Властивість AutoComplection (Автокомплектація) об'єкта TextBox дозволяє запам'ятовувати значення, що вводяться в поле, і при введенні нового значення показувати цей список для полегшення введення. Цю властивість зручно використовувати під час введення даних у поле, значення якого мають невеликий набір варіантів. Властивість AutoHideScrollBar (Автоматично приховувати смугу прокручування) об'єкта ListBox дозволяє приховувати смугу прокручування, коли всі рядки видимі, і знову її відображати, коли не всі рядки розміщуються в ListBox. Властивості PictureMargin (Кордон зображення) та PictureSpacing (Зміщення зображення) у об'єктів CommandButton, OptionButton та CheckBox керують положенням зображення щодо краю та тексту об'єкта. Властивість MousePointer (Покажчик миші) для стовпців (об'єкт Column) та заголовків (об'єкт Header) об'єкта Grid на етапі редагування класу або форми встановлює необхідний вид покажчика миші при попаданні в поле даного об'єкта. У команди SET PATH TO з'явилася властивість ADDITIVE (Додавання), яка дозволяє додавати нові шляхи до існуючих, а довжина всіх шляхів збільшилася з 1024 до 4096. У Project Manager (Менеджер проектів) з'явилася можливість виконувати команду Modify (Модифікувати) при виборі бібліотеки класів а чи не окремого класу цієї бібліотеки. Visual FoxPro 9.0 запускає Class Browser з обраною бібліотекою класів. Розробників порадують зміни, які відбулися у конструкторі звітів. Налаштування всіх об'єктів (розташування об'єкта у смузі звіту, стиль оформлення, умови друку, захист від зміни), що розміщуються у звіті, здійснюється за допомогою діалогового вікна властивостей. Усі параметри самого звіту (розмітка сторінки, додавання до звіту областей заголовка та підсумків, групування даних, завдання змінних звіту, збереження звіту у вигляді класу) також задаються за допомогою діалогового вікна Report Properties (Властивості звіту). Зміни торкнулися властивостей і методи. При створенні нових властивостей та методів їм можна надавати значення за замовчуванням/початкове значення. Розширені можливості налаштування Visual FoxPro, що здійснюється з діалогового вікна Options (Параметри), яке відкривається командою Options (Параметри) з меню Tools (Сервіс). Збільшено список груп файлів, які задаються вкладкою File Locations (Розташування файлів). На вкладці View (Вид) з'явився лічильник List display count (Кількість елементів у списку), що дозволяє задати максимальну кількість елементів списку, що відображаються під час використання IntelliSense. Значно розширено набір параметрів, що задається на вкладці Reports (Звіти). 14 Ãëàâà 1 Ãëàâà 2 Íà÷àëî ðàáîòû ñ Visual FoxPro Ви приступаєте до роботи з Visual FoxPro 9.0. Багато з того, з чим вам доведеться працювати (меню, панелі інструментів, діалогові вікна), здадуться знайомими, тому що вони характерні для середовища Windows. Çàïóñê Visual FoxPro Для запуску програми з головного меню Windows виконайте такі дії: 1. Натисніть кнопку Пуск, розташовану в нижній частині екрана. 2. У головному меню Windows, яке відкрилося, виберіть команду Програми. З'явиться меню цієї команди. 3. Виберіть у меню Microsoft Visual FoxPro 9.0. На екрані з'явиться головне вікно Visual FoxPro 9.0 (рис. 2.1). ПОРАДА Для швидкого запуску Visual FoxPro 9.0 можна створити на робочому столі ярлик і призначити йому клавіші швидкого виклику. Тоді достатньо буде в будь-якому вікні Windows натиснути цю комбінацію клавіш, і програма запуститься. Крім того, для зручності запуску програми можна використовувати панель Швидкий запуск Windows, помістивши на неї піктограму Visual FoxPro. Ãëàâíîå îêíî Visual FoxPro На рис. 2.1 показано головне вікно Visual FoxPro, яким виглядає після запуску програми. У ньому можна виділити сім основних об'єктів: заголовок вікна, рядок меню, панель інструментів, рядок стану, робоча область, командне вікно Command (Команда) та діалогове вікно Task Pane Manager (Менеджер панелі завдань). Заголовок знаходиться у верхній частині головного вікна і містить три об'єкти: копію піктограми програми Visual FoxPro, заголовок головного вікна та піктограми керування цим вікном. Рядок меню містить ієрархічне меню Visual FoxPro. Список пунктів меню залежить від типу активного вікна. 16 Ãëàâà 2 Ðèñ. 2.1. Ãëàâíîå îêíî Visual FoxPro 9.0 Visual FoxPro надає у розпорядження користувача багато найрізноманітніших панелей інструментів для роботи з базами даних, формами, звітами та запитами. Ці панелі інструментів містять набір кнопок, і цей набір залежить від призначення конкретної панелі інструментів. Після запуску Visual FoxPro на екрані з'явиться стандартна панель інструментів. У нижній частині головного вікна розташований рядок стану, в якому виводиться інформація про поточний стан активного вікна, короткий опис вибраної кнопки панелі інструментів або пункту меню. Вигляд відображуваної у рядку стану інформації залежить від типу активного вікна. Наприклад, у вікні конструктора форм у рядку стану виводиться найменування активного об'єкта форми, а під час перегляду таблиці у режимі Browse (Перегляд) у лівій частині рядка стану відображається найменування відкритої таблиці, у середині рядка стану - номер поточного запису та індикатор режиму роботи. У Visual FoxPro 9.0 у головному вікні за промовчанням відображається Task Pane Manager (Менеджер панелі завдань). Він містить список проектів та баз даних, що відкривалися останнім часом, команди запуску довідкової системи та майстрів зі створення бази даних та проекту, приклади, які можна використовувати у розробці, корисні посилання на сайти в Інтернеті. Íà÷àëî ðàáîòè ñ Visual FoxPro 17 У процесі роботи в головному вікні Visual FoxPro відкриваються вікна конструкторів форм, звітів, запитів, проекту та інші вікна. Всі вони є дочірніми по відношенню до головного вікна і закриваються під час його закриття. Крім того, якщо при виході з Visual FoxPro ви не закрили вікно проекту, з яким працювали, воно відкриється за замовчуванням у головному вікні під час наступного запуску програми. Ñèñòåìííå ìåíþ è ñèñòåìííå êíîïêè Заголовок головного вікна містить зменшену копію значка програми, текст "Microsoft Visual FoxPro" і кнопки керування розмірами головного вікна. При натисканні на значку піктограми відкривається системне меню, що містить команди переміщення та зміни розмірів головного вікна. У табл. 2.1 наведено команди, доступні із системного меню. Òàáëèöà 2.1. Íàçíà÷åíèå êîìàíä ñèñòåìíîãî ìåíþ Êîìàíäà Íàçíà÷åíèå Âîññòàíîâèòü Âîññòàíàâëèà çàè èëè ìàêñèìèçàöèè Ïåðåìåñòèò Àêòèâèçèðòåò ãëàâíîå îêíî Visual FoxPro è ïîçâîëÿåò ïåðåìåòàòà çàíà çìåð Àêòèâèçèðòåò ãëàâíîå îêíî Visual FoxPro è ïîçâîëÿåò èçìåíÿòü åãî ðàçìåðè ñ ïîìîùüþ êëàâèø ïåðåìåðèñ Ñâåðíóòü Ñâåðòûâàåò ãëàâíîå îêíî FoxPro äî ðàçìåðà êíîïêè è ïîìåùàåò åå íà ïàíåëü çàäà÷ Windows Ðàçâåðíàòà xPro âî âåñü ýêðàí Çàêðûòü Çàêðûâàåò ãëàâíîå îêíî ïðîãðàìì Visual FoxPro РАДА Для швидкого закриття програми Visual FoxPro двічі клацніть на зменшеній копії значка програми в заголовку головного вікна . Щоб швидко відновити/розгорнути головне вікно, двічі клацніть по панелі заголовка. Текст Microsoft Visual FoxPro заголовка головного вікна у разі потреби можна легко змінити, надавши головному вікну Visual FoxPro будь-яку іншу назву або видаливши назву взагалі. Для цього введіть у командному вікні наступну команду: MODIFY WINDOW SCREEN TITLE "Новий заголовок головного вікна""
или
_SCREEN.caption = "Новый заголовок главного окна"
В правой стороне заголовка расположены кнопки управления окном. Их назначение
описано в табл. 2.2.
18
Ãëàâà 2
Òàáëèöà 2.2. Íàçíà÷åíèå êíîïîê óïðàâëåíèÿ îêíîì
Êíîïêà
Íàçâàíèå
Íàçíà÷åíèå
Ñâåðíóòü
Ñâîðà÷èâàåò ãëàâíîå îêíî FoxPro äî ðàçìåðà êíîïêè è ïîìåùàåò åå íà ïàíåëü çàäà÷ Windows
Âîññòàíîâèòü
îáðàòíî
Óìåíüøàåò ðàçìåð ðàçâåðíóòîãî îêíà, ïîçâîëÿÿ â äàëüíåéøåì èçìåíÿòü åãî
Ðàçâåðíóòü
Ðàçâåðòûâàåò ãëàâíîå îêíî Visual FoxPro âî âåñü ýêðàí
Çàêðûòü
Çàêðûâàåò ãëàâíîå îêíî Visual FoxPro, òåì ñàìûì ïðåêðàùàÿ
ðàáîòó ïðîãðàììû
Çíàêîìñòâî ñî ñòàíäàðòíîé ïàíåëüþ
èíñòðóìåíòîâ Visual FoxPro
В Visual FoxPro имеется большое количество панелей инструментов, используемых
при создании форм, отчетов и запросов. Подробно они будут рассмотрены в соответствующих главах. Сначала изучим стандартную панель инструментов (рис. 2.2),
которая используется во всех режимах работы.
Ðèñ. 2.2. Ñòàíäàðòíàÿ ïàíåëü èíñòðóìåíòîâ Visual FoxPro
Назначение кнопок стандартной панели инструментов описано в табл. 2.3.
Òàáëèöà 2.3. Íàçíà÷åíèå êíîïîê ñòàíäàðòíîé ïàíåëè èíñòðóìåíòîâ
Êíîïêà
Íàçâàíèå
Íàçíà÷åíèå
New (Íîâûé)
Ïîçâîëÿåò ñîçäàòü íîâûé ôàéë (ïðîåêò, áàçó äàííûõ,
òàáëèöó, çàïðîñ, ôîðìó, îò÷åò, êëàññ)
Open (Îòêðûòü)
Îòêðûâàåò ñóùåñòâóþùèé ôàéë
Save (Ñîõðàíèòü)
Ñîõðàíÿåò îòêðûòûé ôàéë
Print One Copy
(Ïå÷àòàòü îäíó êîïèþ)
Ïå÷àòàåò ñîäåðæèìîå àêòèâíîãî îêíà
Print Preview
(Ïðîñìîòð ïå÷àòè)
Îòêðûâàåò îêíî ïðåäâàðèòåëüíîãî ïðîñìîòðà ïå÷àòàåìîãî äîêóìåíòà
Cut (Âûðåçàòü)
Óäàëÿåò âûäåëåííûé òåêñò èëè âûäåëåííûå îáúåêòû è
ïîìåùàåò èõ â áóôåð
Copy (Êîïèðîâàòü)
Êîïèðóåò â áóôåð âûäåëåííûé òåêñò èëè âûäåëåííûå
îáúåêòû, íå óäàëÿÿ èõ
Paste (Âñòàâèòü)
Âñòàâëÿåò ñîäåðæèìîå áóôåðà. Äåéñòâèå ýòîé êíîïêè
çàâèñèò îò òîãî, â êàêîì èç ðåæèìîâ âû ðàáîòàåòå
Íà÷àëî ðàáîòû ñ Visual FoxPro
19
Òàáëèöà 2.3 (îêîí÷àíèå)
Êíîïêà
Íàçâàíèå
Íàçíà÷åíèå
Undo (Îòìåíèòü)
Îòìåíÿåò âûïîëíåííûå äåéñòâèÿ
Redo (Âîññòàíîâèòü)
Âîññòàíàâëèâàåò îòìåíåííûå äåéñòâèÿ
Run (Âûïîëíèòü)
Çàïóñêàåò íà âûïîëíåíèå
Modify Form
(Ìîäèôèöèðîâàòü ôîðìó)
Ïîçâîëÿåò ìîäèôèöèðîâàòü SÑX-ôàéë, ñâÿçàííûé
ñ äàííîé ôîðìîé
Databases
(Áàçû äàííûõ)
Ñîäåðæèò ñïèñîê îòêðûòûõ áàç äàííûõ
Command Window
(Êîìàíäíîå îêíî)
Îòêðûâàåò êîìàíäíîå îêíî
Data Session Window
(Îêíî ñåàíñà äàííûõ)
Îòêðûâàåò îêíî Data Session
Properties Window
(Îêíî ñâîéñòâ)
Îòêðûâàåò îêíî Properties (Ñâîéñòâà), èñïîëüçóåìîå äëÿ íàñòðîéêè ñâîéñòâ
Document View Window
(Îêíî ïðîñìîòðà
äîêóìåíòà)
Îòêðûâàåò îêíî Document View (Ïðîñìîòð äîêóìåíòà), â êîòîðîì îòîáðàæàåòñÿ ñïèñîê ïðîöåäóð,
ôóíêöèé îòêðûòîé â îêíå ðåäàêòîðà ïðîãðàììû
Class Browser
(Îáçîð êëàññîâ)
Îòêðûâàåò îêíî Class Browser (Îáçîð êëàññîâ),
ïðåäíàçíà÷åííîå äëÿ ðàáîòû ñ êëàññàìè
Object Browser
(Îáçîð îáúåêòîâ)
Îòêðûâàåò îêíî Object Browser (Îáçîð îáúåêòîâ),
ïîçâîëÿþùåå ïðîñìàòðèâàòü êëàññû, ñâîéñòâà,
ìåòîäû, ñîáûòèÿ è êîíñòàíòû âûáðàííûõ áèáëèîòåê
Task Pane (Ïàíåëü çàäà÷)
Îòêðûâàåò îêíî Task Pane Manager (Ìåíåäæåð
ïàíåëè çàäà÷)
Toolbox (Èíñòðóìåíòàðèé) Îòêðûâàåò îêíî Toolbox (Èíñòðóìåíòàðèé), ñîäåðæàùåå ýëåìåíòû, êîòîðûå èñïîëüçîâàëèñü
ðàçðàáîò÷èêîì ïðè ñîçäàíèè ïðèëîæåíèÿ
ЗАМЕЧАНИЕ
Если по внешнему виду кнопки вы не можете определить ее назначение, установите указатель мыши на кнопку. При этом под курсором появится всплывающая подсказка с ее наименованием, а в левой части строки состояния будет выведено краткое описание указанной
кнопки.
По умолчанию в главном окне программы Visual FoxPro всегда присутствует стандартная панель инструментов. Если она не отображается на экране, выполните следующие действия:
1. Выберите в меню View (Вид) команду Toolbars (Панели инструментов). Откроется
диалоговое окно Toolbars (рис. 2.3), в котором расположен список всех панелей
инструментов программы Visual FoxPro.
20
Ãëàâà 2
2. Установите флажки слева от наименований тех панелей, которые необходимо
разместить в главном окне.
3. Нажмите кнопку OK.
Используя флажки, расположенные в нижней части диалогового окна Toolbars (Панели инструментов), можно изменить вид кнопок панелей инструментов. Назначение этих флажков описано в табл. 2.4.
Òàáëèöà 2.4. Íàçíà÷åíèå ôëàæêîâ äèàëîãîâîãî îêíà Toolbars
Óñòàíîâêà ôëàæêà
Íàçíà÷åíèå
Color buttons (Öâåòíûå êíîïêè)
Êíîïêè íà ïàíåëè èíñòðóìåíòîâ ñòàíîâÿòñÿ öâåòíûìè
Large buttons (Áîëüøèå êíîïêè)
Óâåëè÷èâàåòñÿ ðàçìåð êíîïîê
ToolTips (Ïîäñêàçêà)
Âûâîäèòñÿ êðàòêîå îïèñàíèå êíîïêè ïðè óñòàíîâêå êóðñîðà íà íåå
Ðèñ. 2.3. Äèàëîãîâîå îêíî Toolbars
После установки Visual FoxPro стандартная панель инструментов размещается
в верхней части главного окна, но она, как и все остальные панели инструментов, может перемещаться в любое место экрана. Для этого нужно установить курсор
мыши в любое свободное от кнопок место на панели инструментов, нажать кнопку мыши и, не отпуская ее, переместить панель на новое место. Если поместить
панель инструментов не по краю главного окна Visual FoxPro, то можно изменять ее
размер (рис. 2.4).
Íà÷àëî ðàáîòû ñ Visual FoxPro
21
Ðèñ. 2.4. Ïàíåëü èíñòðóìåíòîâ ìîæíî ðàñïîëîæèòü
â ëþáîì ìåñòå ãëàâíîãî îêíà
Êðàòêèé îáçîð ìåíþ Visual FoxPro
При работе с Visual FoxPro можно использовать как кнопки панели инструментов,
так и строку меню, все команды которого являются иерархическими. При выборе
определенной команды открывается ее подменю.
При отсутствии в главном окне Visual FoxPro других открытых окон, строка меню
содержит пункты File (Файл), Edit (Правка), View (Вид), Tools (Инструменты),
Program (Программа), Window (Окно) и Help (Справка). При открытии окон в меню
добавляются команды, применимые только к объектам данного окна. Например,
при работе с таблицами в главное меню добавляется пункт меню Table (Таблица),
при открытии на экране формы в меню появляется пункт Form (Форма).
ЗАМЕЧАНИЕ
При выборе команды в строке состояния появляется ее краткое описание.
22
Ãëàâà 2
Âûïîëíåíèå êîìàíä ìåíþ
Выполнение команд меню в Visual FoxPro осуществляется стандартными для Windows
действиями. Перечислим возможные способы.
При использовании мыши достаточно установить курсор на пункт меню, содержащий выбираемую команду, и нажать кнопку мыши. Если команда содержит
подменю, следует выбрать в нем требуемую команду.
При использовании клавиатуры сначала нужно активизировать строку меню нажатием клавиши !}
Глава 2. Початок роботи з Visual FoxPro
Ви приступаєте до роботи з Visual FoxPro 7.0. Багато з того, з чим вам доведеться працювати (меню, панелі інструментів, діалогові вікна), здадуться знайомими, тому що вони характерні для середовища Windows.
Щоб запустити програму з головного меню Windows, виконайте такі дії:
- Натисніть кнопку Пуск у нижній частині екрана.
- У головному меню Windows, що відкрилося, виберіть команду Програми. З'явиться меню цієї команди.
- Виберіть у меню команду Microsoft Visual FoxPro 7.0 (рис. 2.1). На екрані з'явиться головне вікно Visual FoxPro 7.0 (рис. 2.2).
Для більш швидкого запуску Visual FoxPro 7.0 можна створити на робочому столі ярлик і призначити йому клавіші швидкого виклику. Тоді вам достатньо натиснути задану комбінацію клавіш, в якому вікні Windows ви не знаходилися б, і програма запуститься. Крім того, для зручності запуску програми можна використовувати панель Швидкий запуск системи Windows (див. мал. 2.1), помістивши на неї піктограму Visual FoxPro.
На рис. 2.2 показано головне вікно Visual FoxPro, яким виглядає після запуску програми.
У ньому можна виділити шість основних областей: заголовок вікна, рядок меню, панель інструментів, рядок стану, робоча область та командне вікно Command (Команда).
Заголовок знаходиться у верхній частині головного вікна і містить три об'єкти: копію піктограми програми Visual FoxPro, заголовок головного вікна та піктограми керування цим вікном.
Рис.2.1. Запуск Microsoft Visual FoxPro 7.0 із головного меню Windows
Мал. 2.2. Головне вікно Visual FoxPro 7.0
Рядок меню містить ієрархічне меню Visual FoxPro. Список пунктів меню залежить від типу активного вікна.
Visual FoxPro надає у розпорядження користувача багато різноманітних панелей інструментів для роботи з базами даних, формами, звітами та запитами. Ці панелі інструментів містять набір кнопок, і цей набір залежить від призначення конкретної панелі інструментів. Після запуску Visual FoxPro на екрані з'явиться стандартна панель інструментів.
У нижній частині головного вікна розташований рядок стану, в якому виводиться інформація про поточний стан активного вікна, короткий опис вибраної кнопки панелі інструментів або пункту меню. Вигляд відображуваної у рядку стану інформації залежить від типу активного вікна. Наприклад, у вікні конструктора форм у рядку стану виводиться найменування активного об'єкта форми, а під час перегляду таблиці у режимі Browse (Огляд таблиці) у лівій частині рядка стану відображається найменування відкритої таблиці, у середині рядка стану - номер поточного запису та індикатор режиму роботи.
У процесі роботи у головному вікні Visual FoxPro відкриваються вікна конструкторів форм, звітів, запитів, проекту та інші вікна. Всі вони є дочірніми по відношенню до головного вікна і закриваються під час його закриття. Крім того, якщо при виході з Visual FoxPro ви не закрили вікно проекту, з яким працювали, воно відкриється за замовчуванням у головному вікні під час наступного запуску програми.
Заголовок головного вікна містить зменшену копію піктограми програми, текст Microsoft Visual FoxPro та кнопки керування розмірами головного вікна. При натисканні на значку піктограми відкривається системне меню, що містить команди переміщення та зміни розмірів головного вікна. У табл. 2.1 наведено команди, доступні із системного меню.
Таблиця 2.1. Призначення команд системного меню
Команда | Призначення |
Відновити | Відновлює попередній розмір вікна після мінімізації або максимізації |
Перемістити | Активізує головне вікно Visual FoxPro та дозволяє переміщати його за допомогою клавіш переміщення курсору |
Розмір | Активізує головне вікно Visual FoxPro і дозволяє змінювати його розміри за допомогою кнопок переміщення курсору |
Згорнути | Згортає головне вікно FoxPro до розміру кнопки і поміщаєте на панель завдань Windows |
Розгорнути | |
Закрити | Закриває головне вікно Visual FoxPro |
Порада
Для швидкого закриття Visual FoxPro двічі клацніть на зменшеній копії піктограми програми в заголовку головного вікна.
Текст Microsoft Visual FoxPro заголовка головного вікна, у разі потреби, можна легко змінити, надавши головному вікну Visual FoxPro будь-яку іншу назву або видаливши назву взагалі. Для цього введіть у командному вікні таку команду:
MODIFY WINDOW SCREEN TITLE "Новий заголовок головного вікна"" !}
Або
SCREEN.caption = "Новий заголовок головного вікна"
У правій стороні заголовка розташовані кнопки керування вікном. Їх призначення описано у табл. 2.2.
Таблиця 2.2. Призначення кнопок керування вікном
Назва | Призначення |
Згорнути | Згортає головне вікно FoxPro до розміру кнопки та поміщає її на панель завдань Windows |
Відновити | Зменшує розмір розгорнутого вікна, дозволяючи надалі змінювати його |
Розгорнути | Розгортає головне вікно Visual FoxPro на весь екран |
Закрити | Закриває головне вікно Visual FoxPro, тим самим припиняючи роботу програми |
Visual FoxPro має велику кількість панелей інструментів, які використовуються при створенні форм, звітів і запитів. Ми їх докладно розглянемо у відповідних розділах. Зараз ви познайомитеся зі стандартною панеллю інструментів (рис. 2.3), яка використовується у всіх режимах роботи.
Мал. 2.3. Стандартна панель інструментів Visuai FoxPro
Призначення кнопок стандартної панелі інструментів наведено в табл. 2.3.
Таблиця 2.3. Призначення кнопок стандартної панелі інструментів
Назва |
Призначення |
New (Новий) | Створює новий файл |
Open (Відкрити) | Відкриває наявний файл |
Save (Зберегти) | Зберігає відкритий файл |
Print One Copy (Друкувати одну копію) | Друкує вміст активного вікна |
Print Preview (Перегляд друку) | Відкриває вікно попереднього перегляду документа, що друкується. |
Cut (Вирізати) | Видаляє виділений текст або виділені об'єкти та поміщає їх у буфер |
Сору (Копіювати) | Копіює у буфер виділений текст чи виділені об'єкти, не видаляючи їх |
Paste (Вставити) | Вставляє вміст буфера. Дія цієї кнопки залежить від того, в якому з режимів виробите |
Undo (Скасувати) | Скасовує останню виконану дію |
Redo (Відновити) | Відновлює скасовані дії |
Run (Виконати) | Запускає виконання |
Database (База даних) | Містить список відкритих баз даних |
Command Window (Командне вікно) | Відкриває командне вікно |
Data Session Window (Вікно сеансаданих) | Відкриває вікно Data Session (Сеанс даних) |
Properties Window (Вікно властивостей) | Відкриває вікно Properties (Властивості) для налаштування властивостей. |
Document ViewWindows (Вікно перегляду документа) | Відкриває вікно Document View (Перегляд документа), де відображається список процедур, функцій відкритої у вікні редактора програми |
Class Browser (Огляд класів) | Відкриває вікно Class Browser (Огляд класів), призначене для роботи з класами |
Object Browser (Огляд об'єктів) | Відкриває вікно Object Browser (Огляд об'єктів), що дозволяє переглядати класи, властивості, методи, події та константи вибраних бібліотек |
Зауваження
Якщо на вигляд кнопки ви не можете визначити її призначення, встановіть курсор миші на кнопку. При цьому під курсором з'явиться підказка з її найменуванням, а в лівій частині рядка стану буде виведено короткий опис зазначеної кнопки.
За промовчанням у головному вікні Visual FoxPro завжди є стандартна панель інструментів, якщо ви не видалили її з екрана.Якщо вам потрібна панель інструментів, а вона не відображається на екрані, виконайте такі дії:
- Виберіть у меню View (Вигляд) команду Toolbars (Панелі інструментів). Відкриється діалогове вікно Toolbars (Панелі інструментів) (мал. 2.4), в якому розташований список усіх панелей інструментів Visual FoxPro.
- Встановіть прапорці ліворуч від найменувань тих панелей, які потрібно розмістити у головному вікні.
- Натисніть кнопку ОК.
Використовуючи прапорці, розташовані в нижній частині діалогового вікна Toolbars (Панелі інструментів), можна змінити вигляд кнопок панелей інструментів. Призначення цих прапорців описано у табл. 2.4.
Таблиця 2.4. Призначення прапорців діалогового вікна Toolbars
Мал. 2.4. Діалогове вікно Toolbars
Мал. 2.5. Панель інструментів можна розташувати будь-де головного вікна
Після встановлення Visual FoxPro стандартна панель інструментів розміщується у верхній частині головного вікна, але вона, як і решта панелі інструментів, може переміщатися в будь-яке місце екрану. Для цього встановіть курсор миші на будь-яке вільне від кнопок місце на панелі інструментів, натисніть кнопку миші і, не відпускаючи її, перемістіть панель на нове місце. Якщо ви помістите панель інструментів не по краях головного вікна Visual FoxPro, то зможете змінювати її розмір (рис. 2.5).
При роботі з Visual FoxPro можна використовувати як кнопки панелі інструментів, так і рядок меню, всі команди якого є ієрархічними. При виборі певної команди відкривається її підменю.
За відсутності у головному вікні Visual FoxPro інших відкритих вікон, рядок меню містить пункти virtual (Файл), Edit (Правка), View (Вигляд), Tools (Сервіс), Program (Програма), Windows (Вікна) та Help (Довідка). При відкритті вікон у меню додаються команди, які застосовуються лише до об'єктів цього вікна. Наприклад, під час роботи з таблицями до головного меню додається пункт меню Table (Таблиця), при відкритті на екрані форми у меню з'являється пункт Form (Форма).
Порада
При виборі команди у рядку стану з'являється її короткий опис.
Виконання команд меню
Виконання команд меню Visual FoxPro здійснюється стандартними для Windows діями. Ви можете використовувати як мишу, так і клавіатуру. Перелічимо можливі методи.
- При використанні миші встановіть курсор на пункт меню, що містить команду, і натисніть кнопку миші. Якщо команда містить підменю, виберіть потрібну команду.
- У разі використання клавіатури спочатку активізуйте рядок меню натисканням клавіші
або . Потім встановіть вказівник на потрібну команду за допомогою стрілок та натисніть . - Клавіша використовується для переміщення на команду, що знаходиться ліворуч від поточної. При натисканні на цю клавішу, коли поточна команда є лівою, ви переміститеся до системного меню. Подальше натискання на клавішу встановить покажчик на праву команду рядка меню. Інші клавіші використовуються аналогічно.
- Для команд, що найчастіше виконуються, ви можете запам'ятати пов'язані з ними "гарячі" клавіші, які складаються з комбінації символу
та підкреслений символ у імені команди. Під час використання "гарячих" клавіш не потрібно натискати клавішу .
Відмова від виконання команди меню
Якщо рядок меню активовано, але ви вирішили не виконувати команди меню, скористайтеся одним із таких способів.
- Натисніть клавішу
. - Клацніть мишею в будь-якому вільному місці основного вікна VisualFoxPro.
Якщо ви знаходитесь у підменю, натисніть клавішу, щоб повернутися в меню попереднього рівня.
Команди меню virtual
Меню Virtual (Файл) містить команди, пов'язані з доступом до файлів. Ці команди дозволяють створювати нові файли різних типів, відкривати існуючі файли, закривати, зберігати та друкувати їх.
Дуже зручна команда Revert (Повернути), що дозволяє скасувати зміни файлу, зроблені в поточному сеансі редагування.
У нижній частині меню розташовуються імена останніх чотирьох проектів, що відкриваються, які надають можливість швидкого відкриття будь-якого з них. Останньою командою цього меню є команда Exit (Вихід). Вона аналогічна дії команди QUIT (Вихід) у командному вікні та призначена для виходу з Visual FoxPro.
Команди меню Edit
Меню Edit (Правка) є у багатьох програмах Windows. У VisualFoxPro команди цього меню використовуються для створення форм і звітів, редагування програм.
Команди Paste Special (Спеціальна вставка), Insert Object (Вставити об'єкт), Object (Об'єкт) та Links (Зв'язки) застосовні лише до полів типу General та OLE-об'єктів. Інші команди застосовуються під час редагування як програм, і полів таблиць.
Незнайомою для вас за іншими програмами Windows може бути команда Go to Line (Перехід на рядок), призначена у Visual FoxPro для роботи з програмами. За допомогою цієї команди можна переходити до рядка із зазначеним номером у тексті програми.
При введенні імені об'єкта, властивості, команди або функції після введення символу, що активізує (як правило, точка, пробіл або дужка), команда List Members Visual FoxPro активує список допустимих значень (властивостей, методів, подій та об'єктів) для вказаного в редакторі об'єкта.
Остання в меню - команда Properties (Властивості), при виборі якої відкривається діалогове вікно Edit Properties (Редагування властивостей), що дозволяє задавати параметри збереження програмних файлів, переглядати їх властивості, дату останнього редагування та обсяг на диску.
Команди меню View
Пункт меню View (Вид) містить команди, які керують переглядом поточного відкритого файлу. Якщо ви не переглядаєте файл, меню містить всього одну команду Toolbars (Панелі інструментів). Ця команда відкриває діалогове вікно, в якому перелічені панелі інструментів, які використовуються під час роботи з Visual FoxPro.
При роботі в конструкторах у меню View (Вид) містяться команди, що управляють відображенням панелей інструментів, що використовуються в даному режимі роботи. Так, наприклад, при роботі в конструкторі форм у меню з'являються команди для вибору наступних панелей: Color Palette (Кольорова палітра), Layout (Розташування), Form Designer (Конструктор форм) та Form Controls (Елементи управління форми).
Під час перегляду таблиць або редагування форм, меню або звітів у меню з'являються додаткові команди. Наприклад, якщо ви працюєте з таблицями, у меню з'являється кілька нових команд. Команди Edit (Редагування) і Browse (Огляд) переводять таблицю в режим перегляду та редагування записів, що містяться в ній. Відмінність між цими двома командами полягає у стилі відображення вмісту таблиці.
Команди меню Format
Меню Format (Формат) містить команди, що керують характеристиками шрифту, вирівнюванням тексту та об'єктів, визначенням інтервалів між об'єктами. Однак під час роботи з різними конструкторами стають доступними і додаткові команди.
Команди меню Tools
Це меню містить майстри та засоби налагодження програм.
Першою меню Tools (Сервіс) розташовується команда Wizards (Майстра), що відкриває список майстрів Visual FoxPro. Майстер - це програма, яка допомагає користувачеві у вирішенні таких завдань, як створення форм, звітів, таблиць. Процес створення при цьому полягає у відповідях на питання майстра щодо об'єкта, що створюється.
Команда Debugger призначена для налагодження. Вона відкриває діалогове вікно Visual FoxPro Debugger, в якому ви можете переглянути значення змінних, елементів масиву, полів, значення, що повертаються функціями Visual FoxPro і т.д.
Команда Component Gallery (Галерея компонентів) відкриває вікно Catalogs -Component Gallery (Каталоги - галерея компонентів) для роботи у Галереї компонентів Visual FoxPro. Команда Coverage Provirtualr (Аналіз виконання) дозволяє переглянути інформацію про виконану програму. Run Active Document (Запуск активного документа) відкриває однойменне діалогове вікно для вибору активного документа та його запуску.
У Visual FoxPro 7.0 у меню Tools (Сервіс) з'явилися нові команди: ObjectBrowser (Огляд об'єктів), IntelHSense Manager (Менеджер IntelliSense), TaskList (Список завдань), Document View (Перегляд документа).
Команда Object Browser (Браузер об'єктів) відкриває однойменне вікно, що дозволяє переглядати класи, властивості, методи, події та константи вибраних бібліотек.
Команда IntelliSense Manager (Менеджер IntelliSense) відкриває вікно налаштування параметрів, що керують аналізом синтаксису програмних конструкцій, що вводяться у вікно редактора.
Команда Task List (Список завдань) дозволяє запам'ятати місце, у яке ви можете повернутися згодом, натиснувши оперативну клавішу. Крім того, ця команда дозволяє вводити список необхідних завдань, аналогічно Microsoft Outlook.
Команда Document View (Перегляд документа) відкриває діалогове вікно, в якому відображається список процедур, функцій та операторів для відкритої у вікні редактора програми. При виборі елемента списку здійснюється перехід до цього елемента у вікні редактора.
Остання команда меню Tools (Сервіс) - Options (Параметри). З її допомогою можна настроювати конфігурацію Visual FoxPro
Команди меню Program
Меню Program (Програма) містить команди, пов'язані з виконанням та компіляцією програм.
Команди меню Windows
У меню Windows (Вікна) є команди, які керують відкритими вікнами. За допомогою цих команд можна впорядковувати, приховувати, очищати вікна та переходити з одного вікна до іншого. Крім того, команди цього меню дозволяють активізувати будь-яке відкрите вікно.
Команда Command Window (Командне вікно) з меню Windows (Вікно) активізує командне вікно Command (Команда), що дозволяє використовувати команди під час роботи з Visual FoxPro.
Команда Properties Window (Вікно властивостей) відкриває діалогове вікно Properties (Властивості), що дозволяє переглянути та змінити властивості об'єктів, розташованих у формі курсорів та відносин.
Для відкриття вікна Data Session (Вікно даних), яке містить список всіх відкритих у даному сеансі таблиць та відносин між ними (рис. 2.6), використовується команда Data Session (Вікно даних).
Мал. 2.6. Вікно Data Session показує робочі області з відкритими таблицями та відносинами між ними
У центрі вікна Data Session (Вікно даних) знаходяться кнопки керування таблицями. Кнопка Properties (Властивості) відкриває вікно, яке дозволяє переглянути та змінити поточні властивості таблиці. Для відкриття таблиці у новій робочій області використовується кнопка Open (Відкрити). Кнопка Browse (Огляд таблиці) відкриває таблицю для перегляду записів, що містяться в ній. Кнопка Close (Закрити) вікна Data Session (Вікно даних) закриває таблицю в поточній робочій області, а кнопка Relations (Відносини) дозволяє визначити відносини між відкритими таблицями.
Команди меню Help
Help (Довідка) – останнє меню головного вікна. Табл. 2.5 містить список команд, доступних у цьому меню. Цей список зазнав деяких змін у Visual FoxPro 7.0 порівняно з попередньою версією програми.
Таблиця 2.5, Призначення команд меню Help
Команда меню | Призначення |
Microsoft Visual FoxProHelp (Довідкова системаVisual FoxPro) | Відкриває вікно довідкової системи Visual FoxPro 7.0 |
MSDN Search (Пошук у MSDN) | Шукає довідкову інформацію у MSDN |
Technical support (Технічна підтримка) | Відображає інформацію про технічну підтримку Microsoft |
Visual FoxPro on the Web (Visual FoxPro на Web-сторінках) | Відкриває веб-сторінку Microsoft Visual FoxPro. Для використання цієї команди необхідний доступ до Інтернету |
About Microsoft VisualFoxPro (0 програміMicrosoft Visual FoxPro) | Відкриває діалогове вікно About Microsoft Visual FoxPro, в якому міститься інформація про авторські права на програму, номер версії програми та її ідентисрикатор, ім'я файлу ресурсів і каталог, що використовується за замовчуванням. У цьому вікні можна також переглянути різноманітну інформацію про комп'ютер, ресурси системи |
Щоб завершити роботу з програмою Visual FoxPro, необхідно її закрити. Для цього скористайтеся одним із таких способів:
- виберіть у меню virtual (Файл) команду Exit (Вихід);
- виберіть команду Закрити у системному меню головного вікна VisualFoxPro;
- клацніть на значку Visual FoxPro у заголовку головного вікна;
- введіть у командному вікні команду QUIT.
Якщо ви не зберегли форму, звіт, запит або будь-який інший об'єкт програми, Visual FoxPro запропонує зберегти його. Для цього на екрані з'являється діалогове вікно, аналогічне представленому на рис. 2.7.
Мал. 2.7. Діалогове вікно, що з'являється під час спроби виходу з Visual FoxPro без збереження інформації
Щоб продовжити операцію, натисніть одну з кнопок (табл. 2.6).
Таблиця 2.6. Призначення кнопок діалогового вікна, що з'являється під час спроби виходу з Visual FoxPro без збереження інформації
При розробці програм у Visual FoxPro, як і в будь-якій іншій системі, неодноразово виникає необхідність перегляду можливостей засобів програмування, окремих команд та функцій. У Visual FoxPro, крім традиційної довідкової системи, ви можете знайти цікаву для вас інформацію у вбудованій документації, численних прикладах, а також на Web-сторінках. Всі ці засоби можна вибрати з меню Help (Довідка).
Подібно до більшості найпопулярніших програм, Visual FoxPro має контекстно-залежну довідкову систему, тобто ви можете отримати довідку щодо використання засобу, з яким працюєте зараз. Для цього можна скористатися одним із таких способів.
- У меню Help (Довідка) виберіть Microsoft Visual FoxPro Help (Довідкова система Visual FoxPro).
- Натисніть
у будь-який момент сеансу роботи з Visual FoxPro. Довідкова система вважає, що вас цікавить інформація про поточну операцію, і відповідно вибирає розділ довідника. - Деякі з діалогових вікон містять на панелі інструментів або у вікні кнопку Help (Довідка). Якщо кнопка Help(Довідка) була натиснута під час роботи в одному з них, Visual FoxPro повідомить про те, як користуватися цим діалоговим вікном (мал. 2,8).
Мал. 2.8. Довідкова система Visual FoxPro нагадує, як працювати з поточним діалоговим вікном.
На рис. 2.9 представлено вікно довідкової системи Visual FoxPro 7.0, що відкривається при виборі меню Help (Довідка) команди Microsoft VisualFoxPro Help (Довідкова система Visual FoxPro).
Це вікно поділено на дві області. У лівій області вікна довідкової системи розташовані чотири вкладки, на яких здійснюється пошук необхідної інформації. Права область вікна містить інформацію вибраного розділу.
За допомогою курсора можна керувати шириною областей вікна довідки. Для цього виконайте такі дії:
- Встановіть курсор на смугу розділення між областями.
- Коли курсор набуде вигляду двоспрямованої стрілки, натисніть ліву кнопку миші і, утримуючи її в натиснутому стані, переміщайте в ту чи іншу сторону залежно від того, яку область ви розширюєте.
- Після встановлення потрібного розміру області відпустіть кнопку миші.
Мал. 2.9. Вікно довідкової системи Microsoft Visual FoxPro 7.0
Вікно довідкової системи має власні меню та панель інструментів.
Ліва область вікна довідкової системи містить чотири вкладки, призначені для спрощення пошуку необхідної інформації (табл. 2.7).
Таблиця 2.7. Призначення вкладок для спрощення пошуку інформації
Розглянемо докладніше роботу із вкладками довідкової системи.
Першою вкладкою вікна довідкової системи є вкладка Зміст (див. рис. 2.9). Ця вкладка реалізує найтрадиційніший підхід до отримання довідкової інформації.
Коли ви вперше відкриваєте вкладку Зміст, бачите перелік розділів довідкової системи. Перед назвою кожного розділу відображається піктограма. Спочатку всі розділи закриті, чому відповідає піктограма закритої книги.
Щоб відкрити будь-який з розділів, встановіть курсор на розділ, що відкривається, і натисніть кнопку миші. В результаті значок набуде вигляду відкритої книги. Після повторного натискання кнопки миші на значку відкритої книги розділ закривається.
Відкритий розділ може містити підрозділи та теми (рис. 2.10). Тема відповідає значок, що має вигляд відкритої сторінки. Щоб вивести вміст певної теми у правій області вікна довідки, встановіть курсор на її назву або відповідний значок і натисніть кнопку миші.
Мал. 2.10. Переміщаючись по ієрархії на вкладці Зміст, можна знайти розділ із потрібною довідковою інформацією
Ви можете послідовно отримати довідку на декілька тем одного розділу, не вдаючись до кнопок довідкової системи, оскільки в тексті довідки є посилання, за якими може бути здійснений перехід.
Для пошуку довідки за предметним покажчиком відкрийте вкладку Покажчик(мал. 2. 11. ) вікна довідкової системи. У верхній частині вкладки розташоване поле, призначене для введення ключового слова, яким буде здійснюватися пошук. Нижче за ним знаходиться список ключових слів, впорядкований за абеткою.
У міру введення літер у полі введення в списку ключових слів з'являються розділи, перші літери назв яких збігаються з вже введеними літерами.
Мал. 2.11. Вкладка Вказівник для пошуку розділу за початковими літерами назви теми
Ви можете просто переглянути список ключових слів за допомогою смуги прокручування, виділити потрібний розділ, а потім натиснути кнопку Показати. У правій ділянці вікна з'явиться текст довідки.
Щоб знайти інформацію за допомогою вкладки Покажчик, введіть початкові літери теми, яку ви хочете знайти. Як приклад було введено properties (рис. 2.11). Якщо довідкова система виявить у списку назви тем, що починаються із зазначеної літери, вони будуть виділені кольором або підсвічені. Якщо умова пошуку задовольняє кілька тем, з'явиться вікно Знайдені розділи (мал. 2.12) зі списком розділів. Виберіть із цього списку потрібну тему та натисніть кнопку Показати. Інформація про вказану тему буде виведена у правій області вікна довідкової системи.
Мал. 2.12. Діалогове вікно Знайдені розділи
Для пошуку за ключовими словами та фразами використовується вкладка Пошук. У полі введення Шукати наступні слова введіть слово або фразу для пошуку. Якщо потрібно знайти фразу, ви повинні укласти її в одинарні або подвійні лапки. При пошуку можна також використовувати знаки "?" (для позначення одного довільного символу) та "*" (для позначення будь-якої кількості символів).
Крім того, для пошуку ви можете використовувати логічні вирази, складені зі слів, застосовуючи логічні оператори, наведені в табл. 2.8.
Таблиця 2.8. Логічні оператори, що використовуються при побудові виразів для пошуку
Оператор | Приклад виразу для пошуку | Результат |
AND | properties AND formабоproperties & form | Відображаються лише ті теми довідки, які містять обидва слова |
OR | properties OR formилиproperties | form | Відображаються теми довідки, які містять будь-яке з двох слів |
NEAR | properties NEAR form | Відображаються теми довідки, в яких перше слово знаходиться поруч із другим словом у межах восьми сусідніх слів |
NOT | properties NOT formилиproperties! form | Вибираються лише ті теми довідки, в яких міститься перше слово та не міститься слово, яке було розташовано після оператора NOT |
Побудувавши вираз для пошуку, натисніть кнопку Розділи. Розпочнеться пошук розділів, що містять заданий вираз, і на вкладці Пошук у таблиці Розділ з'явиться їхній список.
Таблиця Розділ складається із трьох стовпців. Стовпець Заголовок містить заголовки знайдених тем довідкової системи, стовпець місцезнаходження -інформацію про місцезнаходження теми довідки, а стовпець Ранг - частоту входження елемента пошуку.
Мал. 2.13. Пошук за ключовими словами
В остаточному списку тем будуть розташовані перші 500 тем довідок, що задовольняють задану умову пошуку. Щоб упорядкувати теми довідок таблиці Розділ можна використовувати заголовки стовпців таблиці. Для цього клацніть на заголовку стовпця, за яким хочете здійснити впорядкування.
Виберіть потрібну тему зі списку знайдених тем і натисніть кнопку Показати. У правій області вікна довідки буде виведено інформацію з цієї теми. У тексті теми довідки будуть виділені слова, задані для пошуку (рис. 2.13).
Для визначення параметрів пошуку на вкладці додані прапорці, під час встановлення яких користувачеві надаються додаткові можливості (табл. 2.9).
Таблиця 2.9. Призначення прапорців для визначення параметрів пошуку
Вкладка Обране (рис. 2.14) дозволяє сформувати список найчастіше використовуваних тем довідкової системи, вибір яких має здійснюватися досить просто.
За промовчанням ця вкладка порожня. Щоб додати тему довідки на вкладку Обране, вам необхідно виконати такі дії:
- Використовуючи інші вкладки вікна довідкової системи, знайдіть тему, назву якої хочете розташувати на цій вкладці.
- Відобразіть знайдену інформацію у правій області вікна довідки.
- Перейдіть на вкладку Обране. Назва теми, що переглядається, відображається в полі Поточний розділ цієї вкладки.
- Натисніть кнопку Додати. Найменування поточної теми довідкової системи буде додано до списку вибраних тем.
Аналогічно додайте в цю область всі необхідні розділи довідкової системи. Щоб видалити розділи з цієї вкладки, натисніть кнопку Видалити.
Мал. 2.14. Вкладка Уподобання
Довідкова система Visual FoxPro містить величезний обсяг інформації, яка потрібна на розробки додатків. Для отримання останніх новин про Visual FoxPro ви можете відкрити відповідну Web-сторінку безпосередньо з головного вікна Visual FoxPro. Використовуйте для цього команду Microsoft on the Web (Visual FoxPro на веб-сторінках) меню Help (Довідка).
Зауваження
Перегляд веб-сторінок неможливий, якщо ви не маєте доступу до Інтернету. Для отримання доступу необхідно встановити на комп'ютері модем і зареєструватися у місцевого Інтернет-провайдера.
На рис. 2.15 наведено сторінку новин Visual FoxPro, яку підтримує Microsoft. У лівій частині ви бачите зміст розділів, які ви знайдете на інших Web-сторінках, присвячених Visual FoxPro. Після клацання на назві розділу, що вас цікавить, почне завантажуватися Web-сторінка, що містить інформацію по даному розділу.
Мал. 2.15. Сторінка новин Visual FoxPro
Декілька слів про те, про що власне піде тут мова і для чого це все було написано. Дуже важко сформулювати це коротко, але я спробую.
Як правило, більшість книг з програмування є або переказом статей Help до мови, або набором коміксів на кшталт "натисніть цю кнопочку побачите таку картинку, тепер натисніть цю кнопочку...". Не можна сказати, що це погано чи не потрібно. Просто між двома цими крайнощами утворився провал, у якому й пропадає безліч новачків. Тому будь-яка книга, яка хоч якось його закриває, зазвичай користується підвищеним попитом.
Про який " провалі"Власне йде мова?"
Перший розрив - Це термінологія. Визначення різним термінам або взагалі не дається (мовляв і так все зрозуміло), або дається суворо наукове (тобто дуже хитромудре, краще б його і не давали). В результаті, читаючи подальші статті, вже зовсім незрозуміло про що власне йдеться.
Другий розрив - це коли і що найкраще застосовувати. Зазвичай виклад будується в такий спосіб: на вирішення завдання зробимо так, і ось так. Але не роблять навіть спроби пояснити, а чому власне не інакше, коли є інший спосіб? Як наслідок, коли новачок дізнається про те, що одне й те саме завдання можна вирішити навіть не двома, а трьома, чотирма і більше способами у нього в голові починається повна карусель. Кидає з однієї крайності до іншої.
Є ще одна проблема, пов'язана з попередніми двома. Зазвичай у FoxPro починають розбиратися люди, які вже спробували свої сили в програмуванні іншими мовами (найчастіше в Delphi або Basic, і навіть програмісти працювали раніше у FoxPro for DOS) і вони намагаються застосувати стиль програмування добре (або не дуже) їм відомої мови в Visual FoxPro і дуже дивуються зіштовхуючись з несподіваними (у сенсі - не очікуваними) проблемами: адже в керівництві написано, що це можна, а в мене не виходить! А проблема виявляється у самому стилі програмування. Деякі прийоми, що добре працюють у Delphi для FoxPro є просто непридатними.
Ось я і спробую заповнити цей "провал" і описати деякі рекомендації щодо програмування на FoxPro, з поясненнями чомусь власне бажано робити так, а не інакше.
FoxPro – це мова, яка дуже поблажливо ставиться до помилок програміста: не дали визначення змінної – нічого, я сам визначу; забули вказати робочу область – нічого, я сам спробую її знайти. І так у багатьох випадках, якщо Ви забули щось вказати FoxPro самостійно спробує щось знайти.
З одного боку, це звичайно добре і полегшує життя програмісту, але з іншого при створенні досить великих проектів в результаті такої самодіяльності з боку FoxPro можуть виникати помилки, які дуже важко відловити.
Найпоширеніша помилка – це самовизначення змінних. Якщо Ви не дали визначення змінної в процедурі, то спочатку FoxPro спробує знайти однойменну змінну визначену в іншій процедурі і доступну в даній і якщо така змінна існує, то вона і буде використана для повного здивування програміста, що зовсім не очікує такої "підлості"
З боку розробників FoxPro вже явно намітилася тенденція до посилення синтаксису. Воно й зрозуміло, такі мови програмування й створювати легше, та й бібліотеки підтримки матимуть менший обсяг. Але поки що це лише тенденція, подивимося, що буде далі.
З іншого боку, звичайно просто чудово, що FoxPro надає можливість вирішити одну й ту саму проблему декількома способами, але якщо в кожному конкретному випадку розмірковувати на тему "що краще використовувати", то Ви ніколи не закінчите жодної програми.
В результаті, з'явилися деякі правила та рекомендації щодо програмування, які в жодному разі не є абсолютно необхідними за принципом "роби так і ні інакше". Ви можете порушити їх абсолютно все і тим не менше написати працездатну програму. Ціль цих рекомендацій - це зменшити ймовірність появи помилок і полегшити як власне написання, так і подальше виправлення програм.
Розташування файлів проекту
За великим рахунком, проект – це набір файлів. Виникає питання - деі якїх розташувати? Якщо у Вас він не виникає, то Ви або дуже досвідчені (це очевидно!), або навпаки дуже недосвідчені (а хіба це важливо?).
Головним правилому цьому випадку виступає поділробочих (модифікованих) файлів та виконуваних (не модифікованих). Мається на увазі насамперед їхній фізичний (за різними директоріями) поділ.
Причина такого "нерівноправності" насамперед у тому, що є серйозні побоювання у псуванні виконуваних файлів. Нехай випадкове та ненавмисне. Але якщо робочі та виконувані файли лежать в одній директорії, дуже легко помилитися з вибором і модифікувати не той файл. В результаті – FoxPro або почне працювати з помилками або взагалі перестане працювати.
Іншою причиною є можливість швидкого копіювання робочих файлів. Якщо вони розташовані компактно в одній директорії, то Ви не замислюючись, просто копіюєте цю директорію з усім вмістом і не треба болісно вишукувати, що треба копіювати, а що зайве.
Необхідність копіювання пояснюється, як мінімум, необхідністю створення резервних копій усіх робочих файлів (є й інші причини). За своєю суттю програмування – це модифікація файлів. А файл можна "модифікувати" так, що мало не здається. Після чого залишається лише повністю видалити цю "модифікацію" та почати все заново. Добре, якщо Ви маєте резервну копію, тоді Ви почнете не з нуля. А якщо немає?
Ще однією важливою причиною зберігання файлів проекту окремо від файлів FoxPro є зручність пошуку потрібних робочих файлів. Якщо вони звалені в одну "купу" з робочими файлами FoxPro, стає дуже важко знайти потрібний файл.
Отже, файли вашого проекту не слід зберігати в тій директорії, де встановлено власне FoxPro. Отже, необхідно створити окрему директорію для Ваших проектів.
Небажанов іменах директорій, де Ваш проект використовувати прогалини та російські літери. Прогалини призведуть до деякого ускладнення програмування (потрібні будуть додаткові лапки у всіх шляхах доступу). А російські літери небажані тому, що FoxPro розроблялося насамперед для англомовних користувачів та всі інші мови – це вже "надбудова". Причому часто ця "надбудова" дуже кривувата. Ніколи не знаєш, де тобі відгукнуться російські літери.
В ідеалі, добре було б давати імена директорій у DOS-форматі (тобто до 8 символів), але це вже перестрахування. Міститься в 8 символів - добре, ні - нічого страшного.
Розташування файлів усередині проекту
Наступне питання - це питання розташування файлів самого проекту. Знову ж таки небажано звалювати всі файли в одну директорію. Причини тут самі - ризик псування, необхідність резервного копіювання, складність пошуку. Але вже усередині Вашого проекту.
Насамперед, обов'язковослід виділити окрему директорію для зберігання бази даних. Як правило, цю піддиректорію так і називають "DATA". У цій директорії зберігається як файл контейнера бази даних (DBC, DCT, DCX), і файли власне таблиць (DBF, FPT, CDX)
Інші файли також слід "розкидати" по піддиректорія, але тут вже можливі варіанти.
У прикладах від MicroSoft рекомендується зберігати файли за їх типами: форми в директорії Forms, класи в директорії Class і т.п. Однак я віддаю перевагу зберігати файли за їх логічним призначенням: головні файли програми в директорії Main, файли для роботи з довідниками в директорії SPR, файли для роботи з документами в директорії Document і т.п. Який варіант приймете Ви – не так важливо. Головне, щоб у Вас файли були "розкидані" за кількома директоріями
Отже, в результаті Ви отримаєте приблизно наступну структуру каталогу Вашого проекту
C:\ProjVFP C:\ProjVFP\MainProj C:\ProjVFP\MainProj\Class C:\ProjVFP\MainProj\Data C:\ProjVFP\MainProj\Forms C:\ProjVFP\MainProj\Prg |
Тут каталог C:\ProjVFP- призначений для зберігання багатьох проектів, які Ви, без сумніву, ще напишіть. А власне вже конкретно Ваш проект розташований у директорії C:\ProjVFP\MainProj
Вміст головної директорії проекту
Ну добре, розкидали ми файли з різних піддиректорій, а що ж залишається всередині головної директорії проекту?
А ось усередині головної директорії залишається, по-перше, власне файл проекту(файли з розширенням PJX, PJT), по-друге, обов'язково файл конфігурації CONFIG.FPW (це звичайний текстовий файл, про нього трохи нижче) і по-третє, файли ресурсів FoxUser.DBF та FoxUser.FPT Інші файли вже при необхідності в конкретному проекті, але зазвичай більше нічого тут зберігатися не повинно.
Цілком природне бажання, назвати файл проекту тим же ім'ям, що і директорія в якій він розташований, оскільки заради нього все це і починається. Саме так і слід вчинити- назвати файл проекту MainProj.pjx(і MainProj.pjt)
Файл ресурсів FoxUser.dbf та FoxUser.fptможна і не створювати спеціально, а тільки зробити спеціальний запис у конфігураційному файлі (у цьому випадку він буде створений автоматично).
Навіщо взагалі треба тягнути цей файл ресурсів до директорії проекту? Справа в тому, що файл ресурсів зберігає в собі координати і положення всіх вікон, що коли-небудь відкриваються в середовищі FoxPro. Це означає, що у разі використання одного і того ж файлу ресурсів для всіх проектів цей файл "роздмухується" до неймовірних розмірів. Адже у разі копіювання проекту додому, бажано захопити з собою і файл ресурсів, щоб "картинка не збилася". Найзручніше це зробити, якщо файл ресурсів фізично розташований у тій же директорії, де і сам проект, а не шукати його в директорії FoxPro.
Визначити який файл ресурсів використовується і де він знаходиться можна за допомогою функції SYS(2005)
Конфігураційний файл CONFIG.FPW
Тепер найважливіше питання про файл конфігурації CONFIG.FPW. Це звичайний текстовий файл і про нього чомусь дуже рідко згадується у книгах про FoxPro. Цей файл потрібно створити самостійно. Автоматично не створюється.
Як правило, використовують 2 файли конфігурації - один на етапі створення та налагодження проекту та інший - на етапі виконання власне готового EXE у клієнта. Той файл конфігурації, який поставляється клієнту, можна включити всередину EXE, але краще цього не робити. У цьому випадку він дозволяє проводити деяке зовнішнє налаштування середовища FoxPro навіть у готовому EXE.
Отже, що має бути у тому файлі конфігурації, який використовується на етапі створення та зміни проекту. Ось його зразковий зміст
CODEPAGE=1251 RESOURCE =FoxUser.dbf TITLE=Мій новий проект PATH =Data,Forms ,Class,Prg COMMAND=MODIFY PROJECT MainProj.pjx |
CODEPAGE- цей рядок має бути обов'язковим, якщо Ви працюєте з даними російською мовою. Якщо цього рядка не вказати, то може не відбутися автоматична трансляція символів російської мови, і замість них будуть відображені якісь гачки.
RESOURCE- ця опція говорить про те, що як ресурсний файл виступає файл FoxUser.dbf розташований у директорії за умовчанням. Якщо такого файлу там немає, він буде створений автоматично. В принципі, Ви можете вказати будь-яке ім'я для ресурсного файлу, але краще дотримуватися прийнятого стандарту, щоб не заплутатися.
TITLE- Ця опція задає текст заголовка головного вікна FoxPro замість стандартного "Microsoft Visual FoxPro". Укладати текст заголовка в лапки не треба.
PATH- ще одна дуже важлива настройка. Вона каже FoxPro про те, де слід шукати файли (у яких директоріях) щодо поточної директорії. Як роздільник можна вказувати як просто кому, так і символ крапки з комою. Докладніше про шляхи доступу трохи нижче.
COMMAND- Ця опція задає команду, яку необхідно виконати в момент відкриття середовища FoxPro. На жаль, не можна вказати кілька опцій COMMAND. З них буде виконано лише одну. Але якщо Вам необхідно виконати кілька команд при відкритті середовища FoxPro, то напишіть їх у спеціальному файлі PRG і опція виглядатиме наприклад так:
COMMAND=DO Start.prg |
За замовчуванням, FoxPro "запам'ятовує" останній відкритий проект і намагається його відкрити при кожному відкритті середовища FoxPro. Це зручно, коли Ви працюєте з одним проектом, але при роботі з кількома проектами це дратує. Відключити режим автоматичного відкриття останнього відкритого проекту можна у середовищі FoxPro: Пункт головного меню Tools -> Options-> Закладка View-> Зняти "пташку" в пункті "Open last project on startup"та зберегти налаштування за кнопкою "Set As Default". А для відкриття "потрібного" проекту при відкритті FoxPro використовується опція COMMAND у файлі конфігурації.
У конфігураційному файлі можна зробити ще багато різних налаштувань, але в більшості випадків це не потрібно. Наприклад, більшість команд SET за замовчуванням налаштовані саме таким чином, що допомагає налагоджувати проект. Тобто. робити їх переналаштування у файлі конфігурації просто немає сенсу.
Слід мати на увазі, що файл конфігурації використовується лише один раз при запуску середовища FoxPro. Тому, якщо Ви внесли зміни до файлу конфігурації, то вони набудуть чинності лише після перезавантаження середовища FoxPro.
Як відкрити проект
Зверніть увагу, що я не вказав у файлі конфігурації директорії за промовчанням. В принципі, це можна зробити, використовуючи опцію DEFAULTприблизно так:
DEFAULT =C:\ProjVFP\MainProj |
Однак є спосіб кращим. Для відкриття проекту створіть ярлик на робочому столі з наступними реквізитами (у мене VFP6, тому відповідні шляхи)
Командна строка
"C:\Program Files\Microsoft Visual Studio\Vfp98\VFP6.EXE" -T -C"C:\ProjVFP\MainProj\config.fpw"
Директорія за замовчуванням"C:\ProjVFP\MainProj"
Ключі запуску можна записати як "-TC". Ключ "-T" говорить про те, що при запуску середовища FoxPro не потрібно відображати заставку-логотип, а ключ "-C" говорить про те, що слідом за ним вказано повний шлях доступу разом з ім'ям конфігураційного файлу, який слід використовувати при запуску середовища FoxPro. Тут можна вказати абсолютно будь-яке ім'я файлу конфігурації, але краще дотримуватися прийнятого стандарту, щоб не заплутатися. У наступному рядку Ви вказуєте і власне директорію за умовчанням, якою є та директорія в якій розташований Ваш файл проекту.
Якщо Ви працюєте з кількома проектами, створіть окремі ярлики для кожного проекту та окремі файли конфігурації. А самі ярлики помістіть в окрему татку на робочому столі.
Шляхи доступу до файлів проекту
Отже, якщо Ви наслідували всі наведені вище рекомендації, то у Вас має вийде наступне: При запуску середовища FoxPro як директорія за замовчуванням встановлюється директорія, де розташований сам файл проекту, а всі інші файли проекту розміщуються в піддиректоріях.
Як же звернутися до робочих файлів проекту?
Якщо Ви вказали опцію PATH у файлі конфігурації, то звертаєтеся так, ніби всі файли проекту лежать у поточній директорії, наприклад:
USE MyTable.dbf DO FORM MyForm.scx |
Незважаючи на те, що фізично таблиця MyTable.dbfзнаходиться в папці "DATA", а файл форми MyForm.scxв папці "Forms" FoxPro знайде і запустить потрібні файли, оскільки шлях доступу до них був прописаний в опції PATH у файлі конфігурації.
Використання шляхів доступу в налаштуваннях файлу конфігурації (або програмно в стартовому файлі проекту) дозволяє в простих випадках легко переносити проект з однієї директорії в іншу. Те саме можна сказати і про дані. Ви спокійно включаєте таблиці в DataEnvironmentформ і звітів не переймаючись тим, що з клієнта ці таблиці фізично будуть у інших директоріях. Вони все одно будуть знайдені, якщо заданий шлях доступу до них.
Зрозуміло, є ситуації, коли простої вказівки шляхів доступу виявляється недостатньо. Наприклад, коли Ви одночасно працюєте з кількома однойменними таблицями, що належать різним базам даних. У таких випадках використовуються різні прийоми примусової вказівки абсолютних шляхів доступу (тут я їх не розглядатиму). Але в більшості випадків використання налаштування PATH виявляється цілком достатнім.
Крім того, полегшується процес створення резервних копій (та просто копіювання) файлів Вашого проекту. А також знижується ймовірність псування робочих файлів власне FoxPro.
База даних
За великим рахунком, під терміном "база даних"розуміють сукупність всіх даних, а також накладених на них правил та обмежень, що забезпечують цілісність та несуперечність цих даних. Іноді його дійсно вживають саме в цьому сенсі, проте найчастіше у FoxPro цей термін розуміється у вужчому сенсі
База даних- це файл із розширенням DBC, а також пов'язані з ним файли з тим самим ім'ям, але з розширеннями DCX та DCT
Правильніше було б застосовувати термін "контейнер бази даних". Підозрюю, що від нього і походить назва розширення (перші літери в англійській DataBase Container). Проте через звичку американців все скорочувати слово "контейнер" якось загубилося.
У версіях FoxPro 2.x під терміном "база даних" розуміли те, що зараз розуміють під терміном "таблиця"просто тому, що в цих версіях ще не було файлу DBC. Через що часто виникають непорозуміння та непорозуміння.
За своєю суттю, файл DBC - це звичайний файл DBF, тільки зі зміненим розширенням (як і більшість інших файлів, що використовуються в FoxPro). Відповідно DCT – це файл мемо-полів (перейменований FPT), а DCX – це структурний індексний файл (перейменований CDX). На відміну від простого файлу DBF полягає лише у вмісті 28 байт заголовка (вважаючи що перший байт має порядковий номер 0). У файлі бази даних у цьому байті заповнено 3 біти (чого немає в DBF-файлах). Тобто. ASCII код записаного там символу не менше 4 (зазвичай 7), у той час як у DBF-файлів його вміст навпаки не перевищує 3.
Оскільки файл бази даних - це звичайний файл DBF, Ви можете відкрити його як таблицю і переглянути вміст.
USE MyBase.dbc AGAIN |
Вказувати розширення файлу, як і опцію AGAIN у разі обов'язково. Без вказівки розширення FoxPro вважає, що його розширення DBF помилиться. А опція AGAIN потрібна тому, що файл бази даних може бути відкритий командою OPEN DATABASE і без цієї опції Ви також отримаєте повідомлення про помилку
Найчастіше, відкриття файлу бази даних як таблиці в попередніх версій FoxPro був єдиною можливістю швидко отримати потрібну інформацію. Наприклад, які таблиці бази даних мають поле із заздалегідь відомим ім'ям "MyField"? Для відповіді це питання будуємо SQL запит приблизно наступного змісту
SELECT a.ObjectName; FROM MyBase.dbc a; INNER JOIN MyBase.dbc b ON a.ObjectID=b.ParentID; WHERE a.ObjectType="Table " and b.ObjectType="Field " and ; b.ObjectName=PADR (LOWER ("MyField"),128) |
Але я не рекомендував би користуватися такими "хакерськими" трюками і використовувати штатні функції для роботи з файлом бази даних INDBC(), DBGetProp(), ADBObjects() тощо, оскільки в цьому випадку занадто великий ризик ненавмисного псування файлу бази даних.
Назва файлу бази даних
Файл бази даних, як і будь-який інший файл у системі Windows, може містити до 128 символів, містити пробіли, російські символи, цифри та деякі спец.символи. Однак для спрощення роботи у FoxPro я б порекомендував такі обмеження в найменуванні файлу бази даних
Розташування файлу бази даних
Причини цієї рекомендації докладно викладені у розділі
. Коротко, суть зводиться до того, що в іншому випадку зростає ризик ненавмисного псування файлів даних і відповідно втрати даних. А також полегшується пошук потрібних файлів та створення резервної копії.
За великим рахунком, звичайно, можна тримати файл бази даних в одній директорії, а включені в нього файли DBF в інший. Але це ускладнює процес розробки проекту. Наприклад, створення резервної копії у найпростішому випадку полягає у простому копіюванні директорії з робочими файлами в інше місце. Якщо ж робочі файли відокремлені від файлу бази даних, потрібно вже копіювання 2-х директорій. Відповідно ускладниться код.
З іншого боку, у разі дещо збільшиться розмір файлу бази даних (точніше файлу DCT - мемо-файла), оскільки у ньому зберігається відносний шлях до включеним у нього таблицям. Якщо таблиці розташовані в тій же директорії, що і сам файл бази даних, цього відносного шляху просто немає. Задля справедливості, слід зазначити, що відносний шлях до бази даних зберігається і в заголовках таблиць, які в цю базу даних включені. Але розмір таблиць це впливає, оскільки під цей відносний шлях завжди виділяється фіксоване місце незалежно від факту його наявності.
Обслуговування файлу бази даних
Власне, обслуговування файлу бази даних полягає в його регулярній "чистці". Оскільки файл бази даних - це звичайна DBF-таблиця, те й видалення з нього відбувається так само, як і в таблиці в 2 етапи: спочатку записи тільки позначаються як віддалені, але фізично не видаляються. А для фізичного видалення потрібно виконати упаковку файлу бази даних.
На етапі розробки цієї мети використовується спеціальний пункт меню як модифікації бази даних: пункт головного меню Database->Clean Up DataBase. Фактично, цей пункт меню виконує команду PACKдля файлу бази даних, тому вимагає ексклюзивного відкриття бази даних ( в режимі EXCLUSIVE ). Якщо база даних відкрита в режимі SHARED, цей пункт меню буде недоступний.
Окрім власне чищення файлу бази даних від раніше віддалених записів, виконання цієї операції істотно зменшує розмір файлу DCT у якому зберігаються у тому числі всі "збережені процедури". Тому після внесення змін до процедур, що зберігаються, також бажано зробити чищення бази даних.
На етапі виконання у клієнта необхідність чищення бази даних виникає тільки в тому випадку, якщо Ви динамічно додаєте та видаляєте будь-які об'єкти в базу даних. Наприклад, створюєте Local Viewкомандою CREATE SQL VIEW. Або модифікуєте будь-які властивості по DBSetProp(). Або модифікуєте таблиці за ALTER TABLE.
У цьому випадку чищення бази даних виконується за допомогою звичайної команди PACKприблизно таким чином
SET DATABASE TO MyBase CLOSE DATABASE OPEN DATABASE MyBase EXCLUSIVE SET DATABASE TO MyBase PACK DATABASE CLOSE DATABASE OPEN DATABASE MyBase SHARED SET DATABASE TO MyBase |
Зрозуміло, це лише загальна схема, тут опущені різні перевірки, необхідні в повноцінному додатку.
Якщо ж Ви не модифікуєте файл бази даних на етапі роботи у клієнта, то і немає необхідності в чищенні файлу бази даних.
А чи взагалі потрібно використовувати файл бази даних?
Подібне запитання часто-густо ставлять програмісти, які раніше працювали на FoxPro 2.x, де цього файлу просто не було. Та й сам FoxPro цілком здатний працювати і з вільними таблицями без будь-якої бази даних. Відповім одразу – треба! А тепер спробую пояснити, чому.
Наприклад, у файлі DBF в принципі не можна дати полю назву, що містить більше 10 символів, але якщо він включений до бази даних, то назва поля може вже містити до 128 символів. Ніякі правила (RULE), значення за замовчуванням (DEFAULT), тригера та дещо інше просто неможливі у файлі DBF поза файлом бази даних. Точніше так - неможливе їх автоматичне виконання.
Наприклад, така операція як "транзакція" може бути реалізована лише серед таблиць DBF включених до бази даних. У принципі цей процес можна організувати і з вільними таблицями, але це вимагатиме від програміста значних зусиль. А такий чудовий об'єкт як оновлюваний Local View - скільки зусиль потрібно при програмуванні FoxPro 2.x для реалізації того, що цей об'єкт робить автоматично!
Втім, використання файлу бази даних серйозно полегшує життя програміста