2012-06-12 5 views
6

レポートでは、(MultiValueパラメータに基づいた)フィルタを持つデータセットがあります。レポートサービス:データセットのすべてのフィールドに参加

このデータセットには、IDと名前の2つのフィールドがあります。

私はどこかにすべての名前の連結を表示する必要があります。

Name1/Name2/Name3 

問題はjoin方法だけアレイ上で動作することで、その後、私は値としてデータセットを指定することはできません。

私もカスタムコードを見ましたが、何も動作していませんでした。

どうすればよいですか?

答えて

2

SSRS 2008 R2 と高い...

1.

あなたは2008年版のOPを超えている場合は、良い解決策が存在しているLookupSet
を使用する:

=Join(LookupSet(1, 1, Fields!Name.Value, "DatasetName"), "/") 

the LookupSet solutionを使用してこの回答のクレジットは全部@urbanhusky's answerになります。


SSRS-2008と下...

それは以下のSSRSとのOPのバージョンで立ち往生して貧しい人々の魂に利用できるソリューションとurbanhuskyのソリューション@集約するので、私はかかわらず、この答えを保っています。

SSRS 2008には3つの「オプション」しかありませんが、それぞれ独自の欠点があります。最初のものはおそらく最もハッキリしません。

2.余分なパラメータ
this SO answerまたはMSDNを参照してください、例えば "NameParameter")内部パラメータを作成しますと複数の値を許可します。パラメータのデフォルト値をデータセットのNameフィールドに設定します。次に、関数=Join(Parameters!NameParameter.Value, "/")を使用して、結合された名前をテキストボックスに表示します。

これは最善の策かもしれませんが、多くの値がある場合、パラメータがうまく機能しない可能性があります。

3.リストを使用する
リストを作成し、それに名前フィールドをドラッグ&ドロップします。必要に応じて、名前にもグループ化します。

ここでの欠点は、(AFAIK)リストを水平に表示できないことです。

4.マトリックスを使用
ああ、これは本当に醜いです。それにもかかわらず、ここでは行列を作成し、Nameフィールドを列ヘッダーにドラッグし、最初の列と2番目の行(データを表示するため)を非表示にします。

主な欠点は、ハック(とかなりのオーバーキル)であり、最後のセパレータ文字を手動でトリムする必要があることです。

+0

残念ながら、私はできません:1.私は受信のみIDは送信者から、2.私はこれを水平に置く必要があります。3.すでに試しましたが、すべての列の幅を指定する必要があります:( – J4N

+0

オプション1の場合、* internal *パラメータではなく、 – Jeroen

+0

ああ?私はこの種の「内部パラメータ」を知らないのですが、これに関する情報がありますか? – J4N

15

私は少し遅く、このためかもしれないが、これに興味があります誰のために、SSRSでこれを行うのではなく簡単な方法があります:

=Join(LookupSet(1,1,Fields!Name.Value, "DatasetName"),"/") 
+0

'LookupSet'はssrs-2005では利用できません。同様のソリューションですか? – maxx777

+0

申し訳ありませんが、他の方法はわかりません。 – urbanhusky

+0

Legend、LookupSetは文書化されていません。最初の2つのパラメータが1になります。 – meataxe

関連する問題