Auswertung Lagerbestand nach Lagerortcode

15. September 2014 12:31

Hallo,

ich benötige ein Report, der mir in jeder Zeile die Art. Nr., Beschreibung reinschreibt und daneben den Gesamtbestand, davon Bestand Lagerort A und Bestand Lagerort B.

Ich habe es folgendermaßen versucht zu lösen:
Code:
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";


Leider weiß ich nicht genau ob ich die Item Tabelle nehmen soll und den Filter auf "Net Change" setzen soll oder lieber die Item Ledger Entry und mir da die Bestände filtern soll.

Im moment zeigt er mir den Gesamt Lagerbestand pro Artikel an und auch den Lagerbestand für Lagerort A. Leider braucht der Report verdammt lange und ab Erstellung der Seite 5 geht auch nichts mehr.

Vielleicht hat jemand ein denkanstoß für mich.

Ich bin ein totaler neuling, also bitte etwas sanfter mit mir umgehen :)

Grüße
Paul

Re: Auswertung Lagerbestand nach Lagerortcode

15. September 2014 12:46

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. :mrgreen:
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

Re: Auswertung Lagerbestand nach Lagerortcode

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. :mrgreen:
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


Hallo Fiddi,

vielen Dank für deine schnell Antwort.
Anbei meinen geänderten Code, ich habe vor der Berechnung der Gesamtsumme noch einen RESET eingesetzt

Code:
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";


Die Überprüfung "Net Change" = 0 habe ich mal für den Test rausgenommen.

Er zeigt mir jetzt immer den Gesamtbestand an und den Bestand vom Lagerort B. Lagerort A ist immer auf null.

Zu deinen Punkten:
1. siehe oben,
2. siehe oben,
3. Leider arbeiten wir nicht mit Lagerhaltungsdaten.

Grüße
Paul