Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

2.4.10. Перемещение по таблице (Go, Skip)

Запись, на которой находится указатель, является текущей, и только к ней в данный момент возможен непосредственный доступ.

Команды установки ука­за­теля записей:

Go Top/Bottom - переход к самой первой/последней записи таблицы;

Go <ВырN> - переход к записи с указанным в <ВырN> номером;

Skip [<ВырN>] - переход к записи, отстоящей от текущей на указанное в <ВырN> (1) число записей (<ВырN> может быть и отрицательным, что оз­на­чает движение указателя назад).

Все вышеперечисленные команды могут иметь дополнительный параметр In <область> указывающий, из какой области должна выпол­ниться команда. Если он опущен, имеется в виду текущая рабочая область.

Функции контроля положения указателя и наличия записей в файле:

Recno([<область>]) - указывает номер текущей записи;

Reccount([<область>]) - выдает общее количество записей в таблице.

Eof/Bof([<область>]) ‑ возвращает истину (.Т.) при выходе за конец/на­ча­ло таблицы и ложно (.F.) в противном случае.

2.4.11. Просмотр таблиц (Display, List)

Просмотр данных в FoxPro осуществляется командами List и Display.

Display <границы> <поля> [While <условие>] [For <условие> ] [Off]

[То Print/To File <файл>]

Off - номера записей не выводятся;

To Print - результат команды выдается на принтер;

To File <файл> - результат выдается в <файл>. Если не указать рас­ши­ре­ние имени, то оно будет ТХТ.

Команда Display без параметров осуществляет выдачу всех полей таблицы только одной текущей записи.

Записи, помеченные к удалению, команда выдает со звездочкой (если Set Deleted Off). Выдачу имен полей можно подавить командой Set Heading Off. Чтобы выдать мемо-поля, их имена нужно явно указать в списке Fields.

Команда Set Memo Width <BыpN> определяет фактическую шири­ну строки для выводимого мемо-поля.

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

2.4.12. Удаление записей (Delete, Zap, Pack)

В FoxPro имеется несколько команд удаления записей:

Zap - удаление всех записей текущей таблицы с сохранением ее структуры;

Delete [<границы>] [While <условие 1>] [For <условие 2>] - пометка к уда­ле­нию записей в указанных границах и/или отвечающих указанным усло­виям. Команда без параметров помечает только одну текущую запись;

Pack - физическое удаление помеченных ранее записей и сжатие файла;

Recall [<границы>] [While <условие>] [For <условие>] - снятие пометок к удалению. Команда без параметров действует только на текущую запись.

Чтобы помеченные к удалению записи не участвовали далее в обра­бот­ке, можно использовать команду Set Deleted On.

2.4.13. Редактирование полей в программном режиме (Replace)

В FoxPro можно изменять значения полей программным путем.

Replace <границы> [While <условие>] [For <условие>]

<поле1> With <Выр1>

[,<noлe2> With <Выр2>] ...

Эта команда осуществляет множественное изменение полей таблицы в соответствии с заданными выражениями в установленных границах и при заданных условиях. Если отсутствует параметр <границы> или <условия>, то изменена будет только текущая запись.

Пример.

Use “Brig” && открытие таблицы с данными о выработке по бригаде

Replace Zar With Zar*1.2 For Vir>100 && премия 20% за перевыполнение Replace Zar With Zar+500 For Tab=98 && надбавка бригадиру с таб. номером 98