2010-07-27 58 views
0

我有我創建的Crystal 2008報表,並且想在C#應用程序中顯示此報表。用戶可以選擇讓報告從兩個不同數據庫中的一個獲取其數據。在我的代碼中,我正在更改數據源,如下所示:Crystal Reports - 在C#中動態設置和更改數據源

if (site == "PBG") 
     reportDocument.DataSourceConnections[0].SetConnection("Server1", "MESProduction", "User", "Password"); 
    else 
     reportDocument.DataSourceConnections[0].SetConnection("Server2", "MESProduction", "User", "Password"); 
    reportDocument.DataSourceConnections[0].IntegratedSecurity = false; 

該報告是使用第一個連接信息創建的。如果用戶選擇此數據庫從中提取數據,則報告可以正常工作。如果他/她選擇第二個,那麼報告不起作用。

有兩個問題:1)這是在運行時動態設置報表的服務器/數據庫源的正確方法嗎? 2)如果這是正確的方式,爲什麼當用戶選擇第二個服務器/數據庫時報告不工作?數據庫的模式與第一個完全相同。

回答

0

我知道,你是後C#,但我接受了這裏的答案應該幫助你Crystal Reports Configuration Tool

(很明顯我們需要稍微調整,因爲它設置的多份報告的數據源,但螺母和螺栓,你需要在那裏)

+0

感謝您的回覆。我基本上改變了我的代碼來模仿你的代碼,而且我仍然遇到了我之前遇到的同樣的錯誤。如果我使用創建報告的連接信息,它就可以工作。如果我使用不同的服務器和數據庫,則不起作用。 Crystal運行時會告訴我報告文件中存在錯誤。但是,這兩個數據庫具有完全相同的模式。 – 2010-07-27 12:27:41

0

我想這是怎麼回事是報表上的命令表已經知道什麼連接去。

嘗試在運行時更改CommandTable的.ConnectionInfo屬性。

相關問題