Поиск в неиндексированном файле осуществляется командой LOCA FOR
Поиск в неиндексированном файле
Поиск в индексированном файле
Подключение индексов
DELETE
Помечает к удалению текущую запись.
Пример 2:
DELETE FOR Dpos<{15/06/99}
Помечает к удалению все записи, у которых поле Dpos содержит дату до 15/06/99.
Пометка к удалению - обратимая операция. При желании запись можно разметить, в BROWSE-окне, если второй раз использовать Cntrl+Т, программным путем при помощи команды RECALL.
Формат команды:
RECALL [FOR Логическое Выражение]
[WHILE Условие Отбора]
Формат RECALL аналогичен формату DELETE.
Для физического удаления используется команда PACK. Команда PACK удаляет из таблицы все записи, помеченные к удалению. Восстановить записи, удаленные командой PACK невозможно.
Таблица может иметь несколько индексов. Для подключения нужного индекса используется команда
SET ORDER TOИмя Индекса
Поиск в индексированном файле наиболее эффективен, осуществляется командой
SEEK Значения Индекса
Для правильной работы команды необходимо сначала подключить индексный файл. В качестве значения индекса указывается его точное значение. Указатель размещается на первую найденную запись.
Пример:
Допустим таблица отдел кадров проиндексирована по полю Nalog. Имя индекса Nalog
SET ORDER TO Nalog && Подключения индекса Nalog
SEEK 0 && Поиск первой записи, у которой Nalog=0
Формат команды:
LOCA [FOR Условие1]
[WHILE Условие2]
[CONTINUE]
Команда ищет первую запись, соответствующую условию, заданному опцией FOR или WHILE. Для обработки записи найденной командой LOCA можно поместить между командами LOCA…CONTINUE какие-либо команды.
Пример:
Поиск в таблице отдела кадров всех сотрудников, у которых 1 или 2 детей. В поле Deti записано количество детей.
LOCA FOR (Deti=1 .OR.Deti=2)
….
CONTINUE
Обработка, найденных записей
Объектно-ориентированное программирование (ООП)
В настоящее время ООП является общепринятой концепцией программирования. ООП базируется на моделировании реальных объектов, необходимых для выполнения конкретного задания. Применение ООП обеспечивает высокую производительность.
Ключевые понятия ООП – это класс и объект. Они близки, но не тождественны. Класс содержит информацию о том, как должен выглядеть объект, определяет выполняемые им действия. Это абстрактное понятие. Объект – это реальный экземпляр класса.
Пример: Класс автомобиль и реальные объекты Москвич, Fiat,…
Объект обладает свойствами, методами и событиями.
Свойства – это характеристики объекта.
Для автомобиля – это могут быть цвет, размер салона, объем двигателя, количество дверей, и т.д.
Методы – это то, что “умеет делать” объект. Что касается автомобиля, можно привести в пример, поворот, торможение, изменение скорости и т.д..
События – события из внешнего мира, на которые должен реагировать объект. Для автомобиля: поворот ключа зажигания, перемещение ручки переключения скоростей, нажатие на педали газа,…
Третье важное понятие - наследование. От класса можно образовать подкласс. Подкласс унаследует все свойства, методы и события класса плюс какие-либо свои свойства, методы и события.
Например, от класса автомобиль можно образовать подклассы: гоночный автомобиль, представительский, малогабаритный, и т.д.
При создании объект автоматически наследует свойства, методы и события своего класса. Пользователю остается только откорректировать их по своему усмотрению. Так пользователь один раз программирует класс объектов, а затем пользуется готовым кодом.
Кроме того, существует достаточно много так называемых базовых классов. Это поля ввода-редактирования, кнопки, раскрывающиеся и прокручивающиеся списки и т. д. Они обеспечивают программисту безбедное существование. Т.к. на их основе можно строить прекрасные приложения.
Базовые классы Visual FoxPro
Можно разделить на 2 группы:
Средства управления | Контейнеры | |||
Это классы, полученные из класса Control. Объектами этих классов можно управлять в ходе разработки и во время исполнения. Но нельзя модифицировать их код | Это специальные объекты, полученные из класса container, разработанные для того, чтобы содержать другие объекты. Они могут содержать другие контейнеры, а так же объекты управления | |||
Примеры классов | ||||
Check box | Переключатель | Container | Контейнер | |
Combo box | Раскрывающийся список | Form set | Набор форм | |
Command button | Кнопка | Form | Форма | |
Edit box | Поле ввода большого размера, возможна прокрутка | Grid | Набор столбцов (сетка) | |
Header | Заголовок колонки | Column | Колонка | |
Image | Рисунок | Page frame | Набор страниц | |
Label | Надпись | Page | Страница | |
Line | Линия | Toolbar | Панель инструментов | |
List box | Прокручивающийся список | Command group | Группа кнопок | |
Shape | Фигура (квадрат, прямоугольник, овал, круг) | Option group | Группа переключателей | |
Spinner | Счетчик | |||
Text Box | Поле ввода | |||
Timer | Таймер |