Bericht offene Belege
Dierk Oltmanns
Hallo zusammen,ich habe ein Drucklayout für den Bericht offene Belege erstellt basierend auf eine Abfrage der offenen Rechnungen. Jetzt möchte ich aber das Dokument mit den offenen Belegen gefüllt haben, die vorher in dem DropDownFeld gewählt worden sind. Hat da jemand eine Idee?
Dierk
Manuel Marhold
Hi Dierk,lege einen Parameter an (z.B. [%DocType]), der den Inhalt des Items mit der ID 3 ausliest. Ausgangsrechnungen ist "6", Lieferungen "3", etc..
Dann würde ich sie Abfrage ca so aufbauen:
SELECT DocEntry, CardCode [...] FROM ODRF WHERE ObjType=(
ELECT [%DocType] WHEN 6 THEN 13 WHEN 3 THEN 15 END
Gruß
Manuel
Dierk Oltmanns
Hi Manuel,warum hast Du in deiner Query die ODRF verwendet? Die interessierne mich ja eigentlichnicht.
Ich brauch eigentlich sowas, welches mrdas Item in die richtige Tabelle matched.
Dierk
Manuel Marhold
Hi Dierk,sry, mein Fehler.. war bei geparkten Belegen
hmm als erste Idee:
Für jede Belegart eine Layoutdefinition mit der Query hinterlegen. Dann in der PRintdef alle Layoutdefs hinterlegen. Für jede LayoutDef noch einen Abfrage "SELECT CASE WHEN [%DocType]=6 THEN 1 END" und im Bereich SWA_LD_Copy abspeichern und bei der passen Layoutdef hinterlegen. Das "=6" muss nat. auf den Eintag im DropDownmneü der Offenen Belege angepasst werden.
Gruß
Manuel
Manuel Marhold
Hi Dierk,hier noch die Query:
SELECT DISTINCT CASE [%DocType] WHEN 6 THEN I.DocNum WHEN 2 THEN O.DocNum ELSE '' END FROM
(SELECT * FROM OINV WHERE DocStatus='O') I,
(SELECT * FROM ORDR WHERE DocStatus='O') O
Da bekommst du erstmal die Werte der Rachnungen und Aufträge zurück.
Kann bei vielen Datensätzen langsam werden!
Gruß
Manuel
Dierk Oltmanns
Hi Mauel,die Query ist nicht schlecht, aber ich bekomme grundsätzlich alle Rechnungen auf den Beleg, egal was ich auswähle. Evtl. habe ich beim Parameter ja noch einen Fehler
Dierk
Manuel Marhold
Hi Dierk,mein parameter sieht wie folgt aus:
Key: DocType
Type: Alphanumeric
Item ID: 3
use Rownumber: No
Param FormType: Offene Belege (Formtype: 152)
In der Layoutdef
-> Parameter:
1) Doctype
-> Queries:
1) SWA_LA_Data:OffeneBelege -> SELECT DISTINCT CASE [%DocType] WHEN 6 THEN I.DocNum WHEN 2 THEN O.DocNum ELSE '' END AS DocNum FROM
(SELECT * FROM OINV WHERE DocStatus='O') I,
(SELECT * FROM ORDR WHERE DocStatus='O') O
In der Printdef:
FormType: 152:Offene Belege
Layout: Offene Belege (der oben)
In der Designer habe ich ein AdvancedDataBand angelegt, mit der Query verbunden und lasse mir die DocNum ausgeben.
Habe bei Rechnungne und Aufträge unterschiedliche Ergebnisse, manuelle kontrolliert: korrekt.
gruß
Manuel
Dierk Oltmanns
Hi Manuel,habe ich soweit auch alles. Aber wo sind denn die ganzen anderen Spalten der OINV?
In dem Query ist doch ein "*"!
Dierk
Manuel Marhold
Hi Dierk,hier die passende Query (nat. nicht komplett)
(SELECT * FROM OINV WHERE DocStatus='O' AND [%DocType]=6) UNION ALL
(SELECT * FROM ORDR WHERE DocStatus='O' AND [%DocType]=2)
Gruß
Manuel
0
Please sign in to leave a comment.
Comments
0 comments