Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема_2_2_FoxУправлен_записями.doc
Скачиваний:
4
Добавлен:
05.05.2019
Размер:
92.67 Кб
Скачать

2. Окно редактирования

При выдаче команд APPEND, INSERT, EDIT, CHANGE, BROWSE и наличии открытой базы данных FoxPro развертывает для пользователя окно редактирования. Вся информация в окне доступна для изменения. Кроме того, возможны дополнение базы и удаление записей.

Средства, предоставляемые в окне редактирования, не исчерпываются обзором и редактированием данных. Здесь может быть организован удобный интерфейс обработки данных, включающий входной контроль данных, необходимые заголовки и предупреждения, управление цветами, вычисляемые поля и т.д.

Стандартное окно редактирования имеет две формы. Для первых четырех команд оно будет выглядеть одинаково - все поля базы данных располагаются вертикально (см. выше экран к команде APPEND). На экране видно столько записей и полей, сколько удается их здесь разместить. Назовем форму такого окна CHANGE-ОКНОМ.

Другую форму предъявления данных осуществляет команда BROWSE (BROWSE-ОКНО). Здесь все поля каждой записи располагаются горизонтально - колонками. Если какие-то поля записи не умещаются в строке, с помощью клавиш управления курсором и мыши возможно перемещение (скролинг) изображения вправо или влево.

Выбор формы CHANGE или BROWSE представления данных определяется структурой базы данных и удобством пользователя. Базы, содержащие большое число полей, удобнее представлять в формате CHANGE. Тогда весь экран может быть отведен под изображение одной записи. Вместе с тем в одном окне возможно отображение данных сразу в обоих форматах.

Клавиши управления действуют практически одинаково в обеих формах окон. Ниже они описаны. Пометка записей к удалению выполняется клавишами Ctrl-T. Признаком пометки является появление специального значка (точки) в самой левой колонке записи. Это же действие может быть реализовано с помощью мыши, для чего ее маркер должен быть установлен в самую левую колонку и нажата кнопка мыши.

Дополнение базы новой записью осуществляется нажатием клавиш Ctrl-N (кроме команды APPEND, в которой это происходит автоматически). Можно установить режим копирования в новую

запись всех (ON) полей из текущей (не обязательно последней) записи командой

• SET CARRY ON/OFF

По умолчанию OFF. Можно установить и выборочное копирование только указанных <полей> командой

• SET CARRY TO [<поля>]

Если параметр <поля> опущен, происходит возврат к действию команды SET CARRY ON/OFF. Режим копирования может быть очень полезен при вводе данных с повторяющимися значениями полей. Копирование не происходит при добавлении новых записей иным образом, например командой APPEND BLANK.

Перемещение внутри базы данных осуществляется с помощью клавиш перемещения курсора или мыши. Кроме того, могут использоваться следующие клавиши:

Ctrl-право/лево - переход к следующему/предыдущему слову;

Home/End - переход к началу/концу поля;

Tab/Shift-Tab - переход к следующему/предыдущему полю;

PgUp/PgDn - переход назад/вперед на один экран;

Enter - переход к следующему полю;

Ctrl-Y - очистка поля;

Ctrl-Home, Ctri-PgUp,

Ctri-PgDn или двойное нажатие кнопки мыши - вход в мемо-поле;

Ctrl-W/End - выход с сохранением измененных данных;

Ctri-Q/ Escape - выход без сохранения.

В последнем случае не сохраняются только изменения, сделанные в текущем поле, если курсор не был из него выведен. Изменения, сделанные в других полях, сохраняются.

Над полями базы данных можно осуществлять действия, предусмотренные для встроенного редактора FoxPro: выделение фрагментов данных, их копирование и удаление (см. описание редактора FoxPro).

Для предъявления CHANGE-окна введите команду CHANGE. При этом вы увидите уже знакомую по команде APPEND форму отображения данных.

После ввода команды BROWSE (при открытой базе KADR.DBF) появляется изображение данных, аналогичное рис.4.1. Форма окна приведена с некоторыми упрощениями.

В мемо-поле стоит слово memo/Memo. Если оно начинается со строчной буквы, то поле пустое, если с прописной - в нем имеются данные. Чтобы войти в мемо-поле, необходимо переместить в него курсор и нажать Ctrl-Home или Ctrl-PgDn/PgUp, или дважды кнопку мыши.

По умолчанию окно редактирования может быть видно не целиком. Раскрывается окно во весь экран нажатием клавиш Ctrl-FlO. Повторное нажатие клавиш возвращает окно к исходной форме. В .дальнейшем мы рассмотрим средства управления размером и положением окон.

Недостатком приведенных форм BROWSE/CHANGE-OKOH является их неудобство для русскоязычного пользователя. Это обстоятельство можно поправить, дав, при создании базы, имена полям по-русски. Однако, имя поля не может иметь длину более 10-и символов, не может начинаться с цифры, не может иметь внутри пробелов и других (кроме знака подчеркивания) не буквенно-цифровых символов. Таким образом, вместо имени поля "FAM" можно задать слово "Фамилия", но нельзя - "Ф.И.О."; вместо "SZAR" - можно задать "Ср_зарпл" и т.п. На практике нет большого смысла в задании имен русскими буквами, поскольку любые заголовки колонок/строк в BROWSE/CHANGE-окнах, как мы увидим, можно указать непосредственно в команде. Исключения составляют случаи, когда база имеет так много полей, что команда BROWSE/CHANGE с описанием всех заголовков и других параметров становится недопустимо длинной (более 2048 знаков). В этом случае, приходится называть поля по-русски.

Кроме того, при вводе желательно предусмотреть контроль данных.

Команды BROWSE/CHANGE позволяют сделать гибкую настройку интерфейса. Здесь могут использоваться разнообразные (и еще не рассмотренные) средства языка (индексирование, функции, шаблоны). Поэтому, хотя опережающий материал по возможности

разъяснен, при первом чтении можно его опустить либо заглянуть вперед. Такой же практики будем придерживаться и в дальнейшем.

Замечание. Далее в тексте будет широко применяться понятие "Пользовательская функция" (ПФ). Этот термин означает наличие в программе внешней или внутренней процедуры-функции, к которой можно обратиться по имени и в которой выполняются некоторые действия по обработке данных.