Hallo Helwo,

was mich an Deinem Problem am meisten verwirrt ist "Rechts neben die 1. Position"

Sollen die ANR's in unterschiedliche Felder, oder direkt in das Feld GEBO geschrieben.

In beiden Fällen muss klar sein, dass sowohl die Anzahl der Felder als auch die Feldlänge nicht beliebig per Programm erweitert werden kann. (evt. Datenverlust!)

Nur noch mal zum Verständnis.
Soll das Ganze wie folgt aussehen:
Ursprungs-Datei:
KDNR ANR GEBO
10 4711
10 4712
10 4713
11 4810
11 4812
11 4819

Nach Update:
KDNR ANR GEBO
10 4711 4712 4713
10 4712 4713
10 4713
11 4810 4812 4819
11 4812 4819
11 4819

Realisieren könnte man dies, indem man zwei Lesescheifen verwendet.
1. Leseschleife für den Update
2. Leseschleife zum Ermitteln des Strings für GEBO

z.B.
H DEBUG DECEDIT('0,') DATEDIT(*DMY.)
FFileUP UF E K DISK
FFileIP IF E K DISK rename(FileF: FileIF)

D $$GEBO S Like(GEBO)
D K$KDNR S like(KDNR)
D K$ANR S like(ANR)

C do *Hival
C read (E) FILEF
C if %EOF
C leave
C endif
c exsr XGEBO
C eval GEBO = $$GEBO
C update (E)FILEF
C enddo

C eval *InLR = *on
************************************************** ********************************************
C XGEBO BegSR

C clear $$GEBO

C KeyL Klist
C Kfld K$KDNR
C Kfld K$ANR

C eval K$KDNR = KDNR
C eval K$ANR = ANR

C KeyL setgt FILEIF

C Do *HiVal
C K$KDNR reade FILEIF
C if %EOF
C leave
C endif
C eval $$GEBO = %TrimR($$GEBO) + ANR
C Enddo

C EndSR

Du benötigst für diese Lösung entweder eine logische Datei mit dem gleichen Schlüssel wie die physische, oder Du überschreibst die physische Datei in einem vorgelagerten CL-Programm.
(Die Überschreibung kann natürlich auch im RPG-Programm erfolgen, dazu müssen die Dateien allerdings explizit geöffnet werden. USROPN in den F-Bestimmungen)

Der Quellcode ist nur beispielhaft und nicht getestet.
Vielleicht hilft Dir das weiter

Birgitta