在 Report Viewer 11 (VS2012) WinForms 中,我们在本地 RDLC 报表中遇到了一个关于报表参数的奇怪问题。
我们已经设置了一个本地报告,它使用一个报告参数并将其显示给用户:
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition"
xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
[...]
<ReportParameters>
<ReportParameter Name="TestValue">
<DataType>String</DataType>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
[...]
<Textbox Name="TestValueTextBox">
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!TestValue.Value</Value>
[...]
</TextRun>
</TextRuns>
<Style>
</Report>
在代码中,我们应用如下参数:
this.View.reportViewer.LocalReport.LoadReportDefinition(reportRdlc);
ReportParameter rp = new ReportParameter("TestValue", "TEST");
this.View.reportViewer.LocalReport.SetParameters(rp);
报表查看器不应用该值,而是抱怨缺少该值。
在 Report Viewer 10 (VS2010) 中,这实际上可以正常工作。
任何人都知道为什么这实际上不适用于 Report Viewer 11 (WinForms)?