将值传递给报表查看器

Pass value to report viewer

我有一个包含报表查看器的 aspx 文件。我得到的报告不是 table,而是包含几个文本框(需要来自以前的 aspx 的一些值)。如何将这些值传递到报表查看器?

下图为报告设计图。

我正在使用 rdlc 创建报告。 我确实创建了一个名为 para01 的文本框。 只是想知道如何从 C# 代码将其传递到报表查看器中。 我正在使用 VS2014 网络应用程序。

如果您的值很少,您可以使用查询字符串将它们传递到您的 ReportViewer 页面;即:

Me.Response.Redirect("~/yourFolder/yourReportViewerPage.aspx?" _
    & "staffname=" & txtStaffName.Text & "&" _
    & "taskName=" & txtTaskName.Text)

然后在你的 ReportViewer 页面中转换 ReportParameter 中的每个值(我通常使用 Page_Load 事件):

Dim parStaffName As New ReportParameter("parStaffName", Me.Request.QueryString("staffName"))
Dim parTaskName As New ReportParameter("parTaskName", Me.Request.QueryString("taskName"))

yourReportViewer.LocalReport.SetParameters(New ReportParameter() {parStaffName, parTaskName})

在您的报告中定义这些参数并使用以下方法阅读它们:

=Parameters!parStaffName.Value

这是C#代码;希望有用!

查询字符串:

Response.Redirect("~/yourFolder/yourReportViewerPage.aspx?staffname=" + txtStaffName.Text + "&taskName=" + txtTaskName.Text);

报表参数:

ReportParameter parStaffName = new ReportParameter("parStaffName", Request.QueryString("staffName"));
ReportParameter parTaskName = new ReportParameter("parTaskName", Request.QueryString("taskName"));
yourReportViewer.LocalReport.SetParameters(new ReportParameter[] {parStaffName, parTaskName});