2008-09-02 76 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。

如果您有多个报告,这非常有用。您只需在服务器更改时更新一个文件。

相关问题