Neu (Positionen.menge)

Dittmeier

Gut bekanntes Mitglied
3. April 2019
175
11
Hallo zusammen,

wir möchten gerne die Gesamtanzahl der Mengen pro Artikel auf der Rechnung ausgeben. In unterschiedlichen Forumbeiträgen habe ich gelesen das es mit den Ansätzen anbei geht:

"Gesamtmenge " + Cond(JTL. WaWi.Vorgang.VersandkostenBrutto != 0,fStr$(SUM(Positionen.Menge,false)-1,"?"),fStr$(SUM(Positionen.Menge,false),"?")) + " Stück"

Oder

fstr$(sum(Positionen.menge),"?")

Leider können hier verschiedene Formelteile nicht interpretiert werden kann hier jemand helfen?

Danke
DIttmeier
 

net97

Gut bekanntes Mitglied
31. März 2011
283
15
würde das Thema gerne nochmal aufgreifen. Wir benötigen auf dem Lieferschein die Gesamtmenge der gelieferten Artikel über alle Positionen. Hierbei sollten Versandkosten-Positionen und Artikel eine bestimmten Kategorie/Warengruppe (Pfand) nicht mitgezählt werden.
Alle Suchergebnisse im Forum sind steinalt (siehe oben) und bringen nicht wirklich weiter. Danke im Voraus, falls einer einen Lösungsansatz hat.
 

tsadeghi

Aktives Mitglied
19. April 2020
29
15
Servus,

es gibt sicherlich Wege das über die Berichtscontainer zu machen, aber ich würde das einfach mit einer SQL Abfrage lösen (Die Abfrage ist für Lieferscheine, nicht Rechnungen!):

Code:
"Anzahl Positionen: " + JTL_DirectQuery("SELECT
    COUNT(tlp.klieferscheinpos)
FROM
    tLieferscheinPos tLP
    INNER JOIN tLieferschein tL ON tL.kLieferschein = tLP.kLieferschein
    INNER JOIN tbestellpos tbp ON tbp.kBestellPos = tLP.kBestellPos
    INNER JOIN tArtikel tA ON tA.kArtikel = tbp.tArtikel_kArtikel
    INNER JOIN tWarengruppe tW ON tW.kWarengruppe = tA.kWarengruppe
WHERE tW.cName <> 'Pfand' AND tL.kLieferschein ='"+ str$(Vorgang.InterneLieferscheinnummer) + "'" )


Gruß Tara
 

net97

Gut bekanntes Mitglied
31. März 2011
283
15
Vielen Dank Tara, das hört sich cool an. Wo muss ich das denn jetzt genau einfügen? Habe das mit SQL noch nie gemacht.😎
 

tsadeghi

Aktives Mitglied
19. April 2020
29
15
Hi,

die entsprechende Druckvorlage bearbeiten und einfach in einem neuen Textfeld den Code von oben eintragen.
Bildschirmfoto 2022-02-02 um 20.57.12.png

Gruß Tara
 

net97

Gut bekanntes Mitglied
31. März 2011
283
15
super, das hat soweit geklappt. Weisst Du zufällig auch welche Variable ich in der 1.6 anstatt der (Vorgang.InterneLieferscheinnummer) ansprechen muss, damit es da auch funktioniert?
Und dann fiel mir noch auf, daß es nur die Positionen zählt, es sollte aber die Gesamtmenge bzw. Kolli sein, also folgendermaßen:
Pos1 1 Stck.
Pos2 3Stck.
Pos3 2 Stck.
GesamtKolli: 6 Stck.
 
Zuletzt bearbeitet:

tsadeghi

Aktives Mitglied
19. April 2020
29
15
Hi,

so sollte es funktionieren:

Code:
"Anzahl Positionen: " + JTL_DirectQuery("SELECT 
    SUM(CAST(tlp.fAnzahl AS INT))
FROM
    tLieferscheinPos tLP
    INNER JOIN tLieferschein tL ON tL.kLieferschein = tLP.kLieferschein
    INNER JOIN tbestellpos tbp ON tbp.kBestellPos = tLP.kBestellPos
    INNER JOIN tArtikel tA ON tA.kArtikel = tbp.tArtikel_kArtikel
    INNER JOIN tWarengruppe tW ON tW.kWarengruppe = tA.kWarengruppe
    WHERE tW.cName <> 'Pfand' AND tL.kLieferschein ='"+ str$(Report.InternalId) + "'" )

Gruß Tara
 

net97

Gut bekanntes Mitglied
31. März 2011
283
15
super, vielen Dank. Jetzt noch ein kleiner Fehler: Bei Stücklistenartikel werden auch die Artikel der Stückliste mit gezählt. Wie kann man das noch ausschliessen?
Ich muß unbedingt mal bisschen mehr SQL lernen;)
 

tsadeghi

Aktives Mitglied
19. April 2020
29
15
Probier mal das:

Code:
"Anzahl Positionen: " + JTL_DirectQuery("SELECT
    SUM(CAST(tlp.fAnzahl AS INT))
FROM
    tLieferscheinPos tLP
    INNER JOIN tLieferschein tL ON tL.kLieferschein = tLP.kLieferschein
    INNER JOIN tbestellpos tbp ON tbp.kBestellPos = tLP.kBestellPos
    INNER JOIN tArtikel tA ON tA.kArtikel = tbp.tArtikel_kArtikel
    LEFT JOIN tWarengruppe tW ON tW.kWarengruppe = tA.kWarengruppe
    WHERE tW.cName <> 'Pfand' AND tA.kStueckliste = 0 AND tL.kLieferschein ='"+ str$(Report.InternalId) + "'" )

Ich hab auch den Inner Join von der Warengruppe auf einen Left Join geändert, damit Artikel die keiner Warengruppe zugeordnet sind auch erfasst werden.
Als Hinweis: Ich caste oben den Wert aus fAnzahl als Integer. Wenn du Artikel hast du die mit Brüchen von ganzen Zahlen verkaufst, dann wirst du auf Probleme stoßen. Das kannst du leicht selber lösen und so etwas SQL lernen.

Gruß Tara
 
  • Gefällt mir
Reaktionen: getzooshop

net97

Gut bekanntes Mitglied
31. März 2011
283
15
ja, habe mir schon einen Grundkurs bei Linkedin-Learning auf die Merkliste gemacht! 😁
Wenn man in der letzten Zeile auf tA.kStueckliste <> 0 ändert, dann passt es. vielen Dank noch mal an Dich.