gpt4 book ai didi

reporting-services - 将共享数据源用于动态生成和部署的报告

转载 作者:行者123 更新时间:2023-12-04 00:43:19 26 4
gpt4 key购买 nike

我正在为 SSRS 2008 动态生成 RDL 文件,从“构建 block ”组装我的报告,我将其定义为报告服务器上的报告,并将其用作生成报告的子报告。

在我的报表服务器上,我有一个共享数据源,只要我直接在报表服务器上运行东西,它就可以工作。

我想要完成的是:

  • 我生成的主报告应该引用该共享数据源
  • 我生成的主报告中包含的子报告也应该使用相同的数据源
  • 在我使用 web 服务接口(interface)将报表部署到报表服务器后,我希望能够立即真正看到报表

  • 现在,我可以很好地生成和验证我的 RDL,我也可以很好地将它部署到报表服务器 - 它显示出来了,一切都很好。

    但是当我尝试查看报告时,我得到一个错误,我的数据源无效或已被删除或什么的......

    我错过了什么??我很确定我有正确的数据源 - 它和所有的 GUID - 并且名称匹配。如何告诉生成的 RDL 使用服务器上已经存在的共享数据源?

    最佳答案

    在这里回答我自己的问题,希望其他人可能会觉得这很有用:

    我的(错误)印象是,赋予服务器上数据源的唯一“DataSourceID”足以唯一识别它。

    所以在我生成的 RDL 中,我有类似的东西:

      <DataSources>
    <DataSource Name="MyDataSource">
    <Transaction>true</Transaction>
    <DataSourceReference>MyDataSource</DataSourceReference>
    <rd:DataSourceID>6ba7c588-e270-4de9-988c-d2af024f10e1</rd:DataSourceID>
    <rd:SecurityType>None</rd:SecurityType>
    </DataSource>
    </DataSources>

    现在这工作了一次,当我的数据源确实被称为“MyDataSource”并且与我通过 RS WebService API 发布的报告位于同一目录中时。

    一旦我将数据源移到其他地方,它就停止了工作。

    解决方案:
    这可能听起来很傻,但一开始我真的没有“明白”: DataSourceReference需要在报告服务器上拥有指向我要引用的数据源的完整“路径”。仅指定唯一 ID 是不行的....

    因此,一旦我将 RDL 更改为:
      <DataSources>
    <DataSource Name="MyDataSource">
    <Transaction>true</Transaction>
    <DataSourceReference>/MyProject/DataSources/MyDataSource</DataSourceReference>
    <rd:DataSourceID>6ba7c588-e270-4de9-988c-d2af024f10e1</rd:DataSourceID>
    <rd:SecurityType>None</rd:SecurityType>
    </DataSource>
    </DataSources>

    (注意 <DataSourceReference>/MyProject/DataSources/MyDataSource</DataSourceReference> )

    从那一刻起,它就像一个魅力。

    希望有一天有人会发现这很有用!

    关于reporting-services - 将共享数据源用于动态生成和部署的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1797180/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com