VK-Rechnung: Lieferscheinnummern

25. Mai 2007 09:44

Moin,

für nen Kunden soll ich nach dem Rechnungskopf, aber vor den Rechnungszeilen die dazu gehörigen (gebuchten) Lieferscheinnummern ausgeben. Ist mit den Auftragsnummern in Rechnungs und Lieferscheinkopf ja auch nicht so schwer ;-) alledings habe ich auch den Spezialfall, daß ich zu /einer/ Auftragsnummer /zwei/ Rechnungsnummern und insgesamt 6 Lieferscheine habe.

:-(

Wie filtere ich nun am dümmsten die Lieferschenköpfe auf die die zur Rechnung gehören?

Grüße

Markus

28. Mai 2007 14:41

Moin Moin,

Es muss ja nicht Dumm sein, Hauptsache es funktioniert.
Du hast ja zunächst im Belegkopf jeweils die Auftragsnummer, so hast Du den Bezug hergestellt.
Willst Du die Lieferscheinnummern in der entsprechenden Rechnungszeile mit anzeigen? Die Zeilennummer aus dem VK-Auftrag sind in der Rechnung und in den Lieferscheinen gleich.
Ich würde nach der Rechnungszeile gehen in den Lieferzeilen nachsehen ob die Liefermenge ungleich 0 ist, wenn ja, die Belegnummer in eine Variable setzen und in der Section ausgeben. Am besten ein Setrange auf die Lieferzeile mit Auftragsnummer, Zeilenummer und Menge <>0.
Falls eine Rechnungszeile die Menge aus zwei Teilleiferungen (10 = 5+5) beinhaltet, muss diese Variable lang genug sein.

Falls die Lieferscheine irgendwo als Liste im Belegkopf oder Fuß stehen sollen, dann würde ich beim Durchlaufen der Rechnungszeilen ein Array füllen und anschließend irgendwo ausgeben.

Aus der Sicht des Kunden würde ich die Lieferscheinnummer in der Rechnungszeile mit ausgeben.

Grüße
Miljenko Martinac

10. April 2008 11:13

Hallo,

ich möchte gerne die Lieferscheinnummern im Rechnungskopf angeben. In den Rechnungszeilen hab ich sie bereits. Es ist auch kein Problem ein Array mit allen Lieferscheinnummern zu füllen und daraus einen String zu basteln, in dem alle Nummer mit Komma getrennt drinstehen. Aber wie krieg ich diesen String dann nachträglich noch in den Kopf? Der Kopf ist ja bereits gedruckt, wenn die Zeilen durchlaufen werden. Oder sehe ich das falsch? Kann mir jemand einen Tip geben?

Gruß,
Christian

10. April 2008 11:19

Du müsstest dann bevor der Kopf gedruckt wird, dir die Lieferscheinnr. ziehen und so den String zusammenbauen der dann im Kopf gedruckt wird. Du könntest dazu einen der beiden Trigger nutzen:

1. OnPreSection-Trigger der Kopf-Sections
2. OnPreDateItem-Trigger des Kopf-DataItems

Beide Trigger werden vor dem Drucken durchlaufen.

Gruß, Marc

10. April 2008 15:40

OnPreDataItem ist zu früh beim DataItem muss das in OnAfterGetRecord, damit das für jede Rechnung erneut angestossen wird.

@chris85, wie hast du die Lieferscheinnummern in die Zeilen gebracht?
Und was hast du gemacht, wenn eine Zeile in mehreren Teillieferungen erledigt wurde?

10. April 2008 17:45

Ich hab die Lieferscheinnummern über die Wertposten und die Artikelposten in die Zeilen bekommen.

10. April 2008 18:00

also angelehnt an die vorhandene Bufferlines programmierung, die die Lieferdati holt, richtig?

OK, dann bin ich ja auch auf dem richtigen Ansatz, unser Kunde möchte die Zeilen dann nämlich auch noch nach Lieferscheinnummern gruppiert haben. Ich sehe eben nur das Problem, wenn es 2 (oder gar noch mehr) Lieferscheine für die gleiche Auftragszeile gibt.

10. April 2008 18:12

Genau, angelehnt an die Bufferlines. Hab auch ne ganze Weile dran rumgebastelt, bis es funktioniert hat. Ich hab es hinbekommen, dass auch Teillieferungen richtig angezeigt werden. Hab den Quelltext leider gerade nicht zur Hand, aber wenn Du dabei noch Probleme hast, kann ich Dir morgen genauere Auskunft geben.

10. April 2008 23:11

Ja, mir fehlt da im Moment die zündende Idee, ...

11. April 2008 08:28

Wo hängt es denn bei Dir?
Also ich habe in der Tabelle SalesShipmentBuffer ein neues Feld für die LS-Nummer angelegt.
Dann in der Methode GenerateBufferFromValueEntry den Methodenaufruf AddBufferEntry um den Wert ItemLedgerEntry."Document No." erweitert.
Danach die Methode AddBufferEntry so erweitert, dass die übergebene Nummer in SalesShipmentBuffer eingetragen wird.
Dann muss hier und da noch was auskommentiert werden...

11. April 2008 10:20

Michael Schumacher hat geschrieben:OnPreDataItem ist zu früh beim DataItem muss das in OnAfterGetRecord, damit das für jede Rechnung erneut angestossen wird.

Oh sorry, mein Fehler! :oops: OnAfterGetRecord natürlich! :-)

11. April 2008 12:17

Chris85 hat geschrieben:Wo hängt es denn bei Dir?

Bei mir hängts daran, dass ich die Nummern in der Rechnungszeile selbst unterbringen muss, da der Buffer ja für jede Zeile geleert und neu erstellt wird. Ich muss die Zeilen anschließend nach Lieferscheinnummern gruppieren können. ich muss wahrscheinlich eine neue temporäre Tabelle erzeugen, die alle benötigten Informationen aus der Rechnungszeile zuzüglich der Lieferscheinnummer als weiteres primärschlüsselfeld enthält und zwar noch vor der Zeilennr und dieses als Dataitem für die Ausgabe verwenden.