Я заметил очень странное поведение оператора IF в Progress 4gl.
Я определяю целое число в формате «999», что означает, что оно должно состоять из 3 цифр, а затем я присваиваю значение ниже 100 (например, 12), а затем, когда я показываю его, оно отображается как «012», как и должно.
Но когда я добавляю оператор IF внутри оператора DISPLAY, который на самом деле ничего делать не должен, переменная отображается как «12».
Это тестовый код для выяснения различий. LABEL не влияет на вывод переменной.
DEF VAR tmp AS INTEGER FORMAT "999".
ASSIGN tmp = 12.
DISPLAY
tmp LABEL "disp1".
DISPLAY
IF TRUE THEN tmp ELSE tmp LABEL "disp2".
Такого же поведения можно добиться, изменив формат на «> 99».
У меня вопрос: почему оператор IF изменяет способ отображения переменной?
С уважением // MrBucket