5

この質問は、単一のタブ シートに表示されるグループの値に基づいて条件付きで列を非表示にする方法に関するものです。これはこの質問の続きですが、実際には独立しています。SSRS 2008 R2 を使用しています。

私のデータセットはストアド プロシージャを利用しており、イベント関連のデータを返します。

EventID | Event Owner | Event Type | Location
E001    | Bob         | Meeting    | Conf Rm A
E002    | Jane        | eTraining  | 
E003    | Bob         | Training   | Conf Rm B
E004    | Phil        | eTraining  | 
E005    | Jane        | Meeting    | Conf Rm B
E006    | Phil        | Meeting    | Conf Rm A
E007    | Jane        | eTraining  |

私のレポートでは、マトリックスではなくテーブルを使用しています。EventID と Location を列として含む、イベントに関する詳細を含む最も内側の Detail 行があります。データをグループ化する属性がいくつかあります。詳細行とヘッダー行には、イベント所有者とイベント タイプ (GrpbyOwnerandType) によってグループが割り当てられた 1 つの行グループがあります。グループの各インスタンス間には改ページがあり、その結果、結果がレポート サーバーの別のページに表示され、Excel にダウンロードされたときに別のタブに表示されます (最終的な目標)。したがって、Excel での出力は次のようになります。

Tab 1 has E001 (Bob, Meeting) 
Tab 2 has E002 & E007 (Jane, eTraining)
Tab 3 has E003 (Bob, Training)
Tab 4 has E004 (Phil, eTraining)
Tab 5 has E005 (Jane, Meeting)
Tab 6 has E006 (Phil, Meeting)

タブ 2 と 4 では、場所の列を非表示にしたいと思います。イベントの種類を考えると、意味のない完全に空白の列を表示するのはばかげているからです。列の可視性を

=IIF(CountDistinct(Fields!EventLocation.Value, "GrpbyOwnerandType")= 0, True, False)

ここでスコープをグループ (GrpbyOwnerandType) だけに指定していることがわかります。スコープを指定しないと、EventLocation が NULL でない行がデータセットに少なくとも 1 行あるため、テストは明らかに失敗します。ただし、IIF 条件のスコープでグループを指定すると、レポートのプレビューが次のエラーで失敗します。

Tablix 'X' の Hidden 式に、集計関数に対して無効なスコープ パラメーターがあります。scope パラメーターは、含まれるグループの名前、含まれるデータ領域の名前、またはデータセットの名前のいずれかに等しい文字列定数に設定する必要があります。

この同じ式を列の隠し属性に使用しました。その場合、レポートはエラーになりませんが、データがないため、タブ 2 とタブ 4 に醜い白い列が残ります。

では、すべてのシートではなく一部のシートで Location 列を非表示にする方法はありますか?

4

2 に答える 2

1

式を次のように微調整すると:

= IIF(CountDistinct(Fields!EventLocation.Value)= 0, True, False)

...その後、スコープが自動的に評価され、目的が得られるはずです。

于 2012-12-10T05:16:33.097 に答える
0

MSDN でこの質問をしたところ、不可能だと言われました。私はそれが真実だと信じています。

最終的に、必要な列を含むテーブルと列を含まないテーブルの 2 つの異なるテーブルを作成し、各テーブルのデータをフィルター処理して、サポートされているレコードを含めました。

http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/ef1ddac4-329f-43eb-b3fd-c226e7624ff6

于 2012-12-19T17:50:38.867 に答える