2009-10-15 44 views
6

我有一個基於XSD架構文件的水晶報表。動態更改Crystal Reports中的XSD文件路徑

在報告定義中,我可以修改數據源位置,特別是文件路徑。這是我可以將文件路徑設置爲XSD架構文件位於我的機器上的位置。

在這一點上,一切工作正常。

這裏的問題是:

如果文件路徑不存在,該報告有一個運行時錯誤。

由於我的本地開發環境與測試/實況環境在物理上有所不同,因此這會帶來問題,特別是部署問題。即文件路徑非常不同,我不想依賴「硬編碼」文件路徑。

我的問題是,我想知道如何動態地(在代碼中)更改此文件路徑,或者將其設置在報告定義中,以便它相對於報告的位置?

+0

水晶哪個版本是您使用動態設置XML或XSD? – 2009-10-16 07:41:36

回答

1

最簡單的方法是將數據源位置設置爲與報告文件位置相同。打開「設置數據源位置」對話框時,展開屬性加框,然後右鍵單擊文件路徑名並選擇「與報告相同」。

0

下面的示例代碼使用了

ReportDocument crReportDoc.DataSourceConnections[0].SetConnection(p_XMLDocument + " " + tdgDoc_XSD, "", null, ""); 
// crReportDoc.DataSourceConnections[0].SetConnection(p_XMLDocument + " " + tdgDoc_XSD, "", null, ""); 
NameValuePairs2 logon = new NameValuePairs2(); 
logon.Set("QE_ServerDescription", p_XMLDocument + " " + tdgDoc_XSD); 
logon.Set("Local Schema File", tdgDoc_XSD); 
logon.Set("Local XML File", p_XMLDocument); 
crReportDoc.DataSourceConnections[0].SetLogonProperties(logon); 
+2

您可能需要改進代碼的格式 – 2014-06-27 06:29:44