[Gelöst] CC Einzelne Werte pro DS bestimmen

2. Januar 2012 12:12

Hallo Community,

ich stehe wieder einmal aufm Schlauch und hoffe dass mir jemand helfen kann.

Mit einem Dataport lese ich FiBu Daten in eine Tabelle. Wenn Daten falsch sind, wird eine Form aufgerufen, wo der Benutzer sehen kann, welcher Datensatz falsch ist und bekommt auch einen entsprechenden Fehlertext angezeigt (siehen Bild im Anhang).

Hier ein kleiner Ausschnitt aus dem OnAfterImportRecord Trigger:
Code:
g_Puffertabelle.RESET;
g_Puffertabelle.INIT;
g_Puffertabelle."Journal Template Name" := g_FiBuBuchBlattName."Journal Template Name";
g_Puffertabelle."Journal Batch Name" := g_FiBuBuchBlattName.Name;
IF g_Puffertabelle.FINDLAST THEN BEGIN
  g_Puffertabelle."Line No." += 10000
END ELSE BEGIN
  g_Puffertabelle."Line No." += 10000;
END;
g_Puffertabelle.INSERT();

// hier sollen jetzt die ganzen FiBu Daten überprüft werden
// wenn das Buchungsdatum leer ist, soll mir der Datensatz als Falsch (In der Form) angezeigt werden
// und der Fehlertext "Buchungsdatum nicht vorhanden" lauten
g_Puffertabelle."Posting Date" := "Posting Date";
IF g_Puffertabelle."Posting Date" = 0D THEN BEGIN
  g_Puffertabelle.Status := g_Puffertabelle.Status::Falsch;
  g_Puffertabelle.Fehlertext := "Buchungsdatum nicht vorhanden";
END;
// weitere Datenüberprüfung...


Wenn jetzt z.B. das Buchungsdatum in Zeile 50000 leer ist, wie kann ich genau für diesen Datensatz den Fehlertext und den Status als "Falsch" bestimmen, ohne dass das gleiche auch in allen anderen Datensätzen drinne steht?

Besten Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von okidoki am 2. Januar 2012 12:49, insgesamt 1-mal geändert.

Re: CC Einzelne Werte pro DS bestimmen

2. Januar 2012 12:35

Kannst du etwas genauer beschreiben, was du damit meinst, dass der Fehlertext in allen Datensätzen steht? Mir ist nicht klar, wie das gehen soll ...

Der Code am Anfang zum Bestimmen der letzten Zeilennummer bringt so übrigens nicht viel; da solltest du mit SetRanges arbeiten. So
Code:
g_Puffertabelle."Journal Template Name" := g_FiBuBuchBlattName."Journal Template Name";
g_Puffertabelle."Journal Batch Name" := g_FiBuBuchBlattName.Name;
IF g_Puffertabelle.FINDLAST THEN BEGIN
wird nur der allgemein letzte Datensatz gefunden. Wobei das bei einer Puffertabelle wahrscheinlich nichts ausmacht.

Re: CC Einzelne Werte pro DS bestimmen

2. Januar 2012 12:46

Achso.. okay, dann werde ich am besten filtern :P

im Anhang ist nochmal ein neues Bild mit Daten.
Die erste Zeile wäre so korrekt mit den Werten, nur die anderen Zeilen übernehmen die Werte auch :(
Musste die Hauptdaten allerdings ein bisschen "verdecken" ;)


EDIT:
OH MAN, DAS PROBLEM LAG TATSÄCHLICH AN DEM FINDLAST...
VIELEN DANK, ICH HABE JETZT DAS RICHTIGE ERGEBNIS :-)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.