Знакомство со стандартной панелью инструментов Visual FoxPro.
Быстрый старт - это краткое описание основополагающих принципов работы в среде программирования FoxPro для Windows версии 2.5, создано для того, чтобы Вы могли с наименьшими затратами времени познакомиться с возможностями и организацией системы. Это руководство не является полным описанием и содержит лишь основные принципы и моменты работы с базами данных. Данное описание рассчитано на новичков - пользователей, которые впервые столкнулись с FoxPro и не знают с какой стороны к нему подойти. Здесь Вы найдете описание основных правил просмотра, создания и редактирования баз данных DBF, получите основные навыки работы в среде программирования FoxPro 2.5 для Windows
Заметим, что при использовании FoxPro вся нужная информация всегда находится "под руками". FoxPro обеспечивает контекстно- зависимую справку, так что всегда можно получить информацию о любом окне системы, диалоге или команде меню во время их использования. Для получения справки достаточно нажать клавишу F1.
А теперь давайте начнем с самого простого.
Глава 1. Открытие и просмотр таблицы (файла DBF).
В этой главе описывается, каким образом можно просмотреть уже созданную базу данных.
Таблица - это файл, содержащий упорядоченную информацию. Такие файлы иногда называют файлами.DBF, так как они имеют расширение.DBF.
Система FoxPro содержит очень мощный инструмент для просмотра и редактирования информации в таблице. Для ознакомления с этими возможностями мы воспользуемся уже созданной таблицей: CUSTOMER.DBF, которая содержит информацию о заказчиках.
Как открыть и просмотреть таблицу
Установите курсор в окно команд, щелкнув в нем. Наберите set default to c:\foxpro\tutorial и нажмите клавишу ENTER.
В меню "Файл" выберите команду "Открыть". Появится диалог "Открыть". Сделайте активным каталог TUTORIAL. В списке "Тип" выберите "Таблица/DBF". И, выбрав файл CUSTOMER.DBF, нажмите кнопку "Открыть".
Рис.1.1 Открытие таблицы
Теперь эта таблица является активной и для ее просмотра в меню "База" выберите команду "Просмотр". Появится окно просмотра. Информация в окне просмотра представлена в строках и столбцах. Столбцы называются полями, строки - записями. Окно просмотра обычно недостаточно велико, чтобы дать возможность увидеть всю таблицу сразу. Для того чтобы увидеть различные части таблицы, нужно прокрутить окно просмотра по горизонтали и по вертикали.
В окне просмотра можно управлять отображением данных на экране, например, можно изменить ширину отдельных полей.
Как изменить ширину поля
Установите курсор мыши между заголовком поля COMPANY и заголовком поля CONTACT. Эта линия называется разделителем заголовков. При попадании на разделитель заголовков указатель мыши изменяет вид. И теперь, нажав кнопку мыши, установите требуемый размер поля.
Как переместить поле
Укажите с помощью мыши на заголовок поля CNO. И, нажав кнопку мыши, перемещайте заголовок, пока он не окажется между COMPANY и CONTACT.
Рис.1.2 Перемещение заголовка в таблице
Можно увидеть все поля одновременно, перейдя в режим просмотра по записям. В этом режиме поля каждой записи располагаются одно под другим.
Как просмотреть данные в режиме просмотра по записям
В меню "Просмотр" выберите команду "По записям". Режим просмотра изменится.
Рис.1.3 Режим просмотра по записям
Еще одним способом просмотра данных является разбиение окна просмотра на два раздела при помощи маркера разбиения - черного прямоугольника в левом нижнем углу окна просмотра.
Как разбить окно просмотра
Установите мышь на маркере разбиения. Указатель мыши изменится. Переместите маркер разбиения окна за поле CONTACT.
Разбиение окна просмотра позволяет:
прокручивать поля в одном разделе, не перемещая поля в другом;
работать с одним разделом в режиме просмотра по записям, а с другим в режиме табличного просмотра.
Как выбрать раздел и изменить его режим
Выберите правый раздел, установив на нем указатель мыши и щелкнув. В меню "Просмотр" выберите команду "По записям".
Рис.1.4 Выбор раздела
Так как разделы связаны, то при прокрутке выделяется одна и та же запись для обоих разделов. Можно устранить связь между разделами и прокрутить записи в одном разделе, оставив записи другого раздела без изменения.
Как устранить связь между разделами
В меню "Просмотр" выберите команду "Связать разделы". Маркер, расположенный рядом с командой "Связать разделы", исчезнет. Прокрутите несколько записей.
Как закрыть окно просмотра
Закрытие окна производится стандартно для системы WINDOWS, дважды щелкните на кнопке управляющего меню окна просмотра, или нажмите клавиши CTRL+F4.
Работа с окном Memo
Теперь откроем еще одну таблицу, содержащую информацию о продавцах, участвовавших в некоторых коммерческих сделках, это файл: SALESMAN.DBF
В этой таблице определено поле NOTES, находящееся между полями ONO и NAME и содержащее слова Memo или memo. Это поле специального типа; оно может содержать неограниченное количество любой информации. Так как объем информации может быть очень большим, ее трудно отобразить в маленькой области. Для просмотра и редактирования этой информации служит окно редактирования memo-поля.
Глядя на memo-поле, по первой букве слова memo сразу можно определить, содержит данное поле информацию или нет. Прописная буква "M" указывает на то, что memo-поле содержит информацию, а строчная буква "m" - на то, что поле пусто.
Как просмотреть данные memo-полей
Откройте окно редактирования memo-поля. Для этого дважды щелкните на слове Memo.
Рис.1.5 Просмотр данных Memo полей
В окне редактирования memo-поля вы можете его не только просмотреть, но и отредактировать. Для закрытия окна просмотра memo поля щелкните дважды на кнопке управляющего меню окна просмотра.
Глава 2. Управление данными.
Из предыдущей главы Вы узнали, как просмотреть информацию в таблице. Но что делать, если окажется, что нужно просмотреть информацию заданного типа? Например, может потребоваться узнать все о покупателях, израсходовавших свыше $5000, или узнать лишь имя и номер каждого покупателя. FoxPro позволяет быстро извлекать и просматривать информацию, отвечающую заданным условиям. Процесс извлечения указанной информации называется "запросом".
Как открыть окно запроса
В меню "Файл" выберите команду "Открыть" и в каталоге FOXPROW\TUTORIAL\ выберите файл CUSTOMER.DBF и нажмите кнопку "Открыть". Затем, в меню "Файл" выберите команду "Создать". В диалоге "Создать файл" установите опцию "Запрос", а затем нажмите кнопку "Создать". Появится окно запроса.
Рис. 2.1. Как открыть окно запроса
В окне запроса указывается информация, которую требуется извлечь из таблиц. Извлеченная информация помещается в окно просмотра. Можно работать с этим окном так, как это делалось в предыдущей главе.
В списке "Поля результата" окна запроса указывается, какие поля требуется отобразить в окне просмотра. По умолчанию во вновь открываемой таблице отображаются все поля.
В области "Критерий отбора" указывается, какие записи требуется извлечь из таблицы. Если область пуста - запрос извлекает все записи из таблицы.
Допустим, нет необходимости просматривать поля CNO, ADDRESS, ZIP и ONO. Тогда нам нужно указать только те поля, которые нужны.
Как задать поля для результата запроса
В окне запроса установите флажок "Поля". Появится диалог "Выбор полей запроса".
Рис. 2.2 Задание полей для запроса
Нажмите кнопку "Удалить все", чтобы очистить список "Выбранные поля". И поместите в список "Выбранные поля" COMPANY, CNO, CONTACT, PHONE, CITY, STATE и YTDPURCH, для этого выделите нужное поле в списке "Поля таблицы" и нажмите кнопку "Добавить". Каждое из перечисленных выше полей появится на экране с префиксом CUSTOMER, это означает принадлежность поля к таблице CUSTOMER. По окончании нажмите кнопку "Ok". Выбранные поля будут отображены в списке "Поля результата" окна запроса. При выполнении запроса поля в окне просмотра появляются в порядке, указанном в окне запроса.
Как выполнить запрос
В окне запроса нажмите кнопку "Выполнить". И у вас появится окно просмотра с выбранными полями.
Рис. 2.3 Выполнение запроса
Если в процессе работы с окном просмотра окажется, что больше нет необходимости в поле CONTACT, то его просто из запроса удалить.
Как удалить поле результата из запроса
Закройте окно просмотра, в котором отображен результат запроса. Установите флажок "Поля". Удалите поле CONTACT из списка "Выбранные поля", выделив его в списке и нажав кнопку "Удалить". Нажмите кнопку "Ok". Обратите внимание, что поля CONTACT больше нет в списке "Поля результата". И выполните запрос.
Теперь, когда выбраны поля результата, можно задать порядок, в котором будут представлены данные. Например, можно отобразить данные по городам в алфавитном порядке.
Как упорядочить поля в запросе
Закройте окно просмотра с отображенным результатом запроса. В окне запроса установите флажок "Порядок". В диалоге "Порядок полей запроса" поместите CUSTOMER.SITY в список "Критерий порядка", для этого выделите его и нажмите кнопку "Добавить". И установите флажок "По возрастанию".
Рис. 2.4 Как упорядочить поля в запросе
Для возвращения в окно запроса нажмите кнопку "ОK". Обратите внимание, что в списке "Поля результата" рядом с CITY появились символы 1 и стрелка вверх. Цифра 1 означает, что CITY имеет первый приоритет при упорядочении данных, а стрелка вверх означает, что данные отображаются в порядке возрастания.
Нажмите кнопку "Выполнить". Данные можно упорядочить любым способом. Например, можно упорядочить данные по штатам и по городам внутри штата.
Как упорядочить по нескольким полям
Закройте окно просмотра. Установите флажок "Порядок". Поместите CUSTOMER.STATE в список "Критерий порядка". Установите порядок полей, для этого мышью переместите кнопку слева от STATE так, чтобы поле STATE было выше поля CITY. Нажмите кнопку "Оk". Теперь перед STATE стоит цифра 1, а перед CITY - 2, что означает приоритет по упорядочению данных. И нажмите кнопку "Выполнить".
До сих пор в таблице CUSTOMER просматривались все записи. Но предположим, что нужно просмотреть только те компании, которые расположены в штате Огайо. Используя область "Критерий отбора" окна запроса, можно выполнить такой запрос почти сразу же.
Задание условий отбора
Чтобы извлечь только заданные записи, следует задать условия от- бора. Каждое условие отбора состоит из поля таблицы, варианта сравнения и значения, которое должно сравниваться с содержимым поля.
Как задать условия отбора.
Закройте окно просмотра. В окне запроса щелкните на прямоугольнике ниже "Имя поля", чтобы вывести список "Имя поля". Выделите CUSTOMER.STATE
Рис. 2.5 Как задать условия отбора
В списке вариантов сравнения по умолчанию устанавливается "похоже на". Наберите OH (Ohio) в текстовом поле ниже надписи "Образец". Так создано условие отбора для просмотра записей только о компаниях в штате Огайо. Таким же образом можно задать несколько условий отбора. Введенное условие отбора требует, чтобы поле STATE было похоже на OH. STATE - это поле, "похоже на" - это вариант сравнения, а OH - значение, с которым сравнивается содержимое поля. Вариант сравнения "похоже на" указывает, что поле STATE должно иметь значение OH для того, чтобы запись удовлетворяла требованиям запроса. Результат выполнения запроса показан на
Рис. 2.6 Результат выполнения запроса
Другие варианты условия отбора
Попробуем вывести компании, расположенные в штате Огайо или Мичиган. Закройте окно просмотра. Щелкните на поле ввода вариантов сравнения и выберите значение "в списке". В поле "Образец" наберите MI (Michigan) после OH. Не забудьте поставить запятую.
Рис. 2.7 Вариант сравнения: "в списке"
Нажмите кнопку "Выполнить". Появится окно просмотра, в котором будут выведены все компании, расположенные в штатах Огайо и Мичиган, потому что "в списке" означает, что для включения в результат STATE должно содержать один из элементов, указанных в текстовом поле "Образец".
Другие условия отбора: равно, больше, меньше, в пределах; работа- ют аналогично. Для более подробного ознакомления обратитесь к справочнику: "Руководство пользователя. FoxPro. Система управления реляционными базами данных для Windows".
Глава 3. Работа с таблицей.
В этой главе приводится описание создания собственной таблицы пользователя, а также добавление, удаление и изменение записей в ней.
Создание структуры таблицы.
Во-первых, решите, какую информацию следует помещать в таблицу.
Фамилия, имя, отчество сотрудника;
Дата рождения;
Профессия;
Заработная плата;
Комментарий;
Каждая из перечисленных величин будет храниться в соответствующем поле таблицы.
Как создать структуру таблицы
В меню "Файл" выберите команду "Создать". Появится диалог "Создать файл". Выберите опцию "Таблица/DBF", а затем нажмите кнопку "Создать". Появится диалог "Структура таблицы"
Рис. 3.1 Создание структуры таблицы
Курсор находится в текстовом поле "Имя". Теперь можно добавить имя, тип и ширину каждого поля.
Как описать поля таблицы
Наберите "фио" в текстовом поле "Имя". Нажмите клавишу Tab или щелкните мышью в списке "Тип". Установите тип "Character". Нажмите клавишу Tab или щелкните мышью на поле "Ширина", после чего наберите 25 или с помощью стрелок увеличьте ширину до 25. Далее опишите остальные поля. Результат показан на
Рис. 3.2 Описание полей таблицы
Поле "Дес" указывает число десятичных разрядов в числовом поле. Так как в поле "зарплата" хранится значение денежной суммы, то следует задать число 2.
После ввода всех значений нажмите кнопку "Ok". Появится диалог "Сохранить как". Введите имя таблицы: TEST, если необходимо укажите в какой каталог ее записать и нажмите кнопку "Сохранить". Затем FoxPro спросит: "Вводить записи данных сейчас?". Нажмите кнопку "Да".
Ввод данных в таблицу
Появится окно просмотра в режиме изменения по записям. Добавляем в таблицу следующие данные:
Иванов Сергей Николаевич
бухгалтер
Для ввода информации в поле memo нажмите клавиши CTRL+PGDN или дважды щелкните на этом поле. Появится memo-окно, в которое введите комментарии.
Рис. 3.3 Ввод комментариев в Memo-окно
Закройте memo-окно. Заметьте, что буква "M" в слове Memo прописная, это означает, что данные в поле уже введены. Добавьте еще нескольких сотрудников и закройте окно просмотра.
Теперь, предположим, Вы приобрели сканер и желаете добавить в таблицу фотографии своих сотрудников.
Как изменить структуру таблицы
В меню "База" выберите команду "Настройка". В левом верхнем углу диалога "Настройка базы" нажмите кнопку "Изменить" Появится диалог "Структура таблицы". Подведите курсор к полю "комментарий" и нажмите кнопку "Вставить". Над полем "комментарий" появится "новое_поле". Замените "новое_поле" на "фото". В списке "Тип" выберите значение "General", а затем нажмите кнопку "Ok". На запрос FoxPro о том, необходимо ли сохранить изменения нажмите кнопку "Да". В диалоге "Настройка базы" нажмите кнопку "Ok".
Ввод в таблицу графических данных
Прежде всего, Вам необходимо внести в буфер обмена фотографию сотрудника.
В меню "Запись" выберите команду "Править". В окне просмотра устанавливается режим изменения по записям. Дважды щелкните по полю "фото". Появится окно редактирования поля типа General. В меню "Правка" выберите команду "Вставить". Картинка, содержащаяся в буфере обмена, появится в окне.
Рис. 3.4 Запись картинки в таблицу
Как добавить новые записи
В меню "Запись" выберите команду "Добавить". Появится окно просмотра в режиме добавления, куда Вы можете добавить новых сотрудников.
Как удалить запись
В режиме просмотра таблицы следует пометить поля для удаления. Для этого слева от поля нажать маркер удаления.
Рис. 3.5 Удаление записи
Как упаковать таблицу
В меню "База" выберите команду "Упаковать". Появится сообщение с запросом о том, хотите ли Вы упаковать таблицу. Нажмите кнопку "Да". Теперь в меню "База" выберите команду "Просмотр" и убедитесь в том,что все выделенные записи были удалены.
Глава 4. Формирование отчетов
В настоящей главе описывается, как использовать окно запроса для быстрого составления отчетов на основе имеющихся данных.
Во второй главе говорилось об отображении информации в окне просмотра с помощью запроса. Другим способом представления информации является отчет.
Для создания отчета необходим запрос. Мы воспользуемся запросом созданным в главе второй.
Как открыть запрос
В меню "Файл" выберите команду "Открыть". В появившемся диалог "Открыть" выберите каталог TUTORIAL. В списке "Тип" выберите "Запрос" Выберите нужный файл (GSCHAP5.QPR) и нажмите кнопку "Открыть".
В качестве первого отчета составим список телефонных номеров всех клиентов из Калифорнии.
Сформируйте отчет с телефонным списком, как показано на рис.4.1.
Рис. 4.1 Создание отчета с телефонным списком
Включите следующие поля: COMPANY, PHONE, CONTACT, CITY и STATE. Критерий отбора: STATE похоже на CA. И главное, в списке "Вывод" выберите значение "Отчет/Этикетка". Нажмите кнопку "Выполнить".
Отчет начинает прокручиваться на экране.
После просмотра отчета нажмите клавишу ESC.
Вышеприведенный отчет содержит корректную информацию, но его наглядность можно повысить.
Как сформировать бланк отчета
Установите флажок "Опции". В диалоге "Параметры ввода запроса" выберите опцию "Отчет", установите флажок "Стандартный отчет", и в диалоге "Стандартный отчет запроса" в поле "Сохранить как" наберите имя gschap6.frx.
Рис. 4.3 Формирование бланка отчета
Нажмите кнопку "Ok" и кнопку "Выполнить".
Полное изображение целой страницы отчета можно увидеть в окне "Просмотр страницы", как показано на рис.4.4.
Рис. 4.4 Изображение страницы отчета
Изображение страницы отчета дает представление о том, как отчет будет выглядеть на бумаге.
В окне "Просмотр страницы" Вы можете увеличить изображение (кнопка Увеличить), можно уменьшить (кнопка Уменьшить), просмотреть следующую или предыдущую страницу (кнопки Вперед/Назад). Для выхода нажмите кнопку "OK".
Теперь рассмотрим созданный бланк отчета и внесем в него некоторые усовершенствования в окне разметки отчета.
Как открыть бланк отчета
В меню "Файл" выберите команду "Открыть". В списке "Тип" выберите значение "Отчет", и откройте файл: GSCHAP6.FRX.
В окне разметки отчета появится бланк отчета GSCHAP6, изображенный на рис.4.5.
Рис. 4.5 Бланк отчета
Бланк отчета разделен на три полосы:
Полоса "Верхний колонтитул" содержит информацию, отображаемую вверху каждой страницы отчета.
Полоса "Детали" печатается один раз для каждой записи, удовлетворяющей критерию отбора.
Полоса "Нижний колонтитул" содержит информацию, отображаемую вниз каждой страницы отчета.
С помощью набора значков в левой части окна разметки можно внести необходимые изменения в отчет. Например, на рис.4.6 показан бланк отчета с внесенными изменениями.
Рис. 4.6 Внесение изменений в отчет
Как выполнить запрос
Сверните окно отчета. Нажмите кнопку "Выполнить". Обратите внимание, что отчет содержит внесенные изменения.
Рис. 4.7 Окончательный вид отчета
И этот отчет Вы можете распечатать на принтере.
Заключение
Мы рассмотрели элементарные возможности работы с базами данных в среде FoxPro, на этом его возможности не ограничиваются, но для дальнейшей работы необходимо иметь хотя бы элементарные знания о языке программирования FoxPro. Если Вы решите продолжить знакомство с возможностями использования FoxPro, или если у Вас возникли затруднения, то можно посоветовать воспользоваться справочником "Microsoft FoxPro для Windows", который Вы получите вместе с пакетом программ FoxPro.
Рассмотрим кратко другие основные возможности работы с базами данных:
Создание экрана.
Система FoxPro используется для просмотра данных различными способами. Можно просмотреть таблицу данных в окне просмотра, можно просмотреть поля каждой записи, а также с помощью "создания экрана" Вы можете создать свой метод просмотра/изменения данных, помещая данные в нужные места экрана или страницы. Возможности FoxPro в этом плане просто уникальны.
Создание меню.
Вы можете за считанные минуты создать свою систему меню, со всеми необходимыми командами для работы с вашими базами данных, а не пользоваться стандартной системой меню FoxPro.
Создание проекта.
Все элементы: экраны, отчеты, запросы, меню... можно объединить в единое целое, называемое проектом.
Проект служит для управления элементами в процессе создания приложения. Создав проект и задав файлы, которые должны в него войти, можно использовать этот проект для сборки приложения (.APP) или исполняемого файла (если у Вас есть пакет FoxPro Distribution Kit)
Ok. В диалогекомментарий src=h4 style=m. Нажмите кнопку
Людмила Омельченко
Дарья Шевякова
САМОУЧИТЕЛЬ
Санкт-Петербург
«БХВ-Петербург»
2005
УДК 681.3.068+800.92Visual FoxPro 9
ББК 32.973.26-018.1
О-57
Омельченко Л. Н., Шевякова Д. А.
О-57
Самоучитель Visual FoxPro 9.0. - СПб.: БХВ-Петербург, 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
ISBN 5-94157-632-3
© Омельченко Л. Н., Шевякова Д. А., 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. Êíèãà ðåãèñòðàöèè ìåæäóãîðîäíèõ ðàçãîâîðîâ
ÇÀÌÅ×ÀÍÈÅ
В реляционных базах данных поля могут иметь разные типы данных (числовой, строковый,
типа даты и т. п.), но для каждой записи тип данных поля остается неизменным.
Одним из важных достоинств базы данных является быстрая выборка хранимой
в ней информации. Используя телефонно-адресную книгу, в которой данные упорядочены по фамилиям, вы можете найти номер телефона по фамилии его владельца.
Однако если записи в книге регистрации междугородних разговоров упорядочены
в хронологическом порядке, вам придется потратить значительное время на получе-
Çíàêîìñòâî ñ Visual FoxPro
7
ние списка клиентов, заказывавших разговор с определенным городом, или на выяснение того, в каком районе проживают абоненты, приносящие наибольшую прибыль телефонной компании своими продолжительными разговорами.
На помощь приходят компьютерные базы данных. Они, несмотря на огромный объем хранящейся в них информации, обеспечивают высокую скорость поиска необходимой информации. В таких базах данных пользователь может выполнить поиск по
любому интересующему его параметру. Кроме того, компьютерные базы данных
очень компактны. База данных, содержащая несколько тысяч записей, может поместиться на одной дискете.
Ñîâðåìåííûå ðåëÿöèîííûå ÑÓÁÄ
Для создания базы данных, изменения ее структуры, редактирования и выборки
данных используются системы управления базами данных. Современные реляционные системы управления базами данных содержат:
набор инструментов для создания таблиц и отношений между связанными таблицами;
средства администрирования базы данных;
развитый пользовательский интерфейс, который позволяет получить доступ к информации, хранящейся в базе данных;
средства разработки приложений, использующих базы данных.
На рис. 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
11
лицами, вид отображения данных и порядок размещения полей. Для создания
сложных форм применяется конструктор форм.
Отчеты используются для печати содержащейся в базе данных информации. Примерами отчетов являются прайс-лист товаров, список покупателей, оборотная складская ведомость. Как правило, отчеты создаются в том случае, если информацию необходимо передавать кому-либо в печатном виде. Для создания отчетов
в 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
Áàçà äàííûõ
dbc
Òàáëèöà Visual FoxPro
dbf
Ñîñòàâíîé èíäåêñíûé ôàéë
cdx
Memo-ïîëå è ïîëå òèïà General
frt
Ãëàâà 1
12
Òàáëèöà 1.1 (îêîí÷àíèå)
Íàèìåíîâàíèå îáúåêòà
Ðàñøèðåíèÿ
Ôîðìà
scx
Çàïðîñ
qpr
Îò÷åò
frx, frm
Ïî÷òîâàÿ íàêëåéêà
lbx, lbl
Ìåíþ
mnx
Áèáëèîòåêà êëàññà
vcx
Ïðîãðàììà, áèáëèîòåêà ïðîãðàìì, òåêñò ìåíþ, 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
Ðàçâåðíóòü
Ðàçâåðòûâàåò ãëàâíîå îêíî Visual FoxPro âî âåñü ýêðàí
Çàêðûòü
Çàêðûâàåò ãëàâíîå îêíî ïðîãðàììû 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
действиями. Перечислим возможные способы.
При использовании мыши достаточно установить курсор на пункт меню, содержащий выбираемую команду, и нажать кнопку мыши. Если команда содержит
подменю, следует выбрать в нем требуемую команду.
При использовании клавиатуры сначала нужно активизировать строку меню нажатием клавиши
Людмила Омельченко
Дарья Шевякова
САМОУЧИТЕЛЬ
Санкт-Петербург
«БХВ-Петербург»
2005
УДК 681.3.068+800.92Visual FoxPro 9
ББК 32.973.26-018.1
О-57
Омельченко Л. Н., Шевякова Д. А.
О-57
Самоучитель Visual FoxPro 9.0. - СПб.: БХВ-Петербург, 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
ISBN 5-94157-632-3
© Омельченко Л. Н., Шевякова Д. А., 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. Êíèãà ðåãèñòðàöèè ìåæäóãîðîäíèõ ðàçãîâîðîâ
ÇÀÌÅ×ÀÍÈÅ
В реляционных базах данных поля могут иметь разные типы данных (числовой, строковый,
типа даты и т. п.), но для каждой записи тип данных поля остается неизменным.
Одним из важных достоинств базы данных является быстрая выборка хранимой
в ней информации. Используя телефонно-адресную книгу, в которой данные упорядочены по фамилиям, вы можете найти номер телефона по фамилии его владельца.
Однако если записи в книге регистрации междугородних разговоров упорядочены
в хронологическом порядке, вам придется потратить значительное время на получе-
Çíàêîìñòâî ñ Visual FoxPro
7
ние списка клиентов, заказывавших разговор с определенным городом, или на выяснение того, в каком районе проживают абоненты, приносящие наибольшую прибыль телефонной компании своими продолжительными разговорами.
На помощь приходят компьютерные базы данных. Они, несмотря на огромный объем хранящейся в них информации, обеспечивают высокую скорость поиска необходимой информации. В таких базах данных пользователь может выполнить поиск по
любому интересующему его параметру. Кроме того, компьютерные базы данных
очень компактны. База данных, содержащая несколько тысяч записей, может поместиться на одной дискете.
Ñîâðåìåííûå ðåëÿöèîííûå ÑÓÁÄ
Для создания базы данных, изменения ее структуры, редактирования и выборки
данных используются системы управления базами данных. Современные реляционные системы управления базами данных содержат:
набор инструментов для создания таблиц и отношений между связанными таблицами;
средства администрирования базы данных;
развитый пользовательский интерфейс, который позволяет получить доступ к информации, хранящейся в базе данных;
средства разработки приложений, использующих базы данных.
На рис. 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
11
лицами, вид отображения данных и порядок размещения полей. Для создания
сложных форм применяется конструктор форм.
Отчеты используются для печати содержащейся в базе данных информации. Примерами отчетов являются прайс-лист товаров, список покупателей, оборотная складская ведомость. Как правило, отчеты создаются в том случае, если информацию необходимо передавать кому-либо в печатном виде. Для создания отчетов
в 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
Áàçà äàííûõ
dbc
Òàáëèöà Visual FoxPro
dbf
Ñîñòàâíîé èíäåêñíûé ôàéë
cdx
Memo-ïîëå è ïîëå òèïà General
frt
Ãëàâà 1
12
Òàáëèöà 1.1 (îêîí÷àíèå)
Íàèìåíîâàíèå îáúåêòà
Ðàñøèðåíèÿ
Ôîðìà
scx
Çàïðîñ
qpr
Îò÷åò
frx, frm
Ïî÷òîâàÿ íàêëåéêà
lbx, lbl
Ìåíþ
mnx
Áèáëèîòåêà êëàññà
vcx
Ïðîãðàììà, áèáëèîòåêà ïðîãðàìì, òåêñò ìåíþ, 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
Ðàçâåðíóòü
Ðàçâåðòûâàåò ãëàâíîå îêíî Visual FoxPro âî âåñü ýêðàí
Çàêðûòü
Çàêðûâàåò ãëàâíîå îêíî ïðîãðàììû 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
действиями. Перечислим возможные способы.
При использовании мыши достаточно установить курсор на пункт меню, содержащий выбираемую команду, и нажать кнопку мыши. Если команда содержит
подменю, следует выбрать в нем требуемую команду.
При использовании клавиатуры сначала нужно активизировать строку меню нажатием клавиши
Рассмотрен Visual FoxPro 9.0 – мощный пакет программ, предназначенный для построения профессиональных приложений, работающих с базами данных. Описаны интегрированная среда разработки приложений и создание с ее помощью основных объектов, таких как классы, таблицы, запросы, формы, отчеты. Рассмотрены экспорт и импорт данных, а также публикация данных на Web-сервере. Показано как разрабатывать, создавать и тестировать клиент-серверные приложения. Уделено внимание особенностям очередной версии популярного пакета, а также дополнительным возможностям для работы с XML Web-сервисами и взаимодействию с другими приложениями (Microsoft Visual Studio .NET и Microsoft SQL Server 2000). Многочисленные примеры и иллюстрации помогут быстро освоить и успешно применять на практике изложенный материал. Для программистов и разработчиков баз данных.
На нашем сайте вы можете скачать книгу "Самоучитель Visual FoxPro 9.0" Омельченко Людмила бесплатно и без регистрации в формате fb2, rtf, epub, pdf, txt, читать книгу онлайн или купить книгу в интернет-магазине.
Несколько слов о том, о чем собственно пойдет здесь речь и для чего это все было написано. Очень трудно сформулировать это все кратко, но тем не менее я попытаюсь.
Как правило, большинство книг по программированию являются либо пересказом статей 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 для реализации того, что этот объект делает
автоматически!
Вобщем, использование файла базы данных серьезно облегчает
жизнь программиста