15. September 2014 12:31
Item - OnAfterGetRecord()
SETRANGE("Date Filter",0D,StatusDate);
CALCFIELDS("Net Change");
IF "Net Change" = 0 THEN
CurrReport.SKIP;
SETRANGE("Location Filter",'A');
CALCFIELDS("Net Change");
InvA := "Net Change";
SETRANGE("Location Filter",'B');
CALCFIELDS("Net Change");
InvB := "Net Change";
15. September 2014 12:46
15. September 2014 13:08
fiddi hat geschrieben:Hallo Pablo1985,
Herzlich Willkommen im Forum
im Prinzip kannst du das so machen.
Ein paar Kleinigkeiten sind mir allerdings aufgefallen:
1. Du machst kein Reset auf Item bevor du die Gesamtbewegung berechnest. so wird ab dem zweiten Artikel immer Lagerort B auf Nullbestand geprüft.
2. Eine Gesamtbewegung von 0 auf dem Artikel heißt nicht, das kein Bestand da ist. Er kann auf A -1 und auf B +1 sein.
3. falls ihr mit Lagerhaltungsdaten arbeitet, sollte der Bestand dort einfacher zu ermitteln sein.
Über die Artikelposten funktioniert das ganze auch, du musst dann nur etwas mehr programmieren und die Posten richtig sortieren (evtl. Schlüssel anpassen)
Gruß, Fiddi
RESET;
SETRANGE("Date Filter",0D,StatusDate);
CALCFIELDS("Net Change");
{IF "Net Change" = 0 THEN
CurrReport.SKIP; }
SETRANGE("Location Filter",'A');
CALCFIELDS("Net Change");
InvA := "Net Change";
SETRANGE("Location Filter",'B');
CALCFIELDS("Net Change");
InvB := "Net Change";