Auswertung (von UDF's) mit Parametern

Sven Hammerbacher

Hallo Zusammen,

ich stehe z.Z. vor folgendem Problem:

Ich möchte über einige UDFs (ca. 15) im BP Stamm eine Auswertung fahren. Dazu habe ich alle Auswertungskriterien als Parameter angelegt. Der Inhalt der Parameter wird jeweils via SQL Abfrage gefüllt.
Im Moment setze ich mit Hilfe der übergebenen Parameter mir einen SQL String zusammen. Das Ergebnis dieser Abfrage möchte ich in meinem Bericht darstellen.

Wie setzte ich das am Besten um?

Mit LD.QueryData erhalte ich nur die erste Zeile meiner Abfrage zurück. Ich brauche aber schon die gesamt Ergebnismenge. Wie kann ich auf diese zugreifen bzw. diese darstellen?

Macht es überhaupt Sinn eine große SQL Abfrage zu schreiben (also SELECT Cardcode, Cardtype, ) oder sollte ich besser pro Textbox eine Abfrage erstellen?

Weiterhin könnte ich eine SQL Abfrage (die würde dann bereits alle relevanten Daten ungefiltert enthalten) bereits in der Layoutdefinition übergeben. Ist das evtl. sinnvoller? Wie kann ich dann auf die eingegebenen Parameter filtern?

Oder gibt es einen anderen/besseren Weg mein Vorhaben umzusetzen?

Liebe Grüße und Vielen Dank im Voraus.

Philipp Knecht

Hallo

Ein SQL in der Art : Select * FROM OCRD WHERE CardCode = '[%CardCode]' wär doch hier das einfachste zumal CardCode schon als Parameter auf dem BP Form definiert und deshalb schon ausgelesen wird.

Dann:
- Layoutdefiniton erstellen
- Bei Abfragen diese Query hinterlegen
- Parameter hinzfügen
- Design machen
- Eine Printdefinition erstellen

hth

Sven Hammerbacher

Hallo Philipp,

ein Filter auf den Cardcode bringt mir leider nichts. Meine Filterkriterien sind die UDF's auf BP und BP-Ansprechpartner Ebene. Mein SQL String sieht aus wie folgt:

Select
dbo.OCRD.CardCode, dbo.OCRD.CardName, dbo.OCRD.Address As [Standard Straße], dbo.OCRD.ZipCode As [Standard PLZ], dbo.OCRD.City As [Standard Stadt], dbo.OCRD.Country As [Standard Land], dbo.OCPR.U_vorname, dbo.OCPR.U_nachname, dbo.OCPR.Title, dbo.OCPR.Gender, dbo.CRD1.Street As [Straße des Ansprechpartners], dbo.CRD1.ZipCode As [PLZ des Ansprechpartners], dbo.CRD1.City As [Stadt des Ansprechpartners], dbo.CRD1.Country As [Land des Ansprechpartners] FROM dbo.OCRD INNER JOIN dbo.OCPR On dbo.OCRD.CardCode = dbo.OCPR.CardCode LEFT OUTER JOIN dbo.CRD1 On dbo.OCPR.Address = dbo.CRD1.Address And dbo.OCPR.U_AdressTyp = dbo.CRD1.AdresType And dbo.OCPR.CardCode = dbo.CRD1.CardCode WHERE (die WHERE Klausel würde dann die Liste der abgefragten UDF's (Parameter) sein)

Folglich könnte meine Ergebnismenge so aussehen:


1000;KundeA;Holz Weg 7;11111;Oberhausen,DE;Christian;Blau;Dr;M;Baum Weg 17;11112;Oberhausen,DE; 1000;KundeA;Holz Weg 7;11111;Oberhausen,DE;Sven;Grün;;M;;;;;
1001;Kundeb;Holthoff 123;54545;Dortmund,DE;Martin,Müller;;M;;;;;
...

Manuel Marhold

Hi Sven,

wie wäre es mit einer stored function im sqlserver?
du rufst die funktion auf, übergibst an diese deine paramter und er gibt dir die passende Tabelle zurück. In der ersten zeile könntest du dann per kennzeichen hinterlegen, ob die Splate sichbar sein soll (parameter gefüllt) oder nicht (parameter nicht gefülllt)

dann im designer:
a) Textboxen per vb erstellen
b) unnötige Textboxen ausblenden

ginge evtl. auch ohne stored function
0

Comments

0 comments

Please sign in to leave a comment.

Didn't find what you were looking for?

New post