2008-09-02 107 views

回答

-1

我猜你在談論Reporting Services的.rdl文件? (如果沒有,我的回答可能是錯誤的)

它們基本上只是XML,所以你可以加載它們中的每一個並執行XPath查詢來獲取包含數據源的節點並更新它。

1

鏈接的子報告(至少在CR XI中)共享主報告的數據源 - 大概您的報告已經配置好了,這對您不適合?

1

@未使用我認爲他所面臨的問題是,如果您將某人開發的水晶報表針對另一個數據庫開發,並且您將其置於Crystal Reports XI中,則必須爲每個字段更改數據源,包括那些在子報表中。如果您只是更改報告頂層的來源,則通常會出錯。 (我認爲這是Crystal Reports中的一個已知問題)。

6

這是我在運行時設置連接的方式。我從配置位置獲取連接信息。

 #'SET REPORT CONNECTION INFO 
     For i = 0 To rsource.ReportDocument.DataSourceConnections.Count - 1 
      rsource.ReportDocument.DataSourceConnections(i).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword) 
     Next 

     For i = 0 To rsource.ReportDocument.Subreports.Count - 1 
      For x = 0 To rsource.ReportDocument.Subreports(i).DataSourceConnections.Count - 1 
       rsource.ReportDocument.OpenSubreport(rsource.ReportDocument.Subreports(i).Name).DataSourceConnections(x).SetConnection(crystalServer, crystalDB, crystalUser, crystalPassword) 
      Next 
     Next 
+0

我發現這對於在運行時設置連接最有幫助。 – 2018-02-14 12:54:10

2

如果您只是將其作爲一筆交易處理,我的建議可能無濟於事。但是,如果您經常更改數據源,則可能會有用。

聲明:我從9.0版本開始就沒有使用Crystal,所以我不知道他們是否在這方面有所改進。我總是用UDL files。基本上,它是一個指向數據源的指針。將報告設置爲指向UDL,並且UDL指向數據源。如果源更改,只需更新UDL。

如果您有多個報告,這非常有用。您只需在服務器更改時更新一個文件。

相關問題