6. Oktober 2009 10:56
Ich beschäftige mich erst seit 2 Monaten mit Navision und kann eigentlich nicht einmal programmieren.
Trotzdem versuche ich gerade kleinere "Problemchen" über Code zu lösen... Vielen Dank schon mal für eure Hilfe!
Mein Problem:
Ich importiere Datensätze in eine neuerstellte Tabelle.
Ich möchte erreichen, dass beim Import neuer Datensätze nicht die alten doppelt erscheinen sondern nur um die neuen ergänzt werden.
Dies ist mir weitestgehend dadurch gelungen, dass ich NACH dem Import eines Records im
OnAfterImportRecord() prüfe, ob die Zeile alt ist (anhand des Datum und der Uhrzeit des letzten vorher vorhandenen Datensatzes) und ist dies der Fall mit dem nächsten Record überschreibe.
Problem ist natürlich, dass der letzte Eintrag meiner Tabelle so - sollte sich an den zu importierenden Daten nichts verändert haben - doppelt eingetragen bleibt, da er ja nicht mehr überschrieben werden kann.
Jetzt möchte ich anhand des Datums(Date) und der Uhrzeit(Time) den vorletzten und den letzten Datensatz vergleichen. Sind diese identisch, soll der letzte Datensatz gelöscht werden.
Ich habe folgenden (sicher umständlichen) Versuch unternommen, aber die Ausführung hat überhaupt keinen Effekt auf mein Ergebnis.
Tabelle - OnPostDataItem()
IF Tank.FIND('-') THEN
REPEAT
VorLNr := "LaufNr.";
VorLDatum := Datum;
VorLZeit := Uhrzeit;
UNTIL
Tabelle.NEXT(+2)=0;
IF Tabelle.FINDLAST THEN
BEGIN
LetzteNr := "LaufNr.";
LetztesDatum := Datum;
LetzteZeit := Uhrzeit;
IF VorLDatum = LetztesDatum THEN
IF VorLZeit = LetzteZeit THEN
Tabelle.DELETE(TRUE);
END;
Vielleicht kann mir auch jemand sagen, wie ich direkt zum vorletzten Eintrag springe. Immerhin weiß ich ja die ID (="LaufNr.") des Datensatzes, wenn ich den letzten Datensatz ermittelt habe.
Zuletzt geändert von NewbieK am 21. Oktober 2009 23:49, insgesamt 1-mal geändert.