Документация по Clarion


SKIP (пропустить записи в последовательности)



SKIP(файл,count)


файл Метка файла.
count Числовая константа или переменная. COUNT задает число пропускаемых записей. Если значение положительное, то записи пропускаются ВПЕРЕД (аналогично NEXT). Если же COUNT отрицательно, то записи пропускаются НАЗАД (аналогично PREVIOUS).

Оператор SKIP используется для пропуска записей во время последовательной обработки файла. Он пропускает записи в порядке, задаваемом оператором SET, перемещая указатель записи в файле на COUNT записей вперед или назад. SKIP более эффективен, чем NEXT или PREVIOUS при пропуске нескольких записей, поскольку он НЕ считывает записи в буфер, отведенный под структуру RECORD.
Если SKIP пытается выйти за конец или начало файла, то функции EOF() и BOF() возвращают истину. Если ранее не был выполнен SET, то SKIP игнорируется.
Пример:
SET(Itm:InvoiceKey) !Начинаем от начала файла товаров
LOOP UNTIL EOF(Items) !Обрабатываем все записи
NEXT(Items) !Читаем запись
IF ERRORCODE() THEN STOP(ERROR()).
IF Itm:InvoiceNo <> SavinvNo !Если это первый товар в зака-
! зе, то
Hea:InvoiceNo = Itm:InvoiceNo !инициализируем ключевое
! поле и
GET(Header,Hea:InvoiceKey)
!получаем соответствующий ему за-
! головок столбца
IF ERRORCODE() THEN STOP(ERROR()).
IF Hea:InvoiceStatus = 'Cancel' !Если заказ отменен,
SKIP(Items,Hea:ltemCount-1) ! то пропускаем осталь-
! ные товары
CYCLE ! и обрабатываем следую-
! щий заказ
. . ! конец операторов IF
DO ItemProcess ! обрабатываем товар
SavInvNo = Itm:lnvoiceNo ! сохраняем номер счета
. !Конец цикла



Начало  Назад  Вперед



Книжный магазин