LieferscheinNr auf Rechnungs-Report

5. Februar 2016 10:22

Hallo,

ich versuche gerade eigentlich eine simple Anpassung an unserem Rechnungs-Report vorzunehmen, jedoch stellt sie sich als schwieriger heraus als ich dachte.
Bin auf der Suche nach der Umsetzung zwar auf einen Weg gestoßen, aber so richtig kann ich das nicht vervollständigen.
Ich versuche über die "Artikellieferzeilen" die LieferscheinNr herauszubekommen:
getShipmentLine.png


Die notwendige Funktion wie diese Liste aufgebaut wird habe ich herausgesucht:
Code:
GetSalesInvLines(VAR TempSalesInvLine : TEMPORARY Record "Sales Invoice Line")

TempSalesInvLine.RESET;
TempSalesInvLine.DELETEALL;

IF Type <> Type::Item THEN
  EXIT;

FilterPstdDocLnItemLedgEntries(ItemLedgEntry);
ItemLedgEntry.SETFILTER("Invoiced Quantity",'<>0');
IF ItemLedgEntry.FINDSET THEN BEGIN
  ValueEntry.SETCURRENTKEY("Item Ledger Entry No.","Entry Type");
  ValueEntry.SETRANGE("Entry Type",ValueEntry."Entry Type"::"Direct Cost");
  ValueEntry.SETFILTER("Invoiced Quantity",'<>0');
  REPEAT
    ValueEntry.SETRANGE("Item Ledger Entry No.",ItemLedgEntry."Entry No.");
    IF ValueEntry.FINDSET THEN
      REPEAT
        IF ValueEntry."Document Type" = ValueEntry."Document Type"::"Sales Invoice" THEN
          IF SalesInvLine.GET(ValueEntry."Document No.",ValueEntry."Document Line No.") THEN BEGIN
            TempSalesInvLine.INIT;
            TempSalesInvLine := SalesInvLine;
            IF TempSalesInvLine.INSERT THEN;
          END;
      UNTIL ValueEntry.NEXT = 0;
  UNTIL ItemLedgEntry.NEXT = 0;
END;


Jetzt habe ich eine temporäre Variable namens "TempMeineLieferzeilen" mit Record auf die "Sales Invoice Line" angelegt.

Ist es richtig den Aufruf der Funktion im "Sales Invoice Line" - OnPreDataItem mit folgendem Code aufzurufen?
Code:
// Zugriff auf externe Funktion "GetSalesInvLines"
"Sales Shipment Line".GetSalesInvLines(TempMeineLieferzeilen);


Leider bekomme ich als Werte für die temporäre Lieferzeilen nur folgendes angezeigt:
Pic2.png


Und der Wert für den Lieferschein bleibt leer:
Code:
TRD_Lieferschein := TempMeineLieferzeilen."Document No.";


Ist dieser Weg denn der richtige oder gibt es vielleicht eine einfachere Alternative?

Vielen Dank für eure Hilfe!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 13:35

So....ich habe jetzt zumindest schonmal einen guten Ansatz.
Was ich erreicht habe ist eine Wertübergabe an den Report.
Jedoch weiß ich jetzt nicht wie ich im Report selbst auf eine entsprechende Zeile zugreifen kann.
Meine Berichtsinfo zeigt mir folgendes:
Pic3.png


Es weiß doch bestimmt jemand wie ich diesen Wert im Report anzeigen kann.

Danke und Gruß

Daniel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 13:46

Kurze Gegenfrage: Willst Du die Lieferschein-Nr pro Zeile ermitteln und ausgeben oder einmalig auf der Rechnung?

Um alle Lieferscheine zur Rechnung zu finden, genügt ja die "Order No." aus dem Sales Invoice Header. Damit kannst Du dann die Tabelle Sales Shipment Header filtern.

Nur wenn Du pro Zeile sehen willst, mit welcher Lieferung gerade dieser Artikel versendet wurde, reicht das nicht.

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 13:54

Ja ich würde gerne pro Rechnungszeile die entsprechende LieferNr andrucken.
Ich habe mir die entsprechende LieferNr ja schon herausgefiltert.
Weiß nur nicht wie ich diese in den Report übernehme.

Ist das ohne großen Aufwand möglich?

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 14:58

Um alle Lieferscheine zur Rechnung zu finden, genügt ja die "Order No." aus dem Sales Invoice Header. Damit kannst Du dann die Tabelle Sales Shipment Header filtern.


das funktioniert leider nur bei Einzelrechnungen (nicht bei Sammelrechnungen aus mehreren Aufträgen) und wenn es nur eine Rechnung pro Auftrag gibt. :roll:

Gruß Fiddi

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 19:15

Vielleicht steht ich gerade auf'm Schlauch, aber es gibt doch das Feld 63 in der Tabelle 113 wo die Lieferungsnr. drin steht.

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 19:51

Vielleicht steht ich gerade auf'm Schlauch, aber es gibt doch das Feld 63 in der Tabelle 113 wo die Lieferungsnr. drin steht.

Ich weiß ja, ich bin nervig. Aber wenn du mit dem Feld die Lieferscheinnummer in der Rechnung meinst, dann steht die da nur drin, wenn du die Rechnung per Sammelrechnung(Report295 oder Lieferzeilen holen) erstellt hast. Bei einer Rechnung aus dem Auftrag kann es sogar mehrere Lieferscheine pro Rechngszeile geben.

Gruß Fiddi

Re: LieferscheinNr auf Rechnungs-Report

5. Februar 2016 20:01

Du bist nicht nervig. Und du hast recht. Ich buche immer mit dem Abruf von daher war mir gerade nicht bewusst dass nur dann das Feld gefüllt ist.

Re: LieferscheinNr auf Rechnungs-Report

6. Februar 2016 02:48

Wer es auf die Spitze treiben möchte, kann sogar mehrere Rechnungszeilen pro Lieferscheinzeile haben.

Gruß Fiddi

Re: LieferscheinNr auf Rechnungs-Report

7. Februar 2016 19:09

Also wäre der worst case eine Sammelrechnung, die aber nur Teilfaktura darstellt.
Dann wäre die relationale Beziehung zwischen Gebuchten Lieferscheinen und Rechnungen N:M

Re: LieferscheinNr auf Rechnungs-Report

7. Februar 2016 20:47

Also wäre der worst case eine Sammelrechnung, die aber nur Teilfaktura darstellt.

Ganz und gar nicht :wink: .
Denn bei einer Sammelrechnung steht die Referenz auf die Lieferscheinzeile in der Rechnungszeile.

Der sicherste Weg ist der Weg über die Wertposten der Rechnung auf die Artikelposten zu gehen.
Dabei sollte man berücksichtigen, dass es bei Serien- oder Chargennummern- verfolgten Artikeln mehrere Artikelposten pro Lieferscheinzeile geben kann. :-)

Gruß Fiddi

Re: LieferscheinNr auf Rechnungs-Report

9. Februar 2016 09:27

Hallo,

im Report 206 gibt es die Funktion FindPostedShipmentDate. Diese Funktion kannst Du Dir zunutze machen um die Lieferzeilen herauszufinden.

FindPostedShipmentDate.jpg


Gruß

Michael
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: LieferscheinNr auf Rechnungs-Report

9. Februar 2016 10:01

Hallo,

im Report 206 gibt es die Funktion FindPostedShipmentDate. Diese Funktion kannst Du Dir zunutze machen um die Lieferzeilen herauszufinden.


Für Artikel funktioniert das, aber nur wenn es keine Überschneidungen bei gebuchten Belegnummern gibt. (sowohl EK als auch VK. Die Routine zum Suchen der Wertposten prüft die Belegart nicht, was aber so einfach nicht zu ändern ist, da Belege aus älteren NAV- Versionen das Feld Belegart nicht kennen und somit nach einem Update nur einen Default- Wert enthalten) :-?

Für Zuschläge, Sachkonten und Anlagen, möchte der Report gerne über die Auftragsnummer im Rechnungskopf gehen, die gibt es bei Sammelrechnungen aber nicht, weil mehrere Aufträge in einer Rechnung enthalten sein können. :roll:

Deshalb ist das ein Muster ohne viel Wert. In früheren Versionen hat das auch dazu geführt, das der Belegdruck wegen der ganzen Sucherei das System sehr ausgebremst hat :-(

Die sicherste und schnellste Methode ist die Einführung einer Referenztabelle, die beim Buchen der Rechnung eine Referenztabelle mit der Lieferzeilen- Rechnungszeilen- Beziehung schreibt, die man beim Drucken der Rechnung statt des SalesShipmentbuffers zieht.

Gruß Fiddi

Re: LieferscheinNr auf Rechnungs-Report

10. Februar 2016 14:27

Ich habe ja mir eine temporäre Lieferzeile erstellt in der mir die Lieferschein-Nr. auch anzeigt wird.
Mein Problem besteht momentan nur darin wie ich die Information in den Report bekomme.

Hinweis auf vorherigen Post:
NavBeginner hat geschrieben:So....ich habe jetzt zumindest schonmal einen guten Ansatz.
Was ich erreicht habe ist eine Wertübergabe an den Report.
Jedoch weiß ich jetzt nicht wie ich im Report selbst auf eine entsprechende Zeile zugreifen kann.
Meine Berichtsinfo zeigt mir folgendes:
Pic3.png


Es weiß doch bestimmt jemand wie ich diesen Wert im Report anzeigen kann.


Wie kann ich auf den Wert zugreifen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.