Форматирование не работает в 4gl [пункт USING] - PullRequest
2 голосов
/ 23 июня 2011

Я пытался отформатировать выходную переменную следующим образом:

Сценарий 1:

LET msg = "Roopesh Majeti here "
           Empno Using "&&&&&"
Call Logmsg(msg)

В этом сценарии empno форматируется до 5 цифр [я должен сказать пробелы] и

Сценарий 2:

Let c_check = "&&"
Let msg ="Roopesh Majeti here"
          Empno using c_check
Call Logmsg(msg)

Здесь я ожидаю, что, каково бы ни было значение c_check [скажем, 10 & s], тогда empno должен быть отформатирован до 10 позиций / пробелов.

Но он работает не так, как ожидалось.

Я что-то здесь упускаю?

1 Ответ

1 голос
/ 07 октября 2011

Вы не говорите, что вы получаете, из-за чего трудно понять, как это не работает.

У вас есть небольшие синтаксические ошибки, пропущенные запятые после константных строк.1004 * Вы не показываете объявление msg или c_check;Может ли быть проблема в том, что сообщение усекается?

Что вы получаете, когда используете:

DISPLAY "<<", msg CLIPPED, ">>"
DISPLAY "<<", msg,         ">>"

Вы должны показать нам полную программу наподобие этой и ее вывод:

MAIN

    DEFINE msg      CHAR(64)
    DEFINE c_check  CHAR(20)
    DEFINE empno    INTEGER

    LET empno = 12345
    LET msg = "Roopesh Majeti here ", empno Using "&&&&&"
    DISPLAY "<<", msg CLIPPED, ">>"
    DISPLAY "<<", msg,         ">>"

    LET empno = 987654321
    LET c_check = "&&"
    LET msg ="Roopesh Majeti here", empno USING c_check
    DISPLAY "<<", msg CLIPPED, ">>"
    DISPLAY "<<", msg,         ">>"

END MAIN
...