Summe mit Berrechnung von Benutzerfelder im Belege Ausdruck bei einer AB (VK)

Dieses Thema im Forum "AppDesigner" wurde erstellt von Vic, 18. Juni 2020.

  1. Vic

    Vic Mitglied

    Guten Tag,

    Ich habe einen ADR Transport in den Belegenausdruck erstellt (Verkauf) im Appdesigner/ReportDesinger. Ich brauche dieses Dokument für Exporte und brauche die Mengen pro einen UN Code zu sortieren und zu berrechnen (die Berrechnung einmal für gewicht KG und ein total für Liter. Ich habe 9 verschiedene Verpackungsart pro Artikel dass ich in der BelegerfassungPosition manuel erfasse und in meinem ADR Transport das Brutto Gewicht KG / L berrechne.

    So sieht meinen Dokument aus :
    upload_2020-6-18_11-1-37.png

    Ich berrechne das Total KG für code 1169 so :
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0100)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 0.260 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0250)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 0.310 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0500)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 0.660 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK1)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 1.160 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK5)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 5.380 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK10)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 10.760 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK20)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 21.600 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK25)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 26.600 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK180)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 200 AS UN1169_kg_somme

    für die Liter habe ich folgender Felder erstellt :

    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0100)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 0.125 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0250)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 0.325 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0500)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 0.625 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK1)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 1.25 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK5) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 6 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK10) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 12.5 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK20) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') * 30 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK25) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer = '1169') *
    30 AS UN1169_Litre_somme

    Ich habe folgenden Fragen ?

    - Ich habe versucht das Feld Total Kg und Liter automatisch zu berrechnen wie folgt (siehe unten) : aber es funktionniert leider nicht, habe eine Fehlermedung (Invalid SELECT statement, unexpected token "*" at line 1560, pos 122 ). Kann mir jemand helfen die SQL Abfrage zu korriegen oder mir sagen wie ich es schreiben mussn.
    Jetzt sind diese Total manuel berrechnen und in eine benutzerdefiniertes Feld erfasst. Es wäre schön dass es automatisch berrechnet werden kann.

    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0100)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 0.125 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0250)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 0.325 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK0500)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 0.625 +
    (SELECT Sum(tKHKPrintPositionArtikelVK.USER_VPK1)
    FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 1.25 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK5) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 6 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK10) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 12.5 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK20) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 30 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK25) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 30 + (SELECT
    Sum(tKHKPrintPositionArtikelVK.USER_VPK180) FROM tKHKPrintPositionArtikelVK
    WHERE tKHKPrintPositionArtikelVK.ConnID = tKHKPrintBelegKopfVK.ConnID AND
    tKHKPrintPositionArtikelVK.USER_UNNummer in('1169','1272','1545','1990','1992','2810','2924','3082','Not regulated') * 200 AS UNTot_Summe_litre



    -Gibt es eine möglichkeit die obene SQL Abfrage zu vereinfachern oder anders zu schreiben.
    - Ist es möglich ein berrechntet Feld zu benutzen für weiter berrechnungen.

    Berrechnete Feld AS UN1169_kg_somme + AS UN_1272_kg_somme zu benutzen.

    Danke für eure Hilfe und Gedult, wünsche einen schönen Tag
    Gruss
    Vic
     
  2. Günter Högemann

    Günter Högemann Neues Mitglied

    Hallo Vic,

    ich würde empfehlen im ReportDesigner eine Variable zu definieren.
    Diese dann bei jedem Positionsdurchlauf berechnen lassen, z.B. im Ereignis vor dem Drucken.
    Benutzerfelder landen automatisch in der Datenquelle, so dass diese auch gleich verfügbar sind für die Auswertung.
    Statt SQL hätte man dann VB bzw. C# Code zu schreiben.

    Viele Grüße
    Günter Högemann
     

Diese Seite empfehlen