我正在使用Crystal报告9.2.0.448。我在我的机器上创建了50多个水晶报告。并将数据库位置设置为 local_sql_server_name.database_name 。现在,我想在客户端的机器上安装所有报告。所以肯定是,sql server名称已更改。所以我必须手动设置所有水晶报告的数据库位置。所以我想知道 有没有办法自动更改数据库位置?
我还尝试了通用数据链接(.udl)文件。我从该文件中设置数据库位置。但是,如果我修改.udl文件,那么它不会影响水晶报告。
答案 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