我有我創建的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)如果這是正確的方式,爲什麼當用戶選擇第二個服務器/數據庫時報告不工作?數據庫的模式與第一個完全相同。
感謝您的回覆。我基本上改變了我的代碼來模仿你的代碼,而且我仍然遇到了我之前遇到的同樣的錯誤。如果我使用創建報告的連接信息,它就可以工作。如果我使用不同的服務器和數據庫,則不起作用。 Crystal運行時會告訴我報告文件中存在錯誤。但是,這兩個數據庫具有完全相同的模式。 – 2010-07-27 12:27:41