我有一个我创建的Crystal 2008报告,我想在我的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 :(得分:0)
我意识到你是在追求C#,但我接受的答案可以帮助你Crystal Reports Configuration Tool
(显然需要略微调整,因为它设置了多个报告的数据源,但你需要的那些螺母和螺栓在那里)
答案 1 :(得分:0)
我认为正在发生的事情是报告上的命令表已经知道要连接到哪个连接。
尝试在运行时更改CommandTable的.ConnectionInfo属性。