Reporting Services: auf anderes DataSet verweisen

25. September 2008 15:31

Ich habe für Reporting Services in Visual Studio in Dataset geschrieben, das mir eine handvoll Debitorennummern ausspuckt (es sind also immer mehrere).

Wie binde ich das Ergebnis nun in andere DataSets richtig ein? Ich möchte nämlich das Ergebnis dieses Datasets als WHERE-Klausel in einem anderen DataSet weiter verwenden.

Als einziger mir bekannter Weg kann ich aus diesem DataSet einen Berichtsparameter (Name=Par) erstellen und auf diesen mittels @Par zugreifen.
Meine Parametereinstellungen sind:
Augeblendet = Ja
Intern = Ja
Mehrwertig = Ja
NULL-Wert zulassen = Nein
Leeren Wert zulassen = Nein
Verfügbare Werte = Aus Abfrage = mein neues DataSet
Standardwerte = Aus Abrrage = mein neues DataSet

Wenn ich dies jedoch versuche
Code:
WHERE [Customer No.] LIKE @Par
, liefert mir @Par = NULL statt mehrerer Werte zurück.

Gegentest: wenn ich nur dies hier ausführe:
Code:
SELECT    @pDebitoren AS EXPR1
, dann kommt das Abfragefenster, in das ich eine Debitorennr. eingeben soll - auch nicht Sinn der Sache.
Ich möchte wirklich nur das Ergebnis verwenden.

Hat jemand eine Idee?

PS: Der Weg über eine Sub-Select-Statement ist mir bekannt, jedoch suche ich eine Alternative, den den SQL-Quelltext übersichtlich hält.

Re: Reporting Services: auf anderes DataSet verweisen

15. November 2008 19:47

Ich versteh zwar nicht was Du da machen willst, aber ich glaub Du meinst nicht Dataset sondern Datatable. Schau Dir mal folgendes Beispiel an: http://www.dotnetframework.de/lserver/CodeSampleDetails.aspx?c=2817

Volker

Re: Reporting Services: auf anderes DataSet verweisen

15. November 2008 20:10

Oh, eine Antwort! :-)

In Reporting Services kannst du pro Bericht eine beliebige Anzahl von DataSets erzeugen. Jedes DataSet liefet eine Ergebnistabelle. Deren Inhalt kann natürlich aus zig einzelnen Tabellen über einen Join zusammen gestellt sein.
Mein Ziel war einfach: Kann ich die Ergebnismenge eines DataSets in einem anderen DataSet einbinden?
Kann ich also zwei DataSets innerhalb eines Berichtsprojektes joinen?

Dein Link hat mir dabei leider nicht geholfen.

Re: Reporting Services: auf anderes DataSet verweisen

15. November 2008 20:23

nix leichter als das:

dataset1.merge(dataset2), dann hast Du beides in einem dataset und dann doch weiter mit o. g. link

wichtig ist dann aber, dass die datatables unterschiedlich heißen, sonst wird versucht das alles in eine datatable zu packen.

Helfen könnten Dir im Zusammenhang mit ADO.NET auch noch http://www.gssg.de und eben die .NET Newsgroups bei MS. Hat mir auch schon öfter geholfen.

Re: Reporting Services: auf anderes DataSet verweisen

15. November 2008 20:31

vsnase hat geschrieben:dataset1.merge(dataset2), dann hast Du beides in einem dataset und dann doch weiter mit o. g. link


Und WO gebe ich das ein?
Normalerweise befinde ich mich in einem DataSet und stecke gerade mitten in der T-SQL-Abfrage. DORT möchte ich die Datasets miteinander verheiraten :-)

Re: Reporting Services: auf anderes DataSet verweisen

19. November 2008 19:42

Bis jetzt hatte ich mich immer ehr mit .NET beschäftigt und hatte vorher eigentlich nicht groß mit den Reporting Services zu tun. Dein Problem würde ich jetzt mit http://msdn.microsoft.com/de-de/library/ms178770(SQL.90).aspx?ppud=4 lösen. Interessant könnte dann noch mehrwertige Parameter sein, siehe hier http://msdn.microsoft.com/de-de/library/aa337292(SQL.90).aspx.

Der Haken an der Methode ist aber, dass ggf. für Deine beiden Datasets erst alle Daten ins Dataset übertragen werden müssen bevor auf eine evtl. sehr kleine Teilmenge reduziert wird.