Da hilft nur ein bisschen Arbeit:
Per SYSCOLUMNS kannst du dir zu den Namen die relative Position und Typen ja abfragen.
Jetzt führst du nur eine Tabelle mit den Namen und der rel. Adresse in der DS.
Dann kannst du per %subst(MyDs:Pos:Len) über den Namen extrahieren und verarbeiten.
Gepackte Daten würde ich in eine HilfsDS packen:

D NumDS ds
D NumFld 31p 0

d HelpDS DS
d HelpNum 31p 0 inz
d HelpX 15 overlay(HelpNum)

evalr NumDs = HelpX + %subst(MyDs:Pos:Len)