我能想到的幾個方法可以做到這一點:
集級別
而不是僅僅返回在DataSet中的基礎數據相關的數據,包括所有你想要顯示的類別在所有情況下。
例如對於數據庫查詢可能是從類似的去和inner
left join
,即區別:
select *
from AgeGroup
inner join MyData on ...
到:
select *
from AgeGroup
left join MyData on ...
因此,報告總是有所有年齡組中顯示。哪裏有NULL
的值,只顯示0.
我認爲這是最好的選擇,如果你有控制DataSet - 你不必更新你的報告,幸運的是實際的DataSet更改應該是最小化,仍然只有一個DataSet調用,並且這是迄今爲止最簡單的維護。
硬碼組到報告
在這裏,您包括您要顯示的每個組的表頭行,所以這些總是在所有情況下顯示。
這裏有一些條件表達式來顯示值,例如:對於每個組一行將針對該組:
=Sum(IIf(Fields!AgeGroup.Value = "5-16", Fields!Amount.Value, Nothing)
這是不是太靈活,因爲你改變組將需要更新,而沒有用於佈局的許多選項。仍然只有一個DataSet調用,所以這是一個優點。
子報表
您可以顯示一行對各年齡組父數據集,然後顯示要用於該行的數據每行中嵌入一個報表。
這使您可以靈活地進行佈局,但會增加報表的複雜性,並且意味着您可以使用其他選項避免的大量DataSet調用。