我想将 ReportViewer 与我执行的查询绑定,就像我们对 DataGridView 所做的那样,因此表单将包含一个文本框和一个按钮。当我在文本框中输入学生 ID 并单击按钮时,它必须从表中获取特定记录并以收据的形式在报告查看器中显示。我从来没有使用过 ReportViewer,所以我不知道如何以及从哪里开始,如果你能给我提供一些例子或者只是写一个我认为我可以管理的粗略蓝图。
谢谢
我想将 ReportViewer 与我执行的查询绑定,就像我们对 DataGridView 所做的那样,因此表单将包含一个文本框和一个按钮。当我在文本框中输入学生 ID 并单击按钮时,它必须从表中获取特定记录并以收据的形式在报告查看器中显示。我从来没有使用过 ReportViewer,所以我不知道如何以及从哪里开始,如果你能给我提供一些例子或者只是写一个我认为我可以管理的粗略蓝图。
谢谢
ReportViewer 显示报告,而不是绑定数据。为了显示收据,您需要创建一个 .rdl 或 .rdlc 文件(取决于您使用的是 WinForms 还是 WebForms)。
您的报告定义将存储在 .rdl 或 .rdlc 文件中。您可以将查询定义存储在 .rdl 文件中,并在您显示报告时执行。您可以在可以提示您输入的查询和报告中设置参数。
除此之外,具体取决于这是 WinForms 还是 WebForms 报告。
但是我可以给你一个提示Local Report
尝试像这样绑定它,这个例子接受参数FromDate
并ToDate
相应地使用 and 获取数据EntiyDataSource
。
页面.aspx
<rsweb:ReportViewer ID="ReportViewer1" runat="server"
Height="600px" SizeToReportContent="True"
Width="800px" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)"
WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
<LocalReport ReportPath="Report.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:EntityDataSource ID="EntityDataSource2" runat="server"
ConnectionString="name=FooEntities" DefaultContainerName="FooContainerEntities"
EnableFlattening="False" EntitySetName="Foo_table">
</asp:EntityDataSource>
<asp:EntityDataSource ID="EntityDataSource1" runat="server">
</asp:EntityDataSource>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetList" TypeName="model">
<SelectParameters>
<asp:Parameter DefaultValue="" Name="dateFrom" Type="DateTime"></asp:Parameter>
<asp:Parameter DefaultValue="" Name="dateTo" Type="DateTime"></asp:Parameter>
</SelectParameters>
</asp:ObjectDataSource>
代码背后
protected void Button1_Click(object sender, EventArgs e)
{
List<ListData> listData = new List<ListData>();
DateTime dateFrom = Convert.ToDateTime(TextBox1.Text.Trim());
DateTime dateTo = Convert.ToDateTime(TextBox2.Text.Trim());
ReportViewer1.LocalReport.ReportPath = "Report.rdlc";
ReportParameter[] reportParameter = new ReportParameter[2];
reportParameter[0] = new ReportParameter("dateFrom", dateFrom.ToShortDateString());
reportParameter[1] = new ReportParameter("dateTo", dateTo.ToShortDateString());
ReportViewer1.LocalReport.SetParameters(reportParameter);
ReportViewer1.LocalReport.Refresh();
}