さて、基本的に私はインターネットを精査し、SSRSがそこにあるとは言えないものを望んでいることを発見しました。EG: null 値を持つヘッダーは、SSRS が値を持ちたくない null を想定しているため、合計を実行するときに不明な値を表示したいという問題があります。バックエンドでだますことはできますが、多少の作業が必要です。
基本的に最も簡単に言えば、データ コレクションを取得し、null をゼロとして識別して認識できるようにする必要があります。そのため、ヌルが CTE でゼロとして表示されるように考慮してグリッド レイアウトを作成し、その CTE を取得してピボットを解除し、本質的に元の状態に戻します。ただし、重要な違いは、null の値がゼロとして表されるようになったことです。「でも、グリッドにゼロが表示されるのに、なぜそれが必要なのですか?」と言うかもしれません。SSRS でいくつかの書式設定の原則を実行して、それをだますこともできます。
上記の例を見ていき、プロセス全体がどのように機能するかを示すためにいくつか変更を加えてみましょう。色の背景表現の書式設定も追加します。
_1. コードを取り上げて、データセットの前後を示しましょう。
SQL コード
declare @Temp table ( Place char(2), Code char(1), Value int)
insert into @Temp values ('AZ', 'A', 1), ('AL', 'B', 2), ('WA', 'A', 5),('WA','B',2),('OR', null, null)
select *
from @Temp
order by Place
;
with a as
(
Select
Place
, sum(Case when Code = 'A' then Value else 0 end) as A
, sum(Case when Code = 'B' then Value else 0 end) as B
from @Temp
group by Place
)
select
Place
, Code
, Value
from a
unpivot(Value for Code in (A, B)) as unpvt1
order by Place
_2. 最初のセットを無視し、SSRS レポートで 2 番目のセット (select * from @Temp order by Place を削除) をデータ セットとして使用します。
_3. Place を行、Code を列、Value をデータとして、マトリックス レポートを設定します。
_4. 「列グループ」を右クリックして、列に何もない場合に列を非表示にする式を設定します (例を示すコードである必要があります) > グループのプロパティをクリックします > 可視性をクリックします > 最初のセクションの下の [機能] タブをクリックします: (また、トグルすることもできます)これは、別のテキストセルで行ったのと同じように必要に応じて)
=IIF(IsNothing(Fields!Code.Value), false, true)
_5. [コード] 列をクリックし、その上の灰色のバーをクリックします。右側の列の挿入をクリックし、ヘッダーに「Totals」を入力し、セルに「[Sum(Value)]」を入力して合計を表示します。私の人生では、合計ヘッダーが適切に集計されている場合、合計ヘッダーが異なることを示す式を取得できませんでした。このメソッドは、合計が折りたたまれているかどうかを示すだけです。
_6. ここでプレビューするとゼロが表示される場合がありますが、すべての場合にそれが必要なわけではないため、テキスト値を少し操作してみましょう。[コード] の下の [値] を右クリックし、[テキスト ボックスのプロパティ] を選択します。左ペインの「番号」をクリックします。「Show zero as:」のチェックボックスをオンにして、「 」(何も表示しない) を選択します。これでゼロはなくなりました。
_7。これで、最初に欲しかったものはほとんどありますが、ヘッダーが示す内容に基づいてセルを動的に色分けしたいと考えています。コード ヘッダーの下のセル値のプロパティを取得し、[背景色] を選択し、ドロップダウンをクリックして式を選択します。次の式を入れます。
=IIF(Fields!Code.Value = "A", "小麦", IIF(FIelds!Code.Value = "B", "LightBlue", "White"))
私は今、何らかの理由でインターネット上のほとんどの人が音をほとんど不可能にするものを手に入れることができます. 配置がゼロとして存在する値に関連付けられるようになったため、列を一貫した色に設定できますが、エンドユーザーには表示されなくなりました。
しかし、あなたは次のように言うかもしれません。私にもそれができます。「コード」の下の「値」セルのプロパティを表示し、「フォーマット」プロパティを確認します。デフォルトは次のようになります。
0.00;(0.00);''
お金が必要な場合は、代わりに次のようにします。
$###,##0;0.00,''
これが誰かの役に立てば幸いです。また、「小さなデータ セットには最適ですが、100 万行以上の行があるので、そのようなことをしたい」と言っている場合も覚えておいてください。cteを一時テーブルまたは永続テーブルに置き換え、データをメモリまたは永続テーブルにダンプして最初にマッサージします。