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


REPEAT (структура-посторение) - часть 2


Атрибут EVERY задает позиции последующих повторений, опираясь на число строк и столбцов, разделяющих отдельные элементы.
Когда поле-повторение получает данные, значение индексной переменной определяет, какой элемент массива USE-переменной получает введенное значение. Оператор ACCEPT автоматически увеличивает индексную переменную, по мере заполнения очередного элемента в REPEAT-структуре, если INDEX превысит максимальное значение, то для ввода выбирается следующее поле для экрана. Нажатие клавиши Esc (на НЕ-SAA/CUA экранах) или BACKTAB (для SAA/CUA экранов), уменьшает INDEX, заставляя выбрать предыдущий элемент-повторение. Если был выбран первый элемент, то ESC, BACKTAB, или СТРЕЛ КА ВВЕРХ выбирает для ввода следующее поле на экране.
Пример:
Следующая REPEAT-структура позволяет оператору обновлять массив
помесячных затрат:
LoadMonthArray PROCEDURE
Ndx BYTE !Индексная переменная
Amt DECIMAL(7,2),DIM(12) !Массив помесячных
!затрат
Month STRING('JanFebMarAprMayJunJulAugSepOctNovDec')
Mnth STRING(3),DIM(12),OVER(Month) !Этот массив наложен
!поверх массива Month
Screen SCREEN(16,22),AT(5,30),PRE(Scr),COLOR(7)
ROW(2,5) STRING('Помесячные затраты')
ROW(16,7) STRING('F10 - выход')
REPEAT(12),INDEX(Ndx)
ROW(3,5) POINT(1,16),USE(?Point),ESC(?-l),REQ
Month COL(5) STRING(3)
COL(12) ENTRY(@N_7.2),USE(Amt),INS
.. !Конец структур REPEAT и SCREEN
CODE
OPEN(Screen)
LOOP Ndx = 1 TO 12 !Заполняем месяцы
Scr:Month = Mnth[Ndx] ! на экране
.
LOOP
ALERT(2058) !Взводим клавишу F10
ACCEPT
IF KEYCODE() = 2058 !Если нажата F10
RETURN ! то выходим
. .
См. также:



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