2010-07-27 59 views
0

我有我创建的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)如果这是正确的方式,为什么当用户选择第二个服务器/数据库时报告不工作?数据库的模式与第一个完全相同。

回答

0

我知道,你是后C#,但我接受了这里的答案应该帮助你Crystal Reports Configuration Tool

(很明显我们需要稍微调整,因为它设置的多份报告的数据源,但螺母和螺栓,你需要在那里)

+0

感谢您的回复。我基本上改变了我的代码来模仿你的代码,而且我仍然遇到了我之前遇到的同样的错误。如果我使用创建报告的连接信息,它就可以工作。如果我使用不同的服务器和数据库,则不起作用。 Crystal运行时会告诉我报告文件中存在错误。但是,这两个数据库具有完全相同的模式。 – 2010-07-27 12:27:41

0

我想这是怎么回事是报表上的命令表已经知道什么连接去。

尝试在运行时更改CommandTable的.ConnectionInfo属性。

相关问题