Dann ist dein bisheriges Verfahren die einzige Lösung.
Du kannst zwar eine Druckzeile per Programm auch dynamisch aufbauen, ob das aber hilft:

/free
PRTFLD = FLD1 + FLD2 + FLDx ... + %EDITC(FLDN:'K') + ...
/end-free

Der Nachteil ist halt, dass man die Feldnamen kennen muss und die Editcodes nicht als Variable definieren kann.