2012-05-21 45 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