Rabatt Titel andrucken aufgrund Max Rabatt in Zeilen
Michael Hubenschmid
Hallo zusammen!Möchte gerne den Titel Rabatt im Formular nur andrucken wenn in den Zeilen des Beleges auch ein Rabatt existiert!
Dies wollte ich mit einem If-Befehl in Verbindung mit der Funktion LD.QueryData("") im GenerateScript des Belegtitels lösen, jedoch bekomme ich Fehlermeldungen. Anmerkung: Auf diesem Layout gibt es keine AdvancedDataBands!
Hier die Formel:
IF LD.QueryData("SELECT MAX(T0.DiscPrcnt) FROM @@RDR1 T0 INNER JOIN O@@RDR T1 ON T0.DocEntry = T1.DocEntry WHERE T1.DocNum = [%DocNum] AND T1.DocDate = [%DocDate]") <> NULL Then
textBox12.Value = GetData("LD.Txt.T0000030")
Else
textBox12.Value = ""
End If
Danke für die Hilfe!
Philipp Knecht
Hi MichaelDanke für die Infos.
Schaut eigentlich ganz gut aus.
Könnte an den fehlenden Hochkommas '[%DocDate]' liegen
Du kannst übrigens in den Marketing Dokumeneten überall generell [%DocEntry] verwenden.
hth
Michael Hubenschmid
Hallo Philipp!Habe die Formel angepasst jedoch sagt er mir das der NULL Wert nicht mehr supportet wird und ich die Funktion System.DBNull nehmen soll. Wie füge ich diese ein?
Danke für deinen Tip!
Philipp Knecht
HalloJa das ist eben der Vorteil der Advanceddatabänder ;)
Für deine Lösung einfach:
IF LD.QueryData("SELECT ISNULL(MAX(T0.DiscPrcnt),0) FROM @@RDR1 T0 INNER JOIN O@@RDR T1 ON T0.DocEntry = T1.DocEntry WHERE T1.DocNum = [%DocNum] AND T1.DocDate = [%DocDate]") <> "0" Then
nehmen.
hth
Michael Hubenschmid
Hallo Philipp!Leider funktioniert es noch nicht. Er druckt mir auch den Titel Rabatt wenn in jeder Zeile des Beleges im Rabatt 0.0000 drin steht!
Habe auch versucht <> 0 oder <> '0' zu verwenden. Leider kein erfolg!
Was ist die Lösung?
Danke für die Hilfe
Philipp Knecht
HiDann müsste es mit [quote]>0 klappen.
hth
Michael Hubenschmid
Hallo Philipp!Leider immer noch kein Erfolg!
Habe dir die Query nochmal hier rein kopiert:
IF LD.QueryData("SELECT ISNULL(MAX(T0.DiscPrcnt),0) FROM @@RDR1 T0 INNER JOIN O@@RDR T1 ON T0.DocEntry = T1.DocEntry WHERE T1.DocNum = [%DocNum] AND T1.DocDate = [%DocDate]") > 0 Then
textBox12.Value = GetData("LD.Txt.T0000030")
Else
textBox12.Value = ""
End If
Im QueryAnalyzer mit Case abfragen funktioniert es einwandfrei:
SELECT CASE WHEN ISNULL(MAX(T0.DiscPrcnt),0) > 0 Then 'TRUE' ELSE 'FALSE' End as Antwort
FROM RDR1 T0 INNER JOIN ORDR T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.DocNum = '201576' AND T1.DocDate = '20070314'
Michael Hubenschmid
Hallo Philipp!Habs nochmal umgeschrieben und so hat es funktioniert:
IF LD.QueryData("SELECT CASE WHEN ISNULL(MAX(T0.DiscPrcnt),0) <> 0 THEN 'TRUE' ELSE 'FALSE' END as ID FROM @@RDR1 T0 INNER JOIN O@@RDR T1 ON T0.DocEntry = T1.DocEntry WHERE T1.DocNum = [%DocNum] AND T1.DocDate = [%DocDate]") = "TRUE" Then
textBox12.Value = GetData("LD.Txt.T0000030")
Else
textBox12.Value = ""
End If
Danke für die Unterstützung!
Michael Hubenschmid
Hallo Philipp!Kommando zurück!
Hat wieder nicht funktioniert nur diesmal anders herum. Bei der ersten Lösung hat er mir den Titel nie gedruckt nun druckt er ihn mir immer!
Philipp Knecht
Hi MichaelSehe immer noch keine einfachen Anführungszeichen bei DocDate. bitte dies noch verifizieren.
hth
Michael Hubenschmid
Hallo Philipp!Auch mit den einfachen Anführungszeichen bei DocDate hat es nicht funktioniert.
Hast du noch ne Idee?
Philipp Knecht
Hallo MichaelMach mal Copy Paste der entsprechenden Textbox in den Notepad und schick mir das File.
hth
Philipp Knecht
Hi MichaelShame on me. Klar gehts nicht aber so sollte es gehen:
[quote]IF LD.QueryData("SELECT CASE WHEN ISNULL(MAX(T0.DiscPrcnt),0) > 0 THEN 'TRUE' ELSE 'FALSE' END as ID FROM @@RDR1 T0 INNER JOIN O@@RDR T1 ON T0.DocEntry = T1.DocEntry WHERE T1.DocNum = " & GetData("LD.Par.DocNum") & " AND T1.DocDate = '" & GetData("LD.Par.DocDate") & "'") = "TRUE" Then
-> Platzhalter [%DocNum] etc. können in QuerData nicht verwendet werden anstelle kann man aber wie du siehst die Params direkt aus der Datasource ziehen.
hth
Michael Hubenschmid
Danke Philipp!Hat bei der letzten Änderung einwandfrei funktoniert.
0
Please sign in to leave a comment.
Comments
0 comments