名称为:“matrix1_SubCat”,表达式为:”=Fields!SubCat.Value” :
确定后,再依法将列组分别置为名称为:matrix1_OrderYear 和 matrix1_OrderQtr ,
它们的表达式分别为: =Fields!OrderYear.Value 和 =Fields!OrderQtr.Value ,如下图:
按确定后退出矩阵属性对话框:
将(上图)矩阵最下边一行的三个单元格分别改名为(右击单元格->属性):
ProdCat, SubCat,Sales
右边二个单元格从上开始分别改名为:
OrderYear ,OrderQtr
其中单元格ProdCat的值为: =Fields!ProdCat.Value
单元格Sales的值为: =Sum(CDbl(Fields!Sales.Value))
单元格OrderYear的值为: =Fields!OrderYear.Value
在单元格OrderYear的可见性选项卡中将“此报表项关联图像的初始外观”置为“展开”;
将分别将单元格ProdCat, SubCat, OrderYear ,OrderQtr属性(按F4调出属性)
中BackgroundColor 中的值改为:RoyalBlue ,
Color中的值改为:White
重新调出矩阵属性对话框,在组选项卡中编辑matrix1_SubCat行组,打开分组排序属性对话框后,
在其中选“可见性”选项卡,将初始可见性选为隐藏,勾选“可由其它关联报表项确定其可见性”,在“报表项”选择“ProdCat”;
在组选项卡中编辑matrix1_OrderQtr列组,打开分组排序属性对话框后,
在其中选“可见性”选项卡,将初始可见性选为可见,勾选“可由其它关联报表项确定其可见性”,在“报表项”选择“OrderYear”。
在Form1窗口设计中,拖入一个ReportViewer控件,
最后调出Form1代码窗口,下面是VB.net中Form1.vb的全部代码:
Imp
Public Class Form1
Private Function LoadSalesData() As DataTable
Dim DS As DataSet = New DataSet
DS.ReadXml("..//..//da
Return DS.Tables(0)
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ReportViewer1.Reset()
ReportViewer1.LocalReport.DataSources.Clear()
ReportViewer1.LocalReport.DataSources.Add(New ReportDataSource("Sales", LoadSalesData()))
ReportViewer1.LocalReport.ReportPath = "..//..//report1.rdlc"
Me.ReportViewer1.RefreshReport()
End Sub
End Class
这样矩阵报表就好了。运行后见下图: