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