Форматирование не работает в 4gl [пункт USING]
Я пытался отформатировать выходную переменную следующим образом:
Сценарий 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 ответ
Решение
Вы не говорите, что вы получаете, из-за чего трудно понять, как это не работает.
У вас есть небольшие синтаксические ошибки, пропущенные запятые после константных строк.
Вы не показываете декларацию 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