我是MS报道的新手。我想要实现的是制作一个简单的报告,该报告将从DataTable
(以编程方式)填写。我们的想法是将每个页面的数据分配到DataRow
的值。即报告页面1
将从TextBox
获取其DataTable.Rows[0]
值,报告页面2
将显示DataTable.Rows[1]
的值等。页数= {{1} }}
我编写了一个WinForms应用程序,该应用程序从SQL获取DataRows
并根据用户提供的参数对其进行过滤,然后显示报告。
然后我创建了一个名为DataTable
的空虚拟DataSet
,其中包含我将需要的所有字段名称。然后我做了ComplianceFormDataSet
,用这个表达式为.rdlc
添加了TextBox
:
=Fields!CustomerCode.Value
以下是将数据传递给ReportViewer的逻辑:
DataTable MainDataTable = new DataTable();
MainDataTable.Columns.Add("CustomerCode", typeof(string));
MainDataTable.Rows.Add("Blah1");
MainDataTable.Rows.Add("Blah2");
ReportDataSource MainDataSource = new ReportDataSource("ComplianceFormDataSet", MainDataTable);
MainReportViewer.LocalReport.DataSources.Clear();
MainReportViewer.LocalReport.DataSources.Add(MainDataSource);
MainReportViewer.RefreshReport();
当我构建此内容时,获取一个包含"Blah1"
页面的报告。如何使其呈现两个页面:一个带有"Blah1"
,另一个带有"Blah2"
?谢谢。
答案 0 :(得分:10)
好的,我想出来了:
很明显,不是吗?