Neu Seriennummer auf Lieferschein richtig ausgeben

  • Ersteller des Themas Ersteller des Themas Fugel
  • Erstellungsdatum Erstellungsdatum

Fugel

Gut bekanntes Mitglied
5. Mai 2021
110
7
Hallo Kollegen,

wir möchten gern auf unserem Lieferschein die Seriennummern ausgeben und verwenden dazu bereits folgenden Code:


Code:
LocNumber$(DeliveryNotePositionDeliveryDetails.Quantity, JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO), @DecimalQuantity) +
cond(IsNullOrEmpty(DeliveryNotePosition.Unit), "", " " +DeliveryNotePosition.Unit) +
cond(IsNullOrEmpty(DeliveryNotePositionDeliveryDetails.BatchNumber), "", " Charge: " + DeliveryNotePositionDeliveryDetails.BatchNumber)  +
cond(IsNull(DeliveryNotePositionDeliveryDetails.BestBeforeDate), "", " MHD: " + LocDate$(DeliveryNotePositionDeliveryDetails.BestBeforeDate, JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO))) +

JTL_DirectTableQuery("SELECT cSeriennr FROM tLagerArtikel WHERE kLieferscheinPos = '" + Str$(DeliveryNotePosition.InternalId,0,0) + "'",'',', ')

Leider führt dieser Code dazu, dass die augabe bei mehreren Seriennummern so aussieht:

1,12345,12346,12347
2,12345,12346,12347
3,12345,12346,12347

Die "Zeilenzahl" ganz am Anfang brauche ich überhaupt nicht und auch alle überflüssigen Zeilen können weg. Kann mir hier jemand sagen, wie ich es richtig mache?

Danke!
 

frankell

Sehr aktives Mitglied
9. September 2019
2.685
840
Flensburg
Hallo @Fugel,

wenn ich Dich richtig verstehe, gibt es zu einer Lieferscheinposition mehrere Seriennummern und die Variable DeliveryNotePositionDeliveryDetails.SerialNumber gibt nichts aus, richtig?

Dann probiere es mal mit folgender letzten Codezeile:

Code:
JTL_DirectQuery("
SELECT
    STRING_AGG(cSeriennr, ', ')
FROM
    tLagerArtikel
WHERE
    kLieferscheinPos = "+Str$(DeliveryNotePosition.InternalId)+"
")
 
  • Gefällt mir
Reaktionen: Fugel

John

Sehr aktives Mitglied
3. März 2012
4.215
1.088
Berlin
...wenn Du nicht weiter kommst baue ich Dir das gerne funktionierend in Deine Vorlage ein.
Details per PM
 

Fugel

Gut bekanntes Mitglied
5. Mai 2021
110
7
Hallo @Fugel,

wenn ich Dich richtig verstehe, gibt es zu einer Lieferscheinposition mehrere Seriennummern und die Variable DeliveryNotePositionDeliveryDetails.SerialNumber gibt nichts aus, richtig?

Dann probiere es mal mit folgender letzten Codezeile:

Code:
JTL_DirectQuery("
SELECT
    STRING_AGG(cSeriennr, ', ')
FROM
    tLagerArtikel
WHERE
    kLieferscheinPos = "+Str$(DeliveryNotePosition.InternalId)+"
")
Danke für den Code. Ich hab diesen jetzt mal eingefügt, kann ihn aber noch nicht testen, das die letzte Bestellung nur eine Seriennummer hatte und in der Vorschau ja nur die letzte Bestellung verwendet wird. Sobald eine entsprechende Bestellung da ist, werde ich mich wieder melden. Vielen Dank!
 

John

Sehr aktives Mitglied
3. März 2012
4.215
1.088
Berlin
...geh einfach in die Verwaltung der Durckvorlagen und wähle als Datenquelle/Designobjekt einen Lieferschein aus, der mehrere Seriennummern hat...
 

Anhänge

  • DesignObjekt.png
    DesignObjekt.png
    57,3 KB · Aufrufe: 9
  • Gefällt mir
Reaktionen: Fugel

Fugel

Gut bekanntes Mitglied
5. Mai 2021
110
7
...geh einfach in die Verwaltung der Durckvorlagen und wähle als Datenquelle/Designobjekt einen Lieferschein aus, der mehrere Seriennummern hat...
Danke für den Hinweis, das war mir neu. Also das Problem besteht weiterhin, es werden pro Seriennummer eine Zeile mit allen Seriennummern ausgegeben. Das Komische ist auch, das vor jeder Zeile 1,00 steht und dann die S/N direkt "rangeklatscht" wird.
 

Anhänge

  • Screenshot 2025-03-24 130718.jpg
    Screenshot 2025-03-24 130718.jpg
    33,1 KB · Aufrufe: 10

frankell

Sehr aktives Mitglied
9. September 2019
2.685
840
Flensburg
Danke für den Hinweis, das war mir neu. Also das Problem besteht weiterhin, es werden pro Seriennummer eine Zeile mit allen Seriennummern ausgegeben. Das Komische ist auch, das vor jeder Zeile 1,00 steht und dann die S/N direkt "rangeklatscht" wird.

Das 1,00 kommt von diesem Teil des Codes:

Code:
LocNumber$(DeliveryNotePositionDeliveryDetails.Quantity, JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO), @DecimalQuantity) +
cond(IsNullOrEmpty(DeliveryNotePosition.Unit), "", " " +DeliveryNotePosition.Unit) +
cond(IsNullOrEmpty(DeliveryNotePositionDeliveryDetails.BatchNumber), "", " Charge: " + DeliveryNotePositionDeliveryDetails.BatchNumber)  +
cond(IsNull(DeliveryNotePositionDeliveryDetails.BestBeforeDate), "", " MHD: " + LocDate$(DeliveryNotePositionDeliveryDetails.BestBeforeDate, JTL_GetCulture(Report.CountryISO, Report.LanguageISO, Report.CurrencyISO))) +

Probier mal Folgendes:

SQL:
SELECT
    STRING_AGG(ART.cArtNr + ': ' + LART.cSeriennr, ', ')
FROM
    tLagerArtikel AS LART
    LEFT JOIN tArtikel AS ART ON LART.kArtikel = ART.kArtikel
WHERE
    LART.kLieferscheinPos = "+Str$(DeliveryNotePosition.InternalId)+"
GROUP BY
    LART.kArtikel
 

Fugel

Gut bekanntes Mitglied
5. Mai 2021
110
7
Hallo Leute, ich hab den Fehler gefunden. Ich hatte den Code einfach an einer falschen Stelle platziert, simit wurde dieser immer so of ausgeführt, wie es S/N gegeben hat. Jetzt funktioniert es mit dem Code von @frankell

Danke für die Hilfe!
 

Ähnliche Themen