レポートには、(MultiValueパラメーターに基づく)フィルターを使用したデータセットがあります。
このデータセットには、IdとNameの2つのフィールドが含まれています。
すべての名前の連結をどこかに表示する必要があります。
Name1 / Name2 / Name3
問題は、join
メソッドが配列でのみ機能するため、データセットを値として指定できないことです。
カスタムコードも調べましたが、何も機能していませんでした。
これはどのようにすればよいですか?
レポートには、(MultiValueパラメーターに基づく)フィルターを使用したデータセットがあります。
このデータセットには、IdとNameの2つのフィールドが含まれています。
すべての名前の連結をどこかに表示する必要があります。
Name1 / Name2 / Name3
問題は、join
メソッドが配列でのみ機能するため、データセットを値として指定できないことです。
カスタムコードも調べましたが、何も機能していませんでした。
これはどのようにすればよいですか?
私はこれに少し遅れるかもしれませんが、これに興味がある人にとっては、SSRSでこれを行うためのかなり簡単な方法があります:
=Join(LookupSet(1,1,Fields!Name.Value, "DatasetName")," / ")
1.使用LookupSet
するOPの2008バージョンを超えている場合は、次のような優れたソリューションがあります。
=Join(LookupSet(1, 1, Fields!Name.Value, "DatasetName"), " / ")
ソリューションを使用したLookupSet
この回答のクレジットは、完全に@urbanhuskyの回答になります。
@urbanhuskyのソリューションを、OPのバージョンのSSRS以下で立ち往生している貧しい人々が利用できるソリューションと集約しているため、私はこの答えを維持しています。
SSRS 2008には、私が見る限り3つの「オプション」しかなく、それぞれに独自の欠点があります。最初のものはおそらく最もハックが少ないです。
2.追加のパラメーター[複数の値を許可]
を
使用して内部パラメーター(「NameParameter」など、このSO回答またはMSDNを参照)を作成します。パラメータのデフォルト値をデータセットのフィールドに設定します。次に、関数を使用して、結合された名前をテキストボックスに表示します。Name
=Join(Parameters!NameParameter.Value, " / ")
これが最善の策かもしれませんが、値が多い場合、パラメーターはうまく機能しない可能性があります。
3.リストを使用するリスト
を作成し、[名前]フィールドをそのリストにドラッグ/ドロップします。必要に応じて、名前もグループ化します。
ここでの欠点は、(AFAIK)リストを水平方向に表示できないことです。
4. Matrix
Oh boyを使用します、これは本当に醜いです。それでも、マトリックスを作成し、[名前]フィールドを列ヘッダーにドラッグして、最初の列と2番目の行(データを表示するため)を非表示にします。
主な欠点は、それがハック(そしてかなりのやり過ぎ)であるということです。さらに、式を使用して最後の区切り文字を手動でトリミングする必要があります。