更改多个水晶报告的数据库位置

时间:2012-05-21 09:41:21

标签: crystal-reports

我正在使用Crystal报告9.2.0.448。我在我的机器上创建了50多个水晶报告。并将数据库位置设置为 local_sql_server_name.database_name 。现在,我想在客户端的机器上安装所有报告。所以肯定是,sql server名称已更改。所以我必须手动设置所有水晶报告的数据库位置。所以我想知道 有没有办法自动更改数据库位置?

我还尝试了通用数据链接(.udl)文件。我从该文件中设置数据库位置。但是,如果我修改.udl文件,那么它不会影响水晶报告。

1 个答案:

答案 0 :(得分:1)

Private Sub RecurseAndRemap(ByVal CR As Engine.ReportDocument)
        For Each DSC As CrystalDecisions.Shared.IConnectionInfo In CR.DataSourceConnections
            DSC.SetLogon("YourUserName", "YourPassword")
            DSC.SetConnection("YouServerName", "YourDatabaseName", False)
        Next

        CR.SetDatabaseLogon("YourUserName", "YourPassword")

        For Each Table As Engine.Table In CR.Database.Tables
            Table.LogOnInfo.ConnectionInfo.UserID = "YourUserName"
            Table.LogOnInfo.ConnectionInfo.Password = "YourPassword"
        Next

        If Not CR.IsSubreport Then
            For Each SR As Engine.ReportDocument In CR.Subreports
                RecurseAndRemap(SR)
            Next
        End If
    End Sub