Перейти к n-му символу в текстовой строке, используя RPG и DSPF - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть программа, которая запускает интерактивный DSPF.Теперь я заполняю поле с символами в программе RPG.Первые два символа 'ab'.Однако я хочу, чтобы, когда я проходил через DSPF, когда я вкладывал в это поле, курсор помещался под «а», потому что это первая позиция поля.Я хочу перейти на 3-ю позицию поля, чтобы мой курсор был после ввода, чтобы я мог легко продолжить ввод, а не нажимать клавишу со стрелкой.Просто интересно, есть ли способ сделать это.Я уже знаю о DSPATR (ПК), однако это гарантирует, что он перейдет на первую позицию, где я хочу 3-ю позицию.CURLOC - это уровень записи, который мне не помогает, я просто хочу, чтобы эта одна текстовая строка располагалась на 3-м символе, а не на первой вкладке.Я хочу также иметь возможность изменить эти первые 2 символа, поэтому я не просто сделал их переменными и объединил их, либо просто включил за кулисы.Я просто хочу перейти к текстовой строке, и курсор будет в 3-й позиции символа.

1 Ответ

0 голосов
/ 09 февраля 2019

Я думаю, CSRLOC ваш ответ ..
из документов

Формат ключевого слова:

CSRLOC (поле-name-1 field-name-2)

Значения параметров в ключевом слове указывают имена двух полей, содержимым которых является номер строки (для field-name-1) и номер позиции (для field-name-2) расположения курсора.Field-name-1 и field-name-2 являются 3-байтовыми, зонными десятичными, скрытыми полями.Ваша программа использует эти поля, чтобы указать операционной системе IBM® i, где находится курсор.

A          R RECORD1                   CSRLOC(LINNBR POSNBR)
A            TITLE         40   B  1  2
A            PAGE           5Y OB  1 60
A            TEXT        1760   B  2  1
A            LINNBR         3  OH
A            POSNBR         3  OH

Тот факт, что уровень записи не имеет значения, так как ввод / вывод выполняется через запись, а не поле.Когда запись равна EXFMT, курсор будет расположен в том месте, где вы запрашивали.

Если это не сработает, единственным другим возможным вариантом будет избавиться от файла дисплея и использовать API динамического диспетчера экрана (DSM) для непосредственного взаимодействия с экраном.

...