我想将ReportViewer与我执行的查询绑定,就像我们使用DataGridView一样,因此表单将包含一个文本框和一个按钮。当我在文本框中输入学生ID并单击按钮时,它必须从表中获取特定记录,并以收据的形式在报告查看器中显示。我从未使用过ReportViewer,所以如果你能给我一些例子,或者只是写一个我认为可以管理的粗略蓝图,我就不知道如何以及从哪里开始。
谢谢
答案 0 :(得分:1)
ReportViewer显示报告,而不是绑定数据。为了显示收据,您需要创建.rdl或.rdlc文件(哪一个取决于您是在WinForms还是WebForms中工作)。
您的报告定义将存储在.rdl或.rdlc文件中。您可以在.rdl文件中存储查询定义,并在显示报告时执行该定义。您可以在查询中设置参数并报告可以提示您的参数。
除此之外,具体细节因这是WinForms还是WebForms报告而异。
答案 1 :(得分:0)
但是我可以给你一个提示,Local Report
尝试像这样绑定它,这个例子接受参数FromDate
和ToDate
并使用和EntiyDataSource
相应地提取数据。
<强> page.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();
}