Zwischensumme Brutto andrucken

<![CDATA[

Jürgen Heilmann

Hallo Phillip,

wie kann ich die Zwischensumme Brutto in den Belegen andrucken?

Gruß Jürgen Heilmann

Philipp Knecht

Hallo Jürgen

Die Query:

          /* @@Overwrite @@Name=[Row] Save all foreign translations for a given DocNum and LangCode */
SELECT T1.PK AS ItemCode,CAST(T0.Trans AS NVARCHAR(4000)) AS MLDesc INTO #SWA_LD_ITEMTRANS FROM MLT1 T0 INNER JOIN OMLT T1 ON T0.TranEntry = T1.TranEntry INNER JOIN @@RDR1 T2 ON T1.PK = T2.ItemCode WHERE T1.TableName='OITM' AND T1.FieldAlias = 'ItemName' AND T0.LangCode='[%LangCode]' AND T2.DocEntry=[%DocEntry] GROUP BY T1.PK,CAST(T0.Trans AS NVARCHAR(4000))
/* now get the items and the MLDesc if it exist */
SELECT T0.*, T0.LineTotal AS SWA_LD_SubSumValue, T0.TotalFrgn AS SWA_LD_SubSumFrgnValue ,CASE WHEN T1.MLDesc IS NOT NULL THEN T1.MLDesc ELSE T0.Dscription END AS DescML FROM @@RDR1 T0 LEFT OUTER JOIN #SWA_LD_ITEMTRANS T1 ON T0.ItemCode = T1.ItemCode WHERE T0.DocEntry = [%DocEntry] ORDER BY T0.VisOrder


in B1 speichern und dem Layout als zusätzliche Abfrage hinterlegen.

Den Part:
T0.LineTotal AS SWA_LD_SubSumValue, T0.TotalFrgn AS SWA_LD_SubSumFrgnValue

kannst du dann mit den Bruttofeldern anpassen.

hth

Jürgen Heilmann

Hallo Phillip,

es hat faßt geklappt. Jetzt zeigt er in der Zwischensumme den Bruttobetrag an, allerdings immer nur von der Position davor. Gibt es mehrere Positionen die zusammengefaßt werden sollen, funktioniert es nicht. Mir ist aufgefallen, dass die Variablen, die ich über die Abfrage eingefügt habe in der Datenbank nur auf "Rowebene" angezeigt werden: DocumentRow("SWA_LD_SubSumFrgnValueBrutto"). Nicht auf DocumentRowSubtotal Ebene wie die anderen Variablen, die die Zwischensummen betreffen. Kann es daran liegen? Wie bekomme ich die Variablen auf Subtotal Ebene? Anbei die letzte Zeile, die ich in SQL geändert habe.

      SELECT T0.*, T0.GTotal AS SWA_LD_SubSumValueBrutto, T0.GTotalFC AS SWA_LD_SubSumFrgnValueBrutto,CASE WHEN T1.MLDesc IS NOT NULL THEN T1.MLDesc ELSE T0.Dscription END AS DescML FROM @@RDR1 T0 LEFT OUTER JOIN #SWA_LD_ITEMTRANS T1 ON T0.ItemCode = T1.ItemCode WHERE T0.DocEntry = [%DocEntry] ORDER BY T0.VisOrder

Philipp Knecht

Hi Jürgen

Die Aliase müssen genau:
SWA_LD_SubSumValue bzw. SWA_LD_SubSumFrgnValue
heissen nur die werden dann intern vor der Übergabe an den designer aufsummiert.

hth

Jürgen Heilmann

Hallo Phillip,

hat geklappt. Alles super. Vielen Dank.

Jürgen

Jürgen Heilmann

Hallo Phillip,

wir haben die Abfrage erweitert. In Abhängigkeit der Belegkopfeinstellung soll die Zwischensumme Brutto oder Netto angedruckt werden. Dazu haben wir die Tabelle ORDR in die Abfrage aufgenommen. Das funktioniert auch. Damit wir auch noch nicht hinzugefügte Belege entsprechend drucken können, haben wir die Tabelle als @@ORDR eingegeben. Leider bringt er dann immer beim Start des Layout Design eine Fehlermeldung.

Ein zweites Problem. Ich möchte die Zwischensumme in Brutto und Netto auch bei Ausgangsrechnungen, Angeboten u.s.w. verwenden. Wie kann man das machen?

Viele Grüße
Jürgen Heilmann


/* @@Overwrite @@Name=[Row] Save all foreign translations for a given DocNum and LangCode */

SELECT
T1.PK AS ItemCode,
CAST(T0.Trans AS NVARCHAR(4000)) AS MLDesc INTO #SWA_LD_ITEMTRANS

FROM MLT1 T0 INNER JOIN OMLT T1
ON T0.TranEntry = T1.TranEntry
INNER JOIN @@RDR1 T2
ON T1.PK = T2.ItemCode

WHERE
T1.TableName='OITM' AND
T1.FieldAlias = 'ItemName' AND
T0.LangCode='[%LangCode]' AND
T2.DocEntry=[%DocEntry]

GROUP BY T1.PK,CAST(T0.Trans AS NVARCHAR(4000))



/* now get the items and the MLDesc if it exist */

SELECT
T0.*,

CASE
WHEN T2.U_recGrNe = 'Y'
THEN T0.GTotal
ELSE T0.LineTotal
END AS SWA_LD_SubSumValue,

CASE
WHEN T2.U_recGrNe = 'N'
THEN T0.GTotalFC
ELSE T0.TotalFrgn
END AS SWA_LD_SubSumFrgnValue,

CASE
WHEN T1.MLDesc IS NOT NULL THEN T1.MLDesc
ELSE T0.Dscription
END AS DescML

FROM
@@RDR1 T0 LEFT OUTER JOIN #SWA_LD_ITEMTRANS T1
ON T0.ItemCode = T1.ItemCode
INNER JOIN @@ORDR T2
ON T0.DocEntry = T2.DocEntry

WHERE
T0.DocEntry = [%DocEntry]

ORDER BY T0.VisOrder

Philipp Knecht

Hi Jürgen

2. feststellungen:

1.
Ihr könnt direkt SWA_LD_SubSum verwenden das ist schon drin und hat die Standard Nettobeträge (Ihr braucht die Query also nicht noch weiter zu erweitern)

2.
O@@RDR wäre die richtige Syntax wenn ihr Rechnungen, Lief... etc auch berücksichtigen möchtet. Ist aber wegen 1. hinfällig ;)

hth

Jürgen Heilmann

Hallo Phillip,

mit der Syntax O@@RDR hat es geklappt. Wir wollen je nach Auswahl eines UDF's die Brutto- bzw. Nettozwischensumme drucken.

Noch mal vielen Dank für die schnellen Antworten.

Gruß Jürgen

Daniel Ertl

Hallo Zusammen,
ich bräuchte das hier Besprochene noch etwas verfeinert.

Folgender Anwendungsfall:
Ich habe 1 Layoutdefinition und dazu 2 Printdefinitionen.
(Und das will ich aufgrund des Pflegeaufwandes bei Änderungen auch so beibehalten.)

In einer Printdefinition ist der Freetext mit dem Wort "Nachtrag" gesetzt.
Wenn Freetext = Nachtrag ist, werden nur Rows angedruckt, die in einem UDF U_Print auf der Zeilenenbene den Wert 'N' haben.
Wenn Freetext != Nachtrag sollen alle Rows angedruckt werden.

Jetzt brauche ich die entsprechende Zwischensummenberechnung.
Das Problem ist, dass ich im oben behandelten SQL zwar eine weitere (nach U_Print gefilterte) Spalte einfügen kann, aber dann keinen Zugriff im Advanced-Band "DocumentRowSubtotal" darauf habe.
Die bestehende SWA_LD_SubSumValue Spalte kann ich ja nicht überschreiben, da ich zu diesem Zeitpunkt nicht weiss, ob es der Fall Nachtrag ist oder nicht und ich damit auch nicht weiss, ob ich den gefilterten Wert brauche oder nicht.

Ich müsste also den SQL von DocumentRowSubtotal auch erweitern und so die neue Spalte "durchschleifen".

Gibts da eine Möglichkeit?
Oder gehts einfacher, als ich beschrieben habe?

Danke für eure Hilfe.
Grüsse,

Daniel
0

Comments

1 comment
  • Hello, 

     

    We also want to use subtotals excluding discounts in the layout.

    The methodology as described above seems to be outdated since I cannot find the table SWA_LD_ITEMTRANS.

    Is there any way to update the subtotal datasource or add this info to the datasource?

    0
    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post