ItemCode an Layout Abfrage übergeben
Hallo,
es geht um den Beleg "Auftragsbestätigung".
Ich habe in der dazugehörigen Layoutdefintion unter Abfrage, Abfrage 1 eine erstellte Abfrage hinterlegt.
In dieser Abfrage frage ich Artikel ab -> über ...where T1.ItemCode = '[%ItemCode]' - bestimme ich den gewünschten Artikel.
Unter Parameter in der Layoutdefintion habe ich dann "ItemCode" eingetragen.
Im Layout habe ich die gewünschten Felder (aus der Abfrage) hinterlegt.
Wenn ich nun "drucke", werden die Werte dazu aber nicht angezeigt.
Erst wenn ich unter Parameter, Design Param Wert -> eine Artikelnummer eintrage, werden die dazugehörigen Werte auf dem Beleg angedruckt. Allerdings dann pro Zeile immer die gleichen Werte.
Was muss ich unter - Design Param Wert - eintragen, damit dynamisch die Artikelnummern aus dem Beleg, pro Zeile hier genutzt werden?
Ziel ist es, wie gesagt, das ich pro Artikelzeile in der AB, mir weitere Werte drucken lassen möchte.
Danke!
-
Moin Sven,
kannst du bitte mal Screenshots von der Laydef und deine Abfrage schicken, bitte.
Gruß Lothar
0 -
Moin Lothar,
klar. Bei Abfrage 1 ist meine SQL Abfrage drin, welche über ...where T99.ItemCode = '[%ItemCode]' weitere Daten zu dem Artikel aus anderen Tabellen abfragt.
Bei Parameter habe ich den ItemCode hinterlegt. Wenn ich Design Param Wert mit einem statischen Wert fülle, dann "klappt" das alles. Aber natürlich nur statisch. D.h. bei jedem Artikel aus der AB werden dann die gleichen abgefragten Daten angezeigt.
Hier müsste ich dynamisch die Artikelnummer pro Zeile aus dem Beleg haben.
Die Abfrage schaut dann im Detail so ausselect T99.ItemCode, T99.ISRelevant, T100.Code, T99.ISOrCRYImp,T103.Descr AS 'Bestimmungsregion-Bundesland', T99.ISOriCntry, T102.Name AS 'Intrastat-Ursprungsland-Name', T101.BWeight1,
CASE
WHEN T101.BWght1Unit = '2' THEN 'g'
WHEN T101.BWght1Unit = '3' THEN 'Kg'
END AS 'GewichtEinheit',T101.BWght1Unit
from itm10 T99
left join ODCI T100 on T100.AbsEntry = T99.ISCommCode
left join OITM T101 on T101.ItemCode = T99.ItemCode
left join OCRY T102 on T102.Code = T99.ISOriCntry
left join ODCI T103 on T103.AbsEntry = T99.ISOrCSTImp
where T99.ItemCode = '[%ItemCode]'
Gruß
Sven0 -
Hi Sven,
auf diesem Weg bekommst du nicht jede Zeile. Du musst auf das Dokument gehen und sie dort holen.
WHERE T99.ItemCode in (SELECT Distinct ItemCode FROM @@RDR1 WHERE DocEntry = [%DocEntry])
Dann kannst du wenn du möchtest die Artikel direkt an die Lines knüpfen im Reiter Abfragen.
Wähle in Abfrage 1 die SWA_LD_Document:Row aus und in Abfrage 2 deine Abfrage. Linke die beiden dann über den ItemCode.
Das hat den Charme das du die Daten auch direkt in den Detail-Lines deines Layouts nutzen kannst.
Grüße Lothar
0 -
Super, das funktioniert jetzt damit genauso, wie ich mir das vorgestellt habe! Danke!!!
Ich muss zwar das ganz noch etwas im Detail testen, aber bis jetzt, top.
Nur zur Sicherheit, bzgl. deinem Screenshot von der Laydef, auf dem Reiter Abfrage. Die zweite Zeile (Abfrage mit der LineNum) benötige ich nicht, richtig? Die ist bei dir nur aus einem anderen Projekt und hat nichts mit meinem Vorhaben zu tun, oder?
Eine kleine Frage hätte ich noch, hat allerdings nur bedingt mit der Grundfrage zu tun.
Wie kann man Werte runden (auf 3 Stellen nach dem Komma)?In meinem Layout habe ich das so eingebunden:
"Bruttogewicht pro Stück: " + LD.MultiLineRTF(DocumentRow("RowIntra4.BWeight1"))
Kann man das im Layout machen, oder muss das schon in der Abfrage passieren?
Noch mal Danke!
0 -
Ah! Das mit dem Runden habe ich nun hinbekommen.
LD.MultiLineRTF(System.Math.Round(DocumentRow("RowIntra4.BWeight1"),3, System.MidpointRounding.AwayFromZero))
0 -
Hi Sven,
schön das es geklappt hat und das sich manche Dinge von selbst erledigen ;-).
Die Zweite Zeile ist für dich nicht relevant. Der Screenshot war zu grob :-).
Das wäre ein Beispiel wenn du es genau für eine Zeile brauchst, dann halt die LineNum.
Gruß Lothar
0
Please sign in to leave a comment.
Comments
6 comments