我有我创建的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