- •Министерство образования и науки Российской Федерации
- •Содержание
- •Лабораторная работа №1-2 анализ поведения системы с использованием контекстных диаграмм йордана – де марко
- •Лабораторная работа №3 анализ данных. Построение инфологической модели данных бд
- •Задание 1
- •Задание 3
- •Задание 5
- •Задание 6
- •Задание 7
- •Задание 9
- •Лабораторная работа №4 преобразование инфологической модели данных в реляционную на основе правил преобразования
- •Лабораторная работа №5 построение реляционной моедли бд с использованием метода нормальных форм
- •Лабораторная работа №6 Проект как средство объединения элементов приложения. Создание базы данных в состве проекта visual foxpro
- •Лабораторная работа №7 создание базы данных в составе проекта vfp
- •Лабораторная работа №8 создание форм как средства работы с таблицами
- •Форма как средство ввода и редактирования данных
- •Создание формы с помощью конструктора форм
- •Окно конструктора форм
- •2. Создание формы
- •3. Настройка параметров формы
- •4. Среда окружения формы
- •6. Размещение объектов в форме
- •6.1. Размещение полей таблиц и надписей к ним с использованием построителя формы
- •6.2. Текстовая информация
- •6.3. Поле ввода
- •6.4. Использование построителя для создания формы
- •6.5. Поле редактирования
- •6.6. Кнопки управления
- •6.6.1. Размещение одиночных кнопок
- •6.6.2. Редактирование составных объектов Создание группы кнопок
- •7. Создание формы с помощью мастера
- •Лабораторная работа № 9-10 Запросы к базе данных
- •I. Создание однотабличного запроса:
- •II. Создание многотабличного запроса:
- •III. Группировка полей запроса
- •IV. Подзапросы
- •Использование представлений данных
- •Создание представления данных
- •Просмотр представления данных
- •Сохранение созданного представления данных
- •Параметры представления данных
- •Редактирование данных
- •Установка редактируемых полей
- •Лабораторная работа № 11-12 Создание и печать отчетов
- •2.2. Типы полос окна конструктора отчета
- •Лабораторная работа №13 Хранимые процедуры и триггеры
- •1. Условия достоверности, хранимые процедуры, триггеры
- •Хранимые процедуры
- •Условия достоверности ввода данных на уровне поля таблицы
- •Условия достоверности ввода данных на уровне записей
- •Триггеры
- •Использование триггеров и хранимых процедур
- •Использование триггеров при определении ссылочной целостности
- •Определение значения поля при добавлении новой записи
- •Проверка удовлетворения введенных значений заданному условию
- •Лабораторная работа № 14 Создание меню приложения
- •Лабораторная работа № 15 Генерация приложения
- •Построение проекта и генерация приложения
- •Установка основной программы проекта
- •Использование опции Exclude
- •Очистка проекта от удаленных файлов
- •Построение проекта
- •1. Последовательность действий при настройке параметров формы
- •Форматы данных
- •2. Поле ввода
- •Коды шаблонов picture
- •3. Использование построителя при создании поля ввода
- •Назначение флажков вкладки format
- •Назначение параметров вкладки style
- •4. Поле редактирования
- •5. Кнопки управления
- •5.1. Размещение одиночных кнопок
- •5.2. Создание группы кнопок
- •Расширенные средства ввода данных
- •1. Отображение данных в форме в табличном виде
- •2. Использование построителя
- •Назначение вкладок окна Grid Builder
- •3. Свойства, определяющие объект Grid
- •3.1. Свойства объекта Column
- •Свойства объекта Header
- •3.3. Свойства объекта Text
- •4. Создание многотабличных форм для таблиц, имеющих отношение "один-ко-многим"
- •4.1. Создание многотабличной формы с помощью мастера
- •Варианты продолжения работы с формой
- •4.2. Создание объекта Grid с помощью конструктора форм
- •Создание формы, содержащей объект Grid
- •Создание формы, содержащей три объекта Grid
- •5. Создание формы с вкладками
- •6. Набор форм
- •7. Таймер
- •Назначение свойств объекта Timer
- •7.1. Создание формы с использованием таймера
- •8. Добавление данных в список
- •Рекомендации по созданию отчета
- •Создание отчета с помощью конструктора отчетов
- •1. Окно конструктора отчетов
- •2. Типы полос окна конструктора отчета
- •3. Использование команды Quick Report для размещения полей
- •4. Установка среды окружения отчета
- •5. Размещение объектов в отчете
- •5.1.Размещение в отчете текстовой информации
- •5.2. Добавление в отчет областей заголовка и итогов
- •5.3. Создание простого отчета
- •5.4. Размещение полей
- •5.5. Формирование выражения поля
- •5.6. Задание формата данных
- •5.7. Задание условий печати
- •5.8. Расположение поля в полосе
- •5.9. Размещение итогового поля
- •5.10. Размещение в отчете линий и прямоугольников
- •5.11. Панель инструментов Color Palette
- •5.12. Размещение в отчете рисунков
- •6. Создание отчета в свободной форме
- •7. Создание табличного отчета
- •8. Группировка данных в отчете
- •8.1. Использование группировки в отчете
- •9. Использование в отчете переменных
- •10. Разметка страницы отчета
- •11. Создание многоколоночного отчета
7.1. Создание формы с использованием таймера
Рассмотрим пример использования таймера в форме, в которой через заданный интервал времени на экран будут выводиться данные о количестве продаж каждого товара на текущий момент времени. Форма будет отображать информацию из представления данных, содержащего наименование товара, суммарное количество проданного товара и сумму продаж по товару:
Используя таблицы Goods, Ordsaled и Ordsalem, создайте представление данных, содержащее наименование товара, суммарное количество проданного товара и суммы продаж по данному товару.
Сгруппируйте данные по коду товара.
Сохраните созданное представление данных.
Откройте новое окно конструктора форм.
Откройте окно среды окружения формы и добавьте в него созданное представление.
Создайте в форме объект Grid (Таблица), разместив в нем все поля представления данных.
Для отображения текущей даты и времени расположите два поля ввода curdate и curtime. Скорректируйте для данных объектов свойство Readonly (Только чтение), установив значение True (Истина).
Для создания объекта-таймера нажмите кнопку Timer (Таймер) на панели инструментов Form Controls (Элементы управления формы) и расположите его в форме.
Откройте окно процедур для метода Timer (Таймер).
Для присвоения значений созданным полям curdate и curtime, а также для обновления данных о продаже товаров через заданный интервал времени введите в окне процедур следующие значения:
This.Parent.CurDate.Value = DATE()
This. Parent.CurTime.Value = TIME()
This.Parent.CurDate.Refresh()
This.Parent.CurTime.Refresh()
ThisForm.Gridl.Refresh()
Определите интервал времени, через который необходимо производить обновление данных в таблице. Для этого воспользуйтесь свойством interval (Промежуток времени), значение которого задается в миллисекундах. Для обновления данных каждые 10 мин введите значение 600 000.
Форма готова. Сохраните ее и запустите на выполнение.
Рис. 24. Использование таймера в форме
Рис. 25. Просмотр итоговых продаж через заданный промежуток времени
При работе в сети каждый час на экране будет обновляться информация об итоговом количестве продаж товаров и их стоимости. На рис. 24 показан вид созданной формы, а на рис. 25 — просмотр данных с помощью этой формы.
8. Добавление данных в список
Список может формироваться из значений, содержащихся в поле таблицы, массива, запроса и т. п. В этой главе рассмотрим создание списка, значения которого вводятся в интерактивном режиме пользователем с использованием дополнительного поля ввода.
Создание списка рассмотрим на примере редактирования поля, содержащего город, для таблицы Customer. Для создания формы:
Откройте форму для ввода списка клиентов в окне конструктора форм.
Нажмите кнопку List Box (Список) на панели инструментов Form Controls (Элементы управления формы).
Установите указатель мыши на место предполагаемого расположения поля и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка требуемого размера для поля списка.
Откройте окно свойств для размещенного в форме списка.
Скорректируйте свойство Name (Имя) созданного объекта, присвоив ему имя IstCity.
Чтобы связать созданное поле с полем таблицы customer, выберите свойство controisource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы Customer выберите поле ccity.
Скорректируйте свойство RowSourceType (Тип источника данных), которое указывает тип источника данных. Выберите из списка значение Value (Значение), поскольку список городов будет формироваться с помощью вводимых значений.
Используя кнопку Text Box (Поле ввода) на панели инструментов Form Controls (Элементы управления формы), создайте под списком поле редактирования.
Скорректируйте свойство Name (Имя) поля редактирования, присвоив ему имя txtAddText.
Используя окно процедур свойства Keypress (Нажатие клавиши), введите в нем следующие команды:
LPARAMETERS nKeyCode, nShiftCtrlAlt
IF nKeyCode = 13 && 13 код клавиши <Enter>
IF EMPTY(THIS,Value)
* добавляем значение в список
THISFORM.lstCity.Addltem (THIS.Value}
ENDIF
* очищаем поле ввода
THIS.Value = ""
ENDIF
Эта процедура позволит пользователю ввести текст в поле ввода и нажатием клавиши <Enter> добавить значение в список, освободив окно для ввода следующей информации (рис. 26).
Рис. 26. Определение свойства KeyPress
Теперь при запуске формы на выполнение значения, введенные в поле ввода Поле формирования списка, при нажатии клавиши <Enter> переносятся в список городов (рис. 27).
Рис. 27. Формирование списка с помощью поля ввода в диалоговом режиме
Приложение 2