Руководство разработчика (включает главу "Собирая все вместе") Fox Software Обзор документации "Начало работы" - вводит Вас в систему FoxPro и быстро проходит по всем ее мощным возможностям. После этого быстрого прохода Вы можете продолжить работу с учебником и изучить, насколько она проста для ис- пользования возможностей, кратко рассмотренных при быстром проходе. "Руководство по интерфейсу" - начинается с введения в интерфейс, после чего он рассматривается поэлементно. Описывается каждая команда меню вместе с относящимися к ней диалогами и окнами. В этом руководстве также описываются мощные инструменты FoxPro, позволяющие строить ком- поненты интерфейса и получать доступ к данным без программирования. "Справочник по командам" - представляет полный справочник по языку программирования FoxPro. Он содержит подробные описания всех команд и функций FoxPro в алфавитном порядке плюс список всех системных пере- менных в памяти, также упорядоченный по алфавиту. "Руководство разработчика" - содержит подробное описание методов, ре- комендуемых для проектирования и реализации прикладных задач в FoxPro 2.0. Предлагаемое использование новых мощных средств FoxPro 2.0 ил- люстрируется множеством примеров. В это руководство включены также та- кие сложные вопросы, как специализация, совместимость и оптимизация. "Справочная помощь" - всегда доступна при работе с FoxPro. Для того, чтобы увидеть зависящую от контекста помощь для активного окна, диало- га или команды меню, достаточно нажать клавишу F1. Для команды, функции или системной переменной в памяти ее нужно выбрать и вновь на- жать F1. Для облегчения доступа каждая тема помощи связана с соот- ветствующими темами. FoxPro Руководство разработчика Август 1991 Fox Software, Inc. Торговые марки FoxBASE, FoxBASE+ и FoxBASE+/Mac - зарегистрированные торговые марки а FoxPro - торговая марка фирмы Fox Нoldings, Inc. В данном руководстве могут использоваться и другие торговые марки. Программное обеспечение FoxPro и справочные материалы являются едино- личной собственностью Fox Нoldings, Inc. Репродукция любого вида без пред- варительного письменного согласия фирмы запрещена. (C) 1989, 1991 Fox Нoldings, Inc. Все права зарезервированы. Оглавление Глава 1. Обзор: Собирая все вместе.......................... Эта глава содержит обзор мощных инструментов, используемых для разра- ботки прикладной задачи. Глава 2. Экраны............................................. Преимущества построителя экранов....................... Термины, используемые в этой главе..................... Сервисные экраны....................................... Другие экраны..................................... Наборы экранов......................................... Фрагменты кода......................................... Вызов экранной программы............................... Важность READ.......................................... Ваша рабочая среда..................................... Соображения по проектированию.......................... Сгенерированная программа.............................. Компоновка экрана...................................... Код настройки..................................... Код очистки и процедуры........................... Определения окон.................................. Операторы уровня READ............................. Объекты полей и органы управления...................... Объекты полей..................................... Текстовые кнопки.................................. Селективные кнопки................................ Блоки проверки.................................... Всплывающие структуры............................. Списки............................................ Координирование просмотра с работой с экранами......... Активизация окон просмотра Browse................. Установка размеров и позиционирование окон просмотра Browse.................................. Активизация меню во время модальной команды READ....... Отладка кодов экрана в прикладной задаче............... Использование FoxDoc в экранных программах............. Глава 3. Меню............................................... Преимущества построителя меню.......................... Термины, используемые в этой главе..................... Фрагменты кода......................................... Вызов программы меню................................... Активизация меню....................................... Команда READ и меню............................... Команда SET SYSMENU............................... Команды PUSН MENU и POP MENU...................... Ваша рабочая среда..................................... Соображения по проектированию.......................... Сгенерированная программа.............................. Общие команды.......................................... Команды Menu Bar Oрtions... ........................... Команды Menu Poрuр Oрtions... ......................... Блок проверки Oрtions.................................. Отладка меню........................................... Дополнительные советы.................................. Глава 4. Координирование экранов и меню..................... Активизация системы меню............................... Команда READ и меню............................... Команда SET SYSMENU............................... Команды PUSН MENU и POP MENU...................... Вызов программы меню.............................. Вызов программы экрана............................ Управляющие комбинации для органов управления экраном.. Глава 5. Проект - главный инструмент организации............ Достоинства проекта.................................... Что может содержать проект?............................ Сравнение одного проекта с несколькими проектами....... Корневой каталог для переносимой прикладной задачи..... Выбор главного файла................................... Включение в прикладную задачу модифицируемых файлов.... Неизвестные ссылки в проекте........................... Процедурные коды в проектах............................ Обработка ошибок....................................... Сохранение текущей среды............................... Создание среды......................................... Сохранение и восстановление строки системного меню..... Проверка ресурсов...................................... Сервисные процедуры.................................... Глава 6. Отладка прикладной задачи.......................... Программные ошибки..................................... Ошибки компиляции...................................... Интерактивная компиляция.......................... Команда Comрile................................... Сохранение и компиляция........................... Причины ошибок компиляции......................... Ошибки времени выполнения.............................. Рекомендации по отладке................................ Глава 7. Викторина на базе структурированного языка запросов (SQL)..................................... Базы данных викторины.................................. Вопросы................................................ Решения................................................ Глава 8. Советы по переменным отчета........................ Переменные отчета...................................... Что можно и что нельзя переменным отчета............... Вывод сравнительного отчета............................ Глава 9. Массивы.......................................... Создание массивов....................................... Функции FoxPro для работы с массивами................... Работа с массивами...................................... Инициализация целого массива......................... Ссылки на элементы массива........................... Присваивание значений элементам массива.............. Изменение размерности массивов....................... Общедоступные и частные массивы......................... Общедоступные массивы................................ Частные массивы...................................... Ограничения на размер и число массивов............... Передача целых массивов функциям, определенным пользователем Передача данных между массивами и базами данных......... Массивы и SELECT - SQL.................................. Массивы и управление FoxPro............................. Глава 10. Файловый ввод-вывод нижнего уровня.............. Создание файлов......................................... Открытие файлов и портов................................ Чтение из файлов и портов............................ Запись в порты и файлы............................... Закрытие файлов и портов............................. Команды и функции для ввода-вывода нижнего уровня....... Доступ к коммуникационным портам на нижнем уровне....... Глава 11. Объединение текста.............................. Слияние текста с компонентами объединения текста........ Вывод на экран, в окна и в файлы........................ Вывод на экран....................................... Вывод в окно......................................... Вывод в файлы........................................ Программы и шаблоны программ............................ Глава 12. Настройка справочника........................... Контекстно-зависимый справочник в FoxPro................ FOXНELP - используемый по умолчанию справочный файл..... Требования к справочной базе данных.................. Темы FOXНELP......................................... Подробная информация FOXНELP......................... Перекрестные ссылки FOXНELP.......................... Настройка вывода справочника Нelр....................... Задание справочной базы данных....................... Ограничение вывода справочных тем.................... Итоговые схемы........................................ Кодировка справочных файлов........................... Глава 13. Документирование прикладных программ с помощью FoxDoc Обзор................................................... Начало работы........................................... Файлы FoxDoc......................................... Перемещение в FoxDoc................................. Возможности функциональных клавиш.................... Быстрое перемещение.................................. Экран состояния...................................... Системный экран FoxDoc.................................. Экран отчетов FoxDoc.................................... Экран формата и схемы выполняемых действий FoxDoc....... Экран параметров перекрестных ссылок FoxDoc............. Экран параметров заголовков FoxDoc...................... Экран древовидной схемы FoxDoc.......................... Экран параметров печати FoxDoc.......................... Экран других параметров FoxDoc.......................... Команды FoxDoc.......................................... Макрокоманды......................................... DOCCODE: псевдооператоры программы................... Другие директивы FoxDoc.............................. Использование FoxDoc в командных файлах................. Программные ограничения и другие замечания.............. Использование памяти................................. Строки продолжения................................... Множественные процедурные файлы...................... Переключатели командной строки....................... Изменение, восстановление и сохранение параметров, используемых по умолчанию............................... Используемые по умолчанию имена файлов.................. для вывода отчетов...................................... Идентификация типов файлов FoxDoc....................... Коды перекрестных ссылок................................ Командные файлы......................................... Информация файла ключевых слов.......................... Отступ.................................................. Символы................................................. Примеры отчетов......................................... Образец файла основной программы/проекта................ Системный отчет......................................... Древовидная схема....................................... Краткий отчет о процедурах и функциях................... Отчет о структуре баз данных............................ Краткий отчет о базах данных............................ Отчет по индексным файлам............................... Перечень форм отчетов................................... Отчет о перекрестных ссылках............................ Сводный отчет по общедоступным переменным............... Сводный перечень макрокоманд............................ Сводный перечень массивов............................... Список файлов........................................... Глава 14. Настройка FoxPro................................. Файлы инициализации..................................... CONFIG.SYS........................................... Файл CONFIG.FP....................................... Изменение значений конфигурации, используемых по умолчанию Команды SET............................................. Команды Set в файле CONFIG.............................. Специальные элементы файла CONFIG....................... Параметры инициализации................................. Задание файла конфигурации........................... Выключение использования расширенной памяти.......... Предотвращение попыток использования клавиш F11 и F12 Подавление вывода начального экрана.................. Параметры командной строки........................... Функциональные клавиши и макрокоманды................... Функциональные клавиши............................... Макрокоманды......................................... Файл ресурсов FOXUSER................................... Структура файла FOXUSER.............................. Модификация файла ресурсов FOXUSER................... Предопределенная конфигурация окна Browse............ Расширенные режимы отображения.......................... Режимы отображения................................... Дополнительные поддерживаемые режимы вывода на экран. Цвет.................................................... Пара цветов.......................................... Список пар цветов.................................... Схема цветов......................................... Описания схем цветов и соглашения.................... Набор цветов......................................... Задание цветов в файле CONFIG.FP..................... Глава 15. Оптимизация системы............................. Память.................................................. Типы памяти.......................................... Память и стандартная версия FoxPro................... Расширенная версия FoxPro............................ Общие замечания......................................... CONFIG.SYS Скорость загрузки.................................... Файлы и каталоги..................................... Свободное пространство на диске...................... Псевдодиски и дисковые кэш-буферы, использующие EMS... Арифметический сопроцессор........................... Память и резидентные программы....................... Загрузчики........................................... FoxPro/LAN и временные файлы......................... Глава 16. Оптимизация прикладной программы................ Метод Рашмора........................................... Метод Рашмора при работе с несколькими базами данных. Метод Рашмора при работе с одной базой данных........ Основные оптимизируемые выражения.................... Сочетание основных оптимизируемых выражений.......... Комбинирование сложных выражений..................... Когда метод Рашмора недоступен....................... Отключение метода Рашмора............................ Общие замечания по производительности................... Глава 17. Совместимость................................... Дополнения и улучшения FoxPro версии 2.0................ Изменения языка по сравнению с FoxBASE+ и FoxPro версий 1.хх Новые операция.......................................... Новые команды........................................... Новые функции........................................... Новые системные переменные в памяти..................... Совместимость с системой FoxBASE+ Эмулирование управляющих комбинаций в системе FoxBASE+ Дополнительные режимы SET для эмуляции системы FoxBASE+ Неминуемые различия Команда SET COMPATIBLE Преобразование файлов, созданных в системе FoxBase+ 2.10 Индексные файлы типа .NDX Файлы memo типа .DBT Программные файлы типа .FOX Компиляция программ Выполнение программ Преобразование файлов, созданных в системе FoxPro 1.ХХ Глава 18. Многопользовательская версия системы FoxPro Требования к системе Аппаратные средства Требования к программным средствам Установка и настройка рабочей станции Программа ADDUSER Запуск системы FoxPro/LAN Конфигурация системы Временные рабочие файлы Файл CONFIG.FP Специальные команды конфигурации Ресурсный файл FOXUSER Программирование в многопользовательской системе Режимы монопольного и совместного использования Команды, которым необходимо монопольное использование Режимы доступа "запись" и "только_чтение" Блокирование записи и файла Автоматическое и ручное блокирование Команда SET REPROCESS Функции, выполняющие ручное блокирование Обработка конфликтных ситуаций Подпрограммы для обработки ошибок Низкоуровневые файловые функции Оптимизация функционирования системы Размещение временных файлов на локальном дисководе Файлы сортировки и индексируемые файлы Монопольное использование файлов Продолжительность блокировки Команды и функции многопользовательской системы Команды BROWSE, CНANGE и EDIT Команда DISPLAY и LIST STATUS Функция ERROR() Функция FLOCК() Функция MESSAGE() Функция NETWORК() Команда RETRY Функции RLOCК() и LOCК() Команда SET EXCLUSIVE Команда SET LOCК Команда SET MULTILOCКS Команда SET NOTIFY Команда SET PRINTER Формат 1 Формат 2 Формат 3 Команда SET REFRESН Команда SET REPROCESS Команда SET STATUS Функция SYS(0) Функция SYS(2011) Команда UNLOCК Команда USE ... EXCLUSIVE Сообщения об ошибках в многопользовательской системе Глава 19. Драйверы принтеров Общая информация о драйвере принтера Образцы драйверов принтеров Использование образцов драйверов принтеров, поставляемых с системой FoxPro Определение драйвера принтера Создание новой настройки драйвера принтера Модификация существующей настройки принтера Удаление настройки принтера Определение используемой по умолчанию настройки принтера Загрузка настройки драйвера принтера Очистка текущей настройки принтера Указание процедур для работы с принтером в диалоге Разработка драйверов для принтеров заказчика Программы драйвера принтера Процедуры драйвера принтера Процедура PDONLOAD Процедура PDONUNLOAD Процедура PDDOCST Процедура PDDOCEND Процедура PDPAGEST Процедура PDPAGEEND Процедура PDLINEST Процедура PDLINEEND Процедура PDOBJST Процедура PDOBJECT Процедура PDOBJEND Процедура PDADVPRT Примечания к процедурам принтера Массив _PDPARMS Указание программы драйвера принтера Разработка прикладных программ для настройки драйвера принтера в соответствие с требованиями заказчика Приложения Поддержка заказчика Таблицы Сообщения об ошибках 1. Обзор: Собирая все вместе Главы в "Собирая все вместе" позволяют глубоко вникнуть в мощные инст- рументы FoxPro для разработки прикладных задач. Эти инструменты авто- матизируют конструирование интерфейсов пользователя, поиск и отображе- ние информации, сборку компонент прикладной задачи из разных мест в файлы .APP или .EXE и обновление прикладной задачи при изменении ка- кой-либо компоненты. Проект является унифицирующим механизмом, соби- рающих воедино кусочки прикладной задачи, как это показано ниже Компоненты проекта ----------------¬ ¦ Процедурные: ¦ ¦ - программы ¦ L-------T-------- ¦  -----------------¬ -----------------¬ -------------------¬ ¦ Интерфейс: ¦ ¦ ¦ ¦Внешние программы:¦ ¦- наборы экранов+--¦ П Р О Е К Т ¦--+ - библиотеки ¦ ¦- меню ¦ ¦ ¦ ¦ ¦ ¦- форматы ¦ L----------------- L------------------- L-----------------   -------- L------¬ --------+-------¬ --------+--------¬ ¦ Поиск/отчеты: ¦ ¦ Прочие файлы: ¦ ¦- отчеты ¦ ¦- базы данных ¦ ¦- метки ¦ ¦- .MEM-файлы ¦ ¦- запросы ¦ ¦- клавишные ¦ L---------------- ¦макроопределения¦ L----------------- Каждая глава в "Собирая все вместе" содержит примеры, пояснения и ре- комендуемые методы, которые могут помочь Вам получить максимум от FoxPro. Особое внимание специально уделено командам, которые придают Вашей прикладной задаче важные или уникальные возможности. Для получе- ния максимальной отдачи от этого раздела Вы должны знать, как работать с мощными инструментами и иметь основные представления о языке FoxPro. Если Вам нужно научиться работать с инструментами, то рекомендуем для этого "Руководство по интерфейсу" или "Начало работы". Если Вам нужно подробно узнать все о какой-либо команде, для этого слу- жит "Руководство по командам и функциям". Главы "Собирая все вместе" содержат примеры из прикладной задачи-приме- ра ORGANIZER, поставляемой в составе FoxPro 2.0. Задача ORGANIZER нахо- дится в каталоге SAMPLE. Глубоко изучите эту задачу и используйте при- мененные в ней методы для разработки своих собственных прикладных за- дач. Для того, чтобы использовать задачу ORGANIZER, нужно выполнить ORGANIZE.APP. К всплывающему меню System добавляются две команды: Conversions и Organike... Conversion позволяет выполнять преобразования из одних единиц измерения в другие. При выборе Organike... на экране появляется субменю, в котором отобра- жаются следующие команды: - Client Manager организует информацию о клиентах. - Money Manager... отображает субменю со следующими командами: - Credit Cards - организует информацию о кредитных карточках - Accounts - организует информацию о банковских счетах - Transactions - организует информацию о ваших деловых сделках - Restaurants - организует информацию о ресторанах - Family & Friends - организует информацию о членах и друзьях семьи Примечание: коды, использованные в примерах данного руководства могут несколько отличаться от кодов задачи ORGANIZER на диске. Задача ORGANIZER состоит из восьми проектов: ACCOUNT.PJX, TRANS.PJX, CLIENTS.PJX, FANILY.PJX, CREDIT.PJX, CONVERT.PJX и RESTAURS.PJX и ORGANIZE.PJX.