2012-05-21 47 views
1

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

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

回答

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 
+0

这是将更新的服务器保存在实际的Crystal Report中还是保存在内存中的ReportDocument对象中? –

+0

只是在内存中。你是否需要将更新的服务器保存在Crystal报告中,还是只希望在运行时更改连接? – Asif

+0

@AsifGhafoor我想将更新的服务器保存在水晶报表中。这是我的实际问题。 – hims056