Ist die INFDS denn keine Lösung? Da kann man ja für Free folgende Lösung verwenden:

*in55 = IO_RCD_FMT = 'FORMAT1';
*in56 =
IO_RCD_FMT = 'FORMAT2';

Es scheint ja allgemein nicht bekannt zu sein, dass man Ergebnisse von If-Abfragen als Ausdruck einem Indicator zuweisen kann.

Es sieht zwar komisch aus, aber eine Klammer kann man wegen der Optik auch setzen:

*in55 = (IO_RCD_FMT = 'FORMAT1');
*in56 =
(IO_RCD_FMT = 'FORMAT2');

Der Vorteil ist gerade bei DSPF/PRTF sowie anderen Abfragen weniger Schreibarbeit, also statt

if
IO_RCD_FMT = 'FORMAT1';
*in55 = *on;
else;
*in55 = *off;
endif;

Das klappt mit jedem If-Konstrukt, also auch mit and/or/KLammern.