reporting-services - 修改 Reporting Services 报告 - RDL 没有改变?

标签 reporting-services ssrs-2008 rdl

我的 Reporting Services 2005 报告有错误:“参数 UserID 是只读的”。经过一些研究后,我找到了一个有效的解决方案。我从报告管理器 Web 界面打开报告并更改了此内容:

before

..对此:

after

进行此更改后,报告可以正常工作!太棒了!

因此,我想我将下载修改后的 RDL,以便我可以看到更改并将更正后的 RDL 放入我的源代码存储库中。因此,我下载了 RDL:

Downloading the RDL

但是我的 diff 工具告诉我 RDL“之前”版本与 RDL“之后”版本相同。确信我的 diff 工具是错误的,我尝试了另一个。果然,RDL 没有任何区别。

我错过了什么?更改是否反射(reflect)在 RDL 之外的其他位置,或者 Reporting Services 是否没有提供正确版本的 RDL?无论哪种情况,我怎样才能获得正确版本的 RDL?

谢谢。

最佳答案

TL/DR 版本:Reporting Services 没有为您提供正确的 RDL。


您的问题促使我进一步调查我对 SSRS 已有相当长一段时间的怀疑:在部署(或下载)报表定义时,报表参数可能会以报表开发人员意想不到的方式运行。我之前注意到的一个相关场景:

  1. 创建包含参数的报告。
  2. 首次部署报告。
  3. 以某种方式更新报告参数。
  4. 再次部署相同的报告。
  5. 结果:参数设置在服务器上成功更新。
  6. 从报告管理器中删除该报告。
  7. 再次部署报告(实际上与步骤 2 相同)。
  8. 结果:报告参数正确更新。

简而言之,如果您想要更新已部署报表的参数设置,您首先需要将其删除然后部署它,或者直接通过报表管理器更新设置。

回到你的问题。你没有错过任何东西,这似乎就是 SSRS 的行为方式(有意或无意)。 RDL schema有这个(缩写)片段:

<xsd:complexType name="ReportParameterType">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
        <xsd:element name="DataType">
            <!-- abbreviated -->
        </xsd:element>
        <xsd:element name="Nullable" type="xsd:boolean" minOccurs="0"/>
        <xsd:element name="DefaultValue" type="DefaultValueType" minOccurs="0"/>
        <xsd:element name="AllowBlank" type="xsd:boolean" minOccurs="0"/>
        <xsd:element name="Prompt" type="xsd:string" minOccurs="0"/>
        <xsd:element name="ValidValues" type="ValidValuesType" minOccurs="0"/>
        <xsd:element name="Hidden" type="xsd:boolean" minOccurs="0"/>
        <xsd:element name="MultiValue" type="xsd:boolean" minOccurs="0"/>
        <xsd:element name="UsedInQuery" minOccurs="0">
    </xsd:choice>
    <xsd:attribute name="Name" type="xsd:normalizedString" use="required"/>
</xsd:complexType>

因此,您的 ReportParameter 应该有一个“隐藏”元素。

我刚刚验证了您的发现(在 SSRS 2008 中),并且我想我可能已经找到了您第二个问题的答案:SSRS 确实没有给出 RDL 的正确版本。它缺少有关参数的各种位,包括是否隐藏的元素。

有趣的是:如果您更改 BIDS 中的报告并将参数设置为隐藏,则 RDL 将发生更改并具有 <Hidden>true</Hidden>元素。

关于reporting-services - 修改 Reporting Services 报告 - RDL 没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900505/

相关文章:

visual-studio-2005 - 您能否在报表设计器中重新排序列(出价 2005)

reporting-services - 如何为分组列创建总计行

reporting-services - 从字符串 SSRS 中删除空行

excel - SSRS 2008 调色板变化

sql-server-2008 - SQL 中 where 语句的性能,而不是数据集上的过滤

sql-server - 如何在 SQL Server Reporting Services 的 RunningValue 函数中指定组?

reporting-services - 如果未收到预期的计划报告电子邮件,则会收到警告

visual-studio-2010 - SSRS:VS2010中的“索引超出范围”,但部署报表时则没有

ssrs-2008 - 在 SSRS2008 R2 中隐藏空子报表

reporting-services - 在SSRS报表管理器中看不到新建文件夹、新建数据源、上传文件等选项?