私のクライアントは、パラメーター (ReportType) に基づいてレポートの列を表示/非表示できるようにしたいと考えています。レポートの列は静的です。どの列を非表示/表示するかを制御するだけで、異なる「ビュー」が作成されます。現在は 2 つのビューしかありませんが、さらにいくつかのビューを追加しようとしています。
現時点では、列の可視性は次の単純な式で制御されます: =Parameters!ReportType.Value = "SOMEVALUE"
列を非表示にするレポート タイプは 1 つだけなので、この式は問題ありません。
現在、列が複数の ReportTypes で非表示になっている可能性がある状況に移行しており、次のような状態になることを避けたいと考えています。列は表示されることを意図しています (すべてのロジックが各列の可視性式にあるため)
投稿を見つけて、その基本要素を使用しました: http://sql-bi-dev.blogspot.co.uk/2010/10/displaying-dynamic-columns-in-ssrs.html
私がやろうとしているのは、次のようなデータセットを定義することです:
SELECT * FROM
(
select 'Rpt Type1' ReportType, 'Units' ColumnName UNION
select 'Rpt Type1' ReportType, 'Price' ColumnName UNION
select 'Rpt Type2' ReportType, 'Units' ColumnName
) ReportColumns
WHERE ReportType = @ReportType
次に、Column Visibility 式で、列名がデータセットに存在するかどうかを確認します。このようにして、レポート タイプの表示可能な列が 1 か所で定義され、管理/保守が容易になります。
リンクした投稿では、ユーザーにパラメーターで列名を選択させています。選択した ReportType パラメータに基づいて、データセット内の名前を検索したいと考えています。
列名をパラメーターに取得し、それを列の可視性式で使用することに固執しています。どんな助けでも大歓迎です:)