gpt4 book ai didi

deployment - SSRS RDL 以编程方式映射数据源

转载 作者:行者123 更新时间:2023-12-04 05:01:36 27 4
gpt4 key购买 nike

我们正在使用 rs.exe 将 RDL 部署到 ReportServer。

作为DataSource,Shared DataSet 和RDLs 位于不同的文件夹中。部署RDLs 后,RDL 到Shared DataSets 和Shared DataSets 到DataSource 的映射被删除。

我必须手动将每个 RDL 映射到相应的数据集和数据源。我有 200 个 RDL,很难手动完成。

部署 RDL 后,我需要将 RDL 映射到数据集的代码

某些机构可以帮助我编写一些代码来满足我的要求吗?

最佳答案

我创建了一个执行以下操作的 rs.exe 脚本:

  • 部署基于文件的报告 报告.rdl .该报告有一个对共享数据源的引用和一个对共享数据集的引用。报表部署到报表服务器/目录。
  • 将报表的数据源设置为报表服务器上的现有共享数据源。数据源部署为 /数据源/DS .
  • 将报表的数据集设置为报表服务器上的现有共享数据集。数据源部署为 /数据集/数据集 .

  • 该脚本包含以下代码:

    Public Sub Main()
    Dim definition As [Byte]() = Nothing
    Dim warnings As Warning() = Nothing

    'Read report from file on disk
    Dim stream As FileStream = File.OpenRead("Report.rdl")
    definition = New [Byte](stream.Length - 1) {}
    stream.Read(definition, 0, CInt(stream.Length))
    stream.Close()

    'Deploy report
    'ItemType, name, folder, overwrite, definition, properties
    rs.CreateCatalogItem("Report", "Report", "/", True, definition, Nothing, warnings)

    'Update existing report Data Souce reference to Shared Data Source on server
    Dim dataSourceRefs(0) As DataSource
    Dim dsr As New DataSourceReference
    dsr.Reference = "/Data Sources/DS"
    Dim ds As New DataSource
    ds.Item = CType(dsr, DataSourceDefinitionOrReference)
    ds.Name = "DS"
    dataSourceRefs(0) = ds

    rs.SetItemDataSources("/Report", dataSourceRefs)

    'Update existing report DataSet reference to Shared DataSet on server
    Dim dataSetRefs(0) as ItemReference
    Dim dset as New ItemReference
    dset.Name = "DataSet"
    dset.Reference = "/Datasets/DataSet"
    dataSetRefs(0) = dset

    rs.SetItemReferences("/Report", dataSetRefs)

    End Sub

    听起来您已经成功部署了报告。

    因此,需要注意的主要事项是更新数据源引用和数据集引用的代码片段。需要注意的方法有:

    SetItemDataSources更新 数据源 .

    SetItemReferences更新 数据集 .

    这是一份报告,因此您需要将代码封装在部署脚本的子例程中,但希望这对您有所帮助。

    关于deployment - SSRS RDL 以编程方式映射数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16083951/

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