替换报表和所有子报表的数据库连接

Joh*_*ert 7 crystal-reports

是否有任何方法可以更改报表及其所有子报表的数据源位置,而无需手动打开每个报表?

Jas*_*Jas 6

以下是我在运行时设置连接的方法.我从配置位置获取连接信息.

        #'SET REPORT CONNECTION INFO
        For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1
            rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
        Next

        For i = 0 To rsource.ReportDocument.Subreports.Count - 1
            For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1
                rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword)
            Next
        Next
Run Code Online (Sandbox Code Playgroud)


Dav*_*mps -1

我猜您正在谈论 Reporting Services 中的 .rdl 文件?(如果不是,我的回答可能是错误的)

它们基本上只是 XML,因此您可以加载它们中的每一个并执行 XPath 查询以获取包含数据源的节点并更新它。