Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Отбор данных




Редактирование таблиц в диалоговом режиме (Browse, Edit)

Заполнение таблиц

Создание и изменение структуры таблиц

Создание свободных таблиц

Endscan

Цикл сканирования таблицы (Scan)

Endfor

Счетный цикл (For)

Enddo

Цикл (Do While)

Организация циклов

Do while<Вырl>

<команды>

[Loop]

<команды>

[Exit]

Эта команда обеспечивает повторение последовательности команд, заключенной в конструкции Do while...Enddo до тех пор, пока за­дан­­­ное условие истинно. Фраза Exit передает управление из цикла пер­вой команде, следующей за Enddo. Фраза Loop возвращает управление в начало цикла.

Пример вычисления суммы ряда S=1+1/2+ …+1/i пока 1/i>0,0001.

X=1 && установка начального значения очередного слагаемого ряда

I=0 && установка начального значения номера очередного слагаемого

S=0 && установка начального значения суммы ряда

Do While X>0.0001 && заголовок цикла

I=I+1 && увеличение номера слагаемого на единицу

X=1/I && значение очередного слагаемого

S=S+X && увеличение суммы ряда на значение очередного слагаемого

Enddo && конец цикла

?S && вывод суммы ряда на экран

For <счетчик> = <ВырN1> To <ВырN2> [Step <ВырN3>]

<команды>

[Exit]

[Loop]

Выражение <ВырN1>/<ВырN2> задает начальное/конечное значение счетчика. Включенные в конструкцию команды выполняются после­до­ва­­тельно, пока не встретится команда Endfor, если нет команд Exit или Lo­op (п. 2.4.7.1) и счетчик уве­ли­чивается на значения <ВырN3>(1).

Пример вычисления суммы ряда S=1+1/2+ …+1/i для i=1000.

S=0 && установка начального значения суммы ряда

For i=1 To 1000 && заголовок цикла

S=S+1/i && увеличение суммы ряда на значение очередного слагаемого

Endfor && конец цикла

?S && вывод суммы ряда на экран

 

Scan[<Границы>] [For <Вырl1> [While <Вырl2>]

[<команды>]

[Loop]

[Exit]

Команда просматривает всю активную открытую таблицу и для каждой записи, отвечающей заданным условиям, выполняет команды, заключенные в программную конструкцию, аналогично циклу Do While. Команда автоматически наращивает значение указателя записи и ана­ли­зи­рует соответствующую ему запись на удовлетворение условий.

По умолчанию значение <границы> All (вся таблица). Указание сфе­­ры задает диапазон сканируемых записей. Можно включить и не­обя­за­тельные фразы For и While для специфицирования условий вы­пол­не­ния заданных в конструкции команд (п. 2.4.1).

Фраза Loop вызывает немедленный возврат к команде Scan в на­ча­ло цикла. Фраза Exit вызывает прекращение выполнения цикла и пере­ход к команде, непосредственно следующей за Endscan.

Create “<имя файла таблицы>” ‑ создание в диалоге.

Create Table... ‑ создать структуру таблицы из программы.

Modify Structure ‑ изменить структуру таблицы командой.

Перед работой с таблицей следует ее открыть командой открытия:

Use“<имя таблицы> ”.

Команда Use без имени закрывает таблицу. Закрытие всех открытых таблиц осуществляется командой Close Database. Закрытие вообще всех файлов выполняется командой Close All.

Дополнение файла новыми записями осуществляется командой Append [Blank],которая предъявляет окно ввода данных со всеми пустыми полями создаваемой записи. Фраза Blank означает, что новая запись не будет отражена на экране.

Команда Set Date German устанавливает формат даты (дд.мм.гг).

При вводе символа в последнюю позицию очередного поля раздается звуковой сигнал и курсор автоматически (без нажатия клавиши Enter) переходит на первую позицию следующего поля данных. Этим процессом можно управлять с помощью команд:

Set Bell On /Off вклю­че­ние/отклю­чение звукового сигнала;

Set Confirm On /Off - включение/отключение автоматического пере­хо­да курсора на следующее поле.

При работе может возникнуть необходимость обращаться в нес­коль­ко директорий, что реализуется командой Set Default То [<путь>],кото­рая устанавливает диск и/или директорию в качестве используемого по умолчанию.

Команда Set Path To <список путей> задает пути (маршруты) поис­ка файлов через точку с запятой, не обнаруженных в текущей директории.

При выдаче команд Append, Insert, Edit, Change, Browse и наличии открытой таблицы FoxPro развертывает для пользователя окно редактиро­вания. Стандартное окно редактирования имеет две формы.

Для первых четырех команд оно будет выглядеть одинаково - все поля таблицы данных располагаются вертикально (строковая форма). Назовем форму такого окна Edit-окном.

Другую форму предъявления данных осуществляет команда Browse (Browse-окно). Здесь все поля каждой записи располагаются горизон­таль­но - колонками (табличная форма).

Пометка записей к удалению выполняется клавишами ^T*. Приз­на­ком пометки является появление специального значка (черного прямоугольника) в самой левой колонке записи. Это же действие может быть реализовано с помо­щью мыши, для чего ее маркер должен быть установлен в самую левую ко­лон­ку и нажата кнопка мыши.

Дополнение таблицы новой записью осуществляется клавишами ^Y.

Можно установить режим копирования в новую запись всех (On) полей из текущей записи командой Set Carry On/Off.

Можно установить и выборочное копирование только указанных <полей> командой Set Carry То <поля>.

Перемещение внутри таблицы осуществляется с помощью кла­виш перемещения курсора или мыши.

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

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

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

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

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

Ctrl+Home, Ctrl+PgUp, Ctrl+PgDn или двойное нажатие кнопки мыши - вход в мемо-поле;

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

Esc - выход без сохранения изменения в текущем поле.

Команда Browse имеет вид:

Browse [Fields <список полей>] [For <Вырl1>] [Freeze <поле>]

[Key <Выр1> [, <Выр2>]] [Last] [ [Ledit] | [Redit ]]

[Lock <ВырN1>] [Lpartition] [Noappend] [Noclear]

[Nodelete] [Noedit | Nomodify] [Nolink] [Nomenu]

[Nowait] [Partition <ВырN2>] [Preference <Вырc1>]

[Rest] [Save] [Timeout <ВырN3>]

[Title <Вырc2>] [Valid [f:] <Вырl2 > [Error <Вырc3>]]

[When <Вырl3>] [Width <ВырN4>]

[[Window <имя окна1>] [In [Window] <имя окна2> | In Screen]]

 

Управление доступом к полям таблицы

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

:R - только чтение;

:<ширина колонки> - размер поля;

:V = <ВырL1> [:F] [:E = <ВырC1>] - контроль данных. Если <ВырL1> ложно, то выводится значение <ВырC1>. Если указан “:F”, то контроль и при чтении, иначе ‑ контроль только после корректировки значения поля;

:P = <ВырC2> - шаблон для выводимого или вводимого зна­че­ния: “L” (логические значения), “N” (буква и цифра), “X” (любой символ), “9” (цифра и точка), “#” (цифра, пробел и точка), “$” (высвечивает денеж­ный знак, установленный по команде Set Currency), “*” (высвечивает сим­волы звездочки перед числовыми значениями), “.” (определяет позицию десятичной точки), “,” (разделяет цифры слева от десятичной точки).

В начале строки с шаблоном после символа “@” можно указать коды функций, которые действуют в целом на все значение поля: B (вырав­ни­ва­ет числа по левой границе), I (центрирует текст внутри поля), J (выравнивает текст по правой границе поля), L (выводит незначащие нули вместо пробелов для чисел), M <список> (определяет список возможных значений, который представляет собой набор элементов, разделенных за­пя­тыми), R (вывод в шаблоне литеральных символов, не являющихся частью данных и не запоминающихся), S <n> (ограничивает ширину вы­вода <n> символами, где <n> - положительное число), T (удаляет ко­неч­ные пробелы), Z (подавляет незначащие нули пробелами), $ (выс­ве­чи­вает денежный знак, установленный по команде Set Currency).

:B = <Выр1>, <Выр2> [:F] - контроль на диапазон допустимых значений (от <Выр1> до <Выр2>);

:H = <ВырC3> - заголовок поля;

:W = <ВырL2> - контроль входа в поле (если <ВырL2> ложно, то курсор не останавливается в поле).

В списке полей могут быть вычисляемые поля вида:

<имя вычисляемого поля > = <Выр>.

For <ВырL1> - в окне Browse высвечиваются только те записи, кото­рые удовлетворяют условию.

Rest ‑ используется совместно с фразой For команды Browse для предот­вра­щения установки указателя записи в начало файла таблицы.

Key <Выр1> [, <Выр2>] ‑ ограничивает количество высвечиваемых записей диапазоном значений индексов главного индексного файла (от <Выр1> до<Выр2>).

Разделение окна

Lock <expN1> ‑ задает число полей, размещаемых в различных частях окна Вrowse.

Partition <ВырN2> ‑ разделяет окно Browse на левую и правую части: <ВырN2> определяет позицию границы.

Ledit | Redit ‑ при выводе окна Browse левая или правая части выводятся в форме Edit‑окна.

Lpartition ‑ устанавливает курсор на первое поле в левой части или в пра­вом окне, если LPartition не включено.

Nolink ‑ разрывает связи между частями.




Поделиться с друзьями:


Дата добавления: 2014-12-10; Просмотров: 367; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.