27. Februar 2009 10:14
Hallo,
neulich bin ich auf ein Problem gestossen bei dem ich einfach nicht weiterkomme.
In einer Codeunit hole ich mir Datensätze aus einem Table und ich möchte jedesmal eine fortlaufenden Zeilennummer vergeben.
Dabie sool er zunächst die letzte vergebene Zeilenummer finden und dann beim Einsetzen der nächsten um 1 erhöhen.
Achtung: Ich möchte ausdrücklich [b]nicht MODIFY statt INSERT[\b] verwenden, da ich sonst mit den gewonnen Daten nicht mehr weiter arbeiten kann. Deshalb soll eine Zeilennummer vergeben werden, um gleiche Recs unterschiedlich zu machen, um somit immer INSERT benutzen zu können.
Es sind ungefähr so aus:
- Code:
IF Rec1.FINDFIRST THEN
REPEAT
IF Rec2.FINDLAST THEN // letzte Zeilenummer soll bestimmt werden
Zeile:= Rec2.Zeile // TRUE- Zweig: letzte Zeilenummer verwenden
ELSE
Zeile:=0; // FALSE-Zweig Zeilennummerstartwert= 0
Zeile:= Zeile + 1; // Zeilenummer
Rec2.Zeile:=Zeile; // Übergabe der neuen Zeilenummer
Rec2.INSERT; // Einsetzen im Table, an dieser Stelle, beschwert sich der Debugger ( dürfen die Felder des Primärschlüssel nicht gleich sein?)
UNTIL
Rec1.NEXT = 0;
Rec2 ist der Table in dem geschrieben werden soll.
Die Frage ist, wo der Denkfehler liegt. Brauche ich hier womöglich als Primärschlüssel die Zeile???
MfG und vorab allen ein schönes Wochenende!
Alex