これがどのように行われる可能性があるかを説明する簡単な例を挙げましょう。
データソースを作成しましょう。この例では、すべてのデータが自己完結型であるため、この例ではまったく問題ありません。
以下をデータセットに入力します。
DECLARE @Table TABLE (personID int IDENTITY, person varchar(8),
orders int, level1 int, level2 int);
INSERT INTO @Table VALUES ('Brett', 10, 1, 1), ('John', 20, 1, 1),
('Peter', 15, 2, 1), ('Jessica', 25, 2, 1), ('Eddie', 7, 3, 1),
('Jimi', 50, 3, 1), ('Robert', 5, 1, 2)
SELECT *
FROM @Table
ツールボックスから「テーブル」のオブジェクトを作成し、左下のセルに「人」の値のみを挿入します。ヘッダーにも入力する必要があります。その隣のセルの「注文」値についても同じことを行います。右側の列を削除します。これで、4 つの入力済みセル、ヘッダー付きの 2 つの値セルが表示されます。
グループ化のために、Visual Studio の「デザイン」ビューの左下に移動すると、現在「=Details」(または類似のもの) しか含まれていない「行グループ」が表示されます。それを右クリックして、「親の追加」を押します。「level1」のグループを選択し、「グループ ヘッダーの追加」をクリックします。別の行が追加されているはずですが、左端の列を除いて詳細が空白になっています。その左側の灰色のブロック領域に ( が表示され、両方の行が「グループ化」されていることを示します。
2 つの変更を除いて、手順 4 をもう一度実行できます。今度は level1 を右クリックして親を追加します。次に、代わりに「level2」でグループ化します。
第 2 レベルのグループ化で改ページする場合は、「level2」(またはそのグループ化の一般的な同等の名前) を選択し、F4 をクリックします。プロパティの下の「PageBreak」を展開します。「BreakLocation」を「Start」に変更します。レポートは、最高レベルのグループ化の前に改ページされます。
SSRS を使用してさらにグループを追加することについて心配する必要はありません。動的に動作する正しい列でそれらが識別されることを心配する必要があるだけです。レベル 1 の 1、2、または 3 以外のグループを表示するために、後でテーブルにデータを追加した場合、SSRS はそれをキャッチします。それについて心配する必要はありません。
異なるデータセットと一緒に異なるタイプのデータがある場合は編集してください。UNIONを使用してこの問題を簡単に乗り越えることができることを覚えておいてください。
例えば:
Select 'I am strings' as group1, 'Descriptive String' as Detail
from dataset1
UNION
Select 'I am numbers', cast(1 as varchar(64))
from dataset2
SSRS が「group1」を解釈するとき、2 つの異なる値しか認識しないため、それらをグループ化できます。2 つの異なる型を組み合わせた基になる SQL は気にしません。エンジンが解釈できるようにキャストする限り、問題はありません。