COLS (задает столбцы в LIST-структуре)
COLS(string,variable[,spaces])
string | Строковая константа или переменная, содержащая ASCII-значения, задающие число символов для подсветки в каждом столбце. Каждый символ этой строки задает ширину одного столбца в LIST. Общее число символов в строке зависит от числа столбцов в LIST-структуре. |
variable | Имя целочисленной переменной, которая получает номер текущего подсвеченного столбца, когда LIST завершается оператором ACCEPT. |
spaces | Целочисленная константа, задающая число пробелов между столбцами на экране. |
Атрибут COLS задает вывод элементов очереди в листбоксе подобно электронной таблице. Курсор подсвечивает только один столбец за раз. Строка, описывает число символов в каждом столбце, которые должен подсвечивать курсор. Параметр SPACES задает количество пробелов, автоматически вставляемых между выводимыми столбцами.
Когда ACCEPT завершает LISTбокс, VARIABLE получает номер подсвеченного столбца. Если VARIABLE уже содержит какое-то значение при активизации листбокса, то сращу же активизируется столбец, номер которого хранится в VARIABLE.
Если вместе с атрибутом COLS, к листбоксу применяется еще и атрибут FIX, то появляется возможность ввести заголовки столбцов в листбоксе. Эти заголовки не будут прокручиваться, и не могут быть выбраны.
Пример:
ListOue QUEUE,PRE(Lst) !Очередь номеров деталей
PartNoA STRING(10) ! отформатированная для
PartNoB STRING(10) ! вывода в две колонки
.
Screen SCREEN(20,30),PRE(Scr)
ROW(3,45) ENTRY(@s10),USE(Trn:PartNo),SKIP
ROW(4,45) LIST(10,20),FROM(Lst:PartNo), |
USE(?PartList),COLS('',Column#,1)
.
CODE !Строим очередь для листбокса
SET(PartsFile)
LOOP
NEXT(PartsFile)
Lst:PartNoA = Par:PartNo
IF EOF(PartsFile) THEN BREAK.
NEXT(PartsFile)
Lst:PartNoB = Par:PartNo
IF EOF(PartsFile) THEN BREAK.
ADD(ListQue)
IF ERRORCODE() THEN STOP(ERROR()).
CLEAR(ListQue)
.
ADD(ListQue)
IF ERRORCODE() THEN STOP(ERROR()).
OPEN(Screen) !Затем откроем экран
ACCEPT ! и позволим сделать выбор
GET(ListQue,CHOICE()) !Получаем выбранный элемент
EXECUTE Column#
Trn:PartNo = Lst:PartNoA !Выбрано из первого столца?
Trn:PartNo = Lst:PartNOB !А может быть из второго?
.
См. также: ,