2009-10-15 62 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