1

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

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

4

1 回答 1

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
于 2012-05-21T11:17:36.660 回答