Visual FoxPro ― это мощное средство для создания настольных и распределённых приложений, работающих с базами данных. Его основные достоинства ― удобный интерфейс разработчика, простота базового языка, мощный диалект SQL для эффективной работы с локальными и удалёнными данными, поддержка технологии COM и возможностей, предоставляемых Windows API.
Вы можете создавать на Visual FoxPro приложения, не только ни в чём не уступающие приложениям, созданным с помощью Visual Basic или Delphi, но и превосходящие их по удобству и скорости работы с данными.
Трудно написать книгу о программировании, которая была бы понятна начинающим и интересна профессионалам. Поэтому вы найдете здесь достаточно разноплановый материал.
Первая часть книги, написанная Татьяной Агафоновой (кроме одиннадцатой главы), содержит базовое описание Visual FoxPro. В ней рассматриваются основы языка, особенности среды разработки, поддержка баз данных и вопросы, связанные с разработкой интерфейса пользователя. Материал первой части рассчитан в основном на тех, кто делает первые шаги в изучении Visual FoxPro. В то же время, некоторые разделы будут интересны и более подготовленным программистам.
Вторая часть, написанная Вячеславом Клепининым, адресована тем, кому уже стало тесно в рамках базовых возможностях Visual FoxPro. В ней вы познакомитесь с основами технологии COM, научитесь формировать отчеты в Microsoft Excel и Microsoft Word. Большое внимание уделено применению в ваших приложениях функций Windows API для поддержки графики и мультимедиа.
В третьей части рассматриваются вопросы создания справочной системы и распространения приложений. Эти сведения, безусловно, будут полезны всем разработчикам программного обеспечения на Visual FoxPro. Все главы этой части, кроме главы 27, написаны Татьяной Агафоновой.
|
КЛЕПИНИН ВЯЧЕСЛАВ БОРИСОВИЧ
Специалист с более чем 25-летним стажем по разработке и внедрению программных продуктов. Программированием на Visual FoxPro увлёкся в 1997 году и с тех пор является его стойким поклонником. |
|
АГАФОНОВА ТАТЬЯНА ПЕТРОВНА
Профессиональный программист. Занимается программированием на FoxPro (Visual FoxPro) более пятнадцати лет. |
Авторы (активно практикующие программисты) заранее приносят свои извинения за допущенные неточности, опечатки и методические погрешности, которые вы, возможно, обнаружите в этой книге. Мы готовы выслушать все ваши замечания и пожелания.
Авторы так же выражают огромную признательность и благодарность нашим общепризнанным гуру и завсегдатаям foxclub.ru за активное участие в обсуждении материалов и доброжелательную критику.
Часть 1. Базовое программирование в Visual FoxPro
Глава 1. Введение в Visual FoxPro |
Элементы языка
Команды
Литералы и константы
Переменные и массивы
Процедуры и функции
Математические, числовые, статистические и битовые функции
Символьные функции
Выражения и операторы
Управляющие конструкции
Таблицы, курсоры и базы данных
Типы табличных данных
Ключевые поля и индексация таблиц
Индексация по сложным выражениям и использование хранимых процедур
Отношения (связи) между таблицами
Целостность данных при модификации связанных таблиц
Триггеры и хранимые процедуры
Классы и объекты
Объектно-ориентированное программирование
Типы объектов
Свойства объектов
События и методы
Введение в классы Visual FoxPro
Базовые классы
Характеристики ООП
Инкапсуляция
Наследование и подклассы
Полиморфизм
Стандартные диалоги Visual FoxPro |
|
Глава 2. Интерактивная среда разработки приложений (IDE) |
Главное окно Visual FoxPro
Главное окно и его заголовок
Главное меню
Панель инструментов Standard
Окна Command, Properties и Document View
Менеджер проекта
Мастера, конструкторы и построители
Мастера: назначение и области применения
Конструкторы как основной инструмент разработчика
Построители
IntelliSense Manager
Применение IntelliSense Manager
Настройка параметров
Task Pane
Toolbox
Debugger
Вкладка Debug
Настройка среды
Настройка среды разработки
Настройка среды выполнения. Файл Config.fpw
Использование справочной документации |
|
Глава 3. Проектирование приложений |
Менеджер проекта и определение структуры приложения
Вкладка Projects — проекты
Компоненты приложения (типы файлов), их размещение
Узлы Менеджера проектов
Узел Data
Узел Documents
Узел Class Libraries
Узел Code
Создание компонентов проекта в Менеджере проектов
Главный (стартовый) файл приложения
Главная процедура приложения и процедурные файлы
Ресурсы
Узел Other
Исполняемые файлы
Создание простого исполняемого модуля |
|
Глава 4. Формы |
Форма как основной компонент приложения
Модальные и немодальные формы. Форма верхнего уровня
Модальность
Типы интерфейса. SDI или MDI?
Диалоги
Свойства, события и методы экранных форм
Создание экранной формы. Конструктор форм
Панели инструментов Конструктора форм
Панель инструментов Form Designer
Панель инструментов Form Controls
Панель инструментов Layout
Пункты меню Form и Format
Размещение на форме элементов управления
Использование окна свойств для работы с элементами управления
Добавление в форму пользовательских свойств и методов
Добавление и редактирование методов
Сохранение формы
Управление формами |
|
Глава 5. Элементы управления |
Порядок размещения элементов управления на форме
Создание элементов управления с помощью Form Controls Toolbar
Создание элементов управления через библиотеки классов
Создание элементов управления через DataEnvironment
Венгерская нотация
Список элементов управления
CheckBox (Флажок)
ComboBox (Комбинированный список)
Command Button (Кнопка)
Command Group (Группа кнопок)
Container (Контейнер)
Control
Custom
EditBox (Редактируемое поле)
Grid
HyperLink (Ссылка)
Image (Графический объект)
Label (Этикетка)
Line (Линия)
List Box (Список)
OLEBound Control
OLE Control
Option Group (Группа переключателей)
PageFrame (Набор страниц)
Shape (Контур)
Spinner (Счетчик)
TextBox (Текстовое поле)
Timer (Таймер)
Toolbar |
|
Глава 6. Проектирование баз данных |
Свободные таблицы
Контейнер базы данных
Кодовые страницы
Нормализация данных
Отношение "один-к-одному"
Отношение "один-ко-многим"
Отношение "много-к-одному"
Отношение "много-ко-многим"
Ключевое поле
Проектирование нормализованных баз данных
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Создание и модификация свободных таблиц
Создание таблиц с помощью Конструктора таблиц
Индексация
Регулярные и уникальные индексы
Индексация по сложным выражениям и использование хранимых процедур
Поиск в индексированной таблице
Выбор активного индекса в процессе выполнения
Отношения (связи) между таблицами
Создание таблицы программным способом
Создание и модификация баз данных
Создание базы данных с помощью конструктора
Диаграмма отношений между таблицами
Определение свойств полей
Определение свойств таблицы
Триггеры
Хранимые процедуры
Дополнительные возможности контроля данных и их целостности
Курсоры
Локальные и удаленные представления (назначение) |
|
Глава 7. Работа с данными |
Управление данными
Открытие баз данных и таблиц
Навигационные команды
Добавление данных в поля типа Blob, Memo и General
Фильтры
Реляционные команды
Использование транзакций
События базы данных
Локальное представление данных
Создание представления (View) с помощью конструктора представлений
Что такое Rushmore? |
|
Глава 8. Работа с удалёнными данными |
Введение в технологию "клиент-сервер"
Установка соединения с удаленными данными
Установка источника данных ODBC
Именованное соединение
Удаленные представления (Remote Views)
Сквозной запрос (SQL pass-through)
MS SQL Server
Способы соединения с сервером
Использование команд T-SQL
Краткий справочник по Transact-SQL
Организация взаимодействия с удаленным источником данных
Вызов хранимых процедур
ActiveX Data Objects (ADO)
Применение CursorAdapter
Работа с полем, имеющим свойство IDENTITY
Особенности работы с полями типа Blob
Поддержка XML
Парсеры (Анализаторы) |
|
Глава 9. Отображение табличных данных на форме |
DataEnvironment (Среда данных)
Конструктор Data Environment
Свойства, события и методы объекта DataEnvironment
Сессии данных
Табличное представление данных
Grid (Сетка)
Объектная модель Grid
Визуальные эффекты Grid
OLE-объекты в таблицах
Отображение данных в Grid
Навигация данных |
|
Глава 10. Использование внешних компонентов |
Общие сведения об ActiveX управляющих элементах
Описание и настройка отдельных компонентов ActiveX
Календарь
TreeView
Управляющий элемент ActiveX Bound Control |
|
Глава 11. Создание пользовательских классов |
Конструктор классов
Классы и библиотеки классов
Создание классов в Конструкторе классов
Обозреватель классов
Программное создание классов
Определение класса
Класс Custom
Управление временем жизни объектов
Класс Collection
Создание
Свойства
Методы
Применение
Класс Empty
Функции для работы с классами и объектами
Функции ADDPROPERTY() и REMOVEPROPERTY()
Функция ACLASS()
Функция AMEMBERS()
Функция GETPEM()
Функция PEMSTATUS() |
|
Глава 12. Создание меню |
Создание меню в Конструкторе меню
Меню, заменяющее главное окно Visual FoxPro
Меню формы верхнего уровня
Раскрывающееся (контекстное) меню
Команды создания меню
Меню в SDI- и MDI-формах
Вызов меню
Вызов из меню методов формы
Свойства меню
Восстановление главного меню Visual FoxPro |
|
Глава 13. Отчёты |
Введение в систему отчетов
Непосредственный вывод на принтер
Стандартный отчет (Quick Report)
Мастер отчетов
Конструктор отчетов
Среда окружения отчета
Панель инструментов Конструктора отчетов
Выполнение надписей в отчете
Размещение табличных полей в отчете
Группировка данных отчета
Переменные в отчете
Разметка страницы
OLE-объекты в отчете
Просмотр и печать отчета
Многоколоночный отчет
Создание этикеток
Особенности многополосных отчетов
Управление отчетами — объект ReportListener
Свойства, методы и события объекта ReportListener |
|
Глава 14. Обработка ошибок |
Синтаксические ошибки
Ошибки в логике программы
Ошибки времени выполнения (Run-Time Error)
Инструменты для определения ошибок
Обработка ошибочных ситуаций
Стандартный обработчик ошибок
Команда ON ERROR
Конструкция TRY... CATCH... FINALLY
Coverage Profile |
|
Часть 2. Расширенное программирование в Visual FoxPro
Глава 15. Операции с файлами |
Импорт данных
Диалог Import
Мастер импорта данных
Команда Import From
Команда Append From
Экспорт данных
Диалоговое окно Export
Команда Export To
Команда Copy To
Копирование и удаление файлов
Использование функции ALINES()
Низкоуровневый доступ к файлам
Открытие и закрытие файлов
Работа с файлами последовательного доступа
Работа с двоичными файлами
Обработка ошибок
Изменение размера файла
Проверка наличия файла и даты изменения
Структура таблиц формата DBF
Заголовок таблицы
Блоки записей таблицы
Изменение кодовой страницы
Редактор файлов HexEdit
Специальные таблицы Visual FoxPro |
|
Глава 16. Технология COM |
Введение в технологию COM
Процессы и потоки
Идентификаторы
Информация о COM-объектах в реестре Windows
Интерфейсы
Раннее и позднее связывание в COM
Среда Visual FoxPro и поддержка COM
Программное создание COM-сервера
Информация о классе в Object Browser
Тестирование COM-сервера vfpserver
Особенности объявления COM-класса в Visual FoxPro
Выбор базового класса для создания COM-класса
Работа с массивами
Обработка ошибок
Региональные настройки
Создание COM-класса в Конструкторе классов
Тестирование: клиент на Visual FoxPro
Тестирование: клиент — Microsoft Excel
Окончательная доработка приложения VfpTextEdit
Сокрытие "лишних" методов и свойств
Распределенные приложения
Распределенные COM (DCOM)
Приложения COM+
Регистрация COM-серверов |
|
Глава 17. Автоматизация MS Office |
Введение в Microsoft Office
Объекты
Использование раннего связывания
Объекты-коллекции
Макросы
Определение значений констант
Константы Microsoft Office
Автоматизация Microsoft Excel
Объектная модель Microsoft Excel
Оформление отчетов
Формирование отчетов
Уменьшение времени формирования отчета
Печать
Уничтожение объекта Microsoft Excel
Автоматизация Microsoft Word
Объектная модель Microsoft Word |
|
Глава 18. Компоненты ActiveX |
Общие сведения об использовании компонентов
Выбор и размещение компонента на форме
Лицензирование
Интерактивная установка свойств компонента
Компонент ProgressBar
Компонент Slider
Компонент RichText
Свойства
Свойства типа SelXXX
Методы
Контекстное меню RichText
Работа с буфером обмена
Форматирование RTF-документа
Компонент Web Browser
Метод Navigate2
Окно справки, использующее Web Browser
Интерактивные отчеты в Web Browser
Другие методы компонента Web Browser
Функция SYS(2333) |
|
Глава 19. Windows API |
Введение в Windows API
Объявление функций Windows API в Visual FoxPro
Базовые типы данных в С++
Типы данных Windows
Указатели
Структуры
Прототипы функций
MSDN как источник информации о прототипах функций
Формирование структур в Visual FoxPro
Передача массивов в функцию Windows API
Форматы символьных данных ANSI и Unicode
Многократное объявление функций Windows API
Удаление зарегистрированных функций
Распределение памяти для структур с указателями
Распределение памяти Windows
Распределение памяти внутри процесса
Работа с указателями в Visual FoxPro
Освобождение распределенной памяти
Применение функций Windows API |
|
Глава 20. Работа с Реестром Windows |
Структура реестра
Использование функций Windows API
Открытие ключа реестра
Чтение значений ключа
Закрытие ключа и сохранение реестра
Пример чтения информации из реестра
Создание ключа
Запись и удаление значений ключа
Другие API-функции для работы с реестром Windows
Использование Windows Scripting Host
Создание разделов и запись значений ключей реестра
Чтение информации из реестра
Удаление информации из реестра
Изменение значения ключа
Дополнительные возможности объекта WshShell
Запуск приложения
Имитация нажатия клавиш клавиатуры
Просмотр значений переменных окружения Windows |
|
Глава 21. Применение GDI+ |
Введение в GDIPlus
Векторная и растровая графика
Форматы графических файлов
Инициализация и завершение GDIPlus
Объектная модель GDIPlus
Поддержка формата Unicode
Обработка ошибок
Класс VFPGdiplus
Загрузка, сохранение и удаление изображений
Загрузка изображения из файла.
Сохранение изображения в файле
Загрузка изображения из поля таблицы или переменной
Сохранение изображения в переменной (в поле таблицы)
Использование буфера обмена Windows
Информация об изображении
Определение размеров растра
Определение разрешения растра
Определение графического формата изображения
Операции над изображениями
Поворот и отражение изображения
Отсекание прямоугольного фрагмента изображения
Создание растра
Форматы пикселов
Объект Graphics, связанный с растром
Изменение размеров изображения
Обзор функций для копирования изображений |
|
Глава 22. Рисование в GDI+ |
Цвета, единицы измерения и координаты
Концепция цвета и прозрачности. Метод ARGB
Использование различных единиц измерения
Система координат
Инструментарий
Перья
Кисти
Графические примитивы
Антиалиасинг
Прямые и ломаные линии
Сплайны
Прямоугольники
Многоугольники
Окружности и эллипсы
Сектора и дуги
Рисование текстовых строк
Объекты FontFamily и Font
Управление качеством отображения символов
Определение длины текстовой строки
Форматирование текста
Рисование изображений |
|
Глава 23. Графический вывод в GDI+ |
Печать на принтере
Создание графического контекста принтера
Создание связанного с принтером объекта Graphics
Определение размера листа принтера
Документ принтера
Класс для печати на принтере
Рисование в окне формы
Определение "правильного" HWnd
Перехват оконных сообщений
Создание связанного с окном объекта Graphics
Форма для рисования
Класс для рисования в окне формы
Динамическое отображение диаграмм
Применение GDIPlus в отчетах
События, методы и свойства объекта ReportListener
Создание отчета
Процедура запуска отчета
Координатные преобразования
Манипуляции с цветом
Объект ImageAttributes
Пример корректировки цветовой гаммы изображения
Еще несколько функций GDIPlus...
Перо, рисующее кистью
Изменение вида начала или конца линии
Изменение и установка цвета пикселов
Обзор классов
Класс GdipImages
Класс GdipPrinter
Класс GdipWindow |
|
Глава 24. Мультимедиа |
Запись и воспроизведение WAV-файлов
Запись звукового файла
Воспроизведение звукового файла
Воспроизведение стандартных звуков Windows
Интерфейс управления мультимедиа (MCI)
Команды MCI
Особенности вывода видео на форме
Класс для управления MCI
Проигрыватель звуковых файлов
Проигрыватель видеофайлов
Microsoft Agent
Объектная модель Microsoft Agent
Коллекция персонажей Characters
Объект Character (персонаж)
Управление анимацией. Объект Request
Управление воспроизведением речи
Объект Balloon
Объект AudioOutput
ActiveX-компонент Microsoft Agent
Использование Ассистентов Microsoft Office 2003
Обработка ошибок Microsoft Agent |
|
Часть 3. Распространение приложений
Глава 25. Описание демо-проекта (делопроизводство) |
Постановка задачи
Определение языка программирования, создание структур для хранения данных
Определение состава проекта
Разработка главного модуля приложения
Разработка меню
Разработка форм
Файл помощи |
|
Глава 26. Разработка справочной документации |
Строка состояния
Справка в формате "What's This?" ("Что это?")
Диалоговые окна
Описание работы с HTML Help Workshop
Создание тем справочной системы
Содержание
Предметный указатель
Определение ссылок на фрагменты справки в свойствах HelpID объектов
Определение псевдонимов тем
Определение параметров проекта справочной системы
Компиляция и тестирование справочной системы
Команды Visual FoxPro для управления справочной системой
Формирование файла проекта справочной системы |
|
Глава 27. Распространение приложений |
Введение в InstallShield Express
Установка InstallShield Express
Запуск InstallShield Express
Создание дистрибутива приложения
Общие установки
Спецификация данных приложения
Вставка пункта в меню Пуск и иконки приложения
Определения набора диалогов Мастера установки
Определение требований к среде выполнения
Сборка дистрибутива
Редактирование дистрибутива приложения |
|
Глава 28. Полезные советы |
1. Как изменить кодовую страницу таблицы?
2. Как прочитать список файлов, расположенных в одном каталоге?
3. Вы хотите закрыть свой проект от взлома, хотя бы от не очень компетентных людей
4. Вы хотите ввести пароль и зашифровать его
5. Вы хотите, чтобы Ваше приложение запускалось только один раз на каждом компьютере
6. Как вычислить определенные даты
7. Как сделать всплывающую подсказку.
8. Как работать с INI-файлами?
9. Как сделать ссылку?
10. Как <прикрепить> созданную вами иконку к проекту?
11. Как организовать ProgressBar? ("градусник","термометр")
12. Обновление версий
13. Преобразовать "Сидоров Василий Иванович" в "Сидоров" "Василий" "Иванович"
14. Анимированная иконка
15. Как создать задание на SQL-Server?
16. Как запустить архиватор arj из VFP, чтобы он при запуске не мелькал на экране?
17. Как определить серийный номер жесткого диска?
18. Отображение текста на форме в виде бегущей строки
19. Создание каталога для отчетов и создание ссылки на него на рабочем столе пользователя
20. Определение информации о дисках компьютера
21. Создание <на лету> группы кнопок или переключателей (из таблицы)
22. При нажатии клавиши Enter первая колонка Grid скрывается за границу Grid
23. Контекстный поиск в Grid
24. Информирование пользователя о выполнении какого-либо процесса
25. Как вернуть название месяца по его номеру
26. Как выгрузить неактивную программу у пользователей
27. Как разместить на форме часы
28. Как заставить цифровую клавиатуру отображать точку при любой раскладке (Ru/En)
29. Как заменить сообщение "Invalid Date" при вводе некорректной даты
30. Как получить программный код создания структуры базы данных
31. Как перенести данные из текстового файла в таблицу
32. Получение данных об установленных программных продуктах
33. Из какой папки запущена программа (EXE-файл)
34. VFP + Internet Explorer
35. Связь VFP и Lotus Notes |
|
Приложения |
1. Установка и настройка Visual FoxPro
2. Перечень команд типа SET
3. Справочник по встроенным функциям Visual FoxPro
4. Свойства и методы объектов Visual FoxPro
5. Содержание компакт-диска |
|
Автор публикации
2
Комментарии: 5Публикации: 200Регистрация: 25-06-2000