【问题标题】:Local Report Viewer 11 (RDLC) doesn't process applied parameters本地报表查看器 11 (RDLC) 不处理应用的参数
【发布时间】:2013-10-09 10:43:45
【问题描述】:

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

【问题讨论】:

    标签: c# winforms reportviewer rdlc


    【解决方案1】:

    在刷新报告之前设置参数,它会神奇地工作。
    无法调试,不知道原因。

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

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

    【讨论】:

      【解决方案2】:

      我很确定 v2012 有 RDLC 架构更改,因此我相信您需要使用正确的架构更新报告。不确定发生了什么变化,但对于初学者来说可能会有所帮助,

      "xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition"

      我可能是错的,但从表面上看,这至少是你问题的方向。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多