我有一个包含文本框和tablix的reportviewer。 Tablix使用数据源填充(使用带有来自查询字符串的2个参数的存储过程获取数据)。 如何将查询字符串的值指定为reportviewer文本框的值。 就像是: 此ReportfFrom查询字符串val1以查询字符串val 2。
标记:
<rsweb:ReportViewer ID="ReportViewer1" runat="server"
CssClass="ReportAlignment" Font-Names="Verdana" Font-Size="8pt"
InteractiveDeviceInfos="(Collection)" WaitMessageFont-Names="Verdana"
WaitMessageFont-Size="14pt" Width="550px">
<LocalReport ReportPath="TempEmpWageSummaryReport.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="LoadWageSummary" Name="DataSet1" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:SqlDataSource ID="LoadWageSummary" runat="server"
ConnectionString="<%$ ConnectionStrings:stockerConnectionString %>"
SelectCommand="procTempEmployeeWageSummaryReport"
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:QueryStringParameter Name="startDate" QueryStringField="start"
Type="String" />
<asp:QueryStringParameter Name="endDate" QueryStringField="end" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
背后的代码
protected void Page_Load(object sender, EventArgs e)
{
string start = Server.UrlDecode(Request.QueryString["start"]);
string end = Server.UrlDecode(Request.QueryString["end"]);
//this.ReportViewer1.LocalReport.ReportEmbeddedResource = "TempEmpWageSummaryReport.rdlc";
string param0 = "GROUPED TEMPORARY EMPLOYEE WAGE SUMMARY REPORT FROM " + start + "to " + end;
ReportParameter rp = new ReportParameter("ReportParameter1", param0);
this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
this.ReportViewer1.LocalReport.Refresh();
//BindReport();
}
感谢。
答案 0 :(得分:1)
如果您在文本框中保存具有所需值的报告,则可以通过报告定义中的xml处理以获取值,但我不建议这样做。 您最好只在报告外部放置一个文本框,然后将其提供给查询以获取数据。
除了上述内容之外,我几乎可以肯定从报告中的文本框中获取用户指定的值是不可能的,除非报告已保存,然后您处理报告&#如果你不知道自己在做什么,那么定义并抓住一个痛苦的价值。