本地报表查看器11(RDLC)不处理应用的参数

时间:2013-10-09 10:43:46

标签: c# winforms reportviewer rdlc

在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)?

2 个答案:

答案 0 :(得分:0)

我很确定v2012有RDLC Schema更改,因此我认为您需要使用正确的架构更新报告。不确定所有改变了但是对于初学者来说可能有所帮助,

“的xmlns =” http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition“

我可能错了,但表面上看起来至少是问题的方向。

答案 1 :(得分:0)

在刷新报告之前立即设置参数,它将神奇地起作用。
不知道原因,因为我们无法调试它。

reportViewer.LocalReport.SetParameters(paramters);  
// do not put any other operation here           
reportViewer.RefreshReport();

这是我第一次留下答案,因为我在其他任何地方都找不到这种解决方案。