我有一个将部署到InfoView服务器的Crystal 2008报告。用户可能希望执行报告的数据库有四种。四个数据库中的每一个都具有完全相同的模式。只有每个数据都不同。每个数据库对应于我们在世界各地的工厂。
我是否能够根据用户输入参数的值动态更改报告命中的服务器/数据库,而不是创建四个不同的报告(每个报告连接到四个数据库中的一个)?我真的试图避免创建四个相同的报告,除了每个报告上的数据库连接。如果这不可能,开发人员通常如何处理这种情况?我认为这很常见。
非常感谢。
答案 0 :(得分:1)
InfoView不支持动态更改报表的数据源。您当然可以使用BusinessObjects Enterprise SDK修改InfoView源以满足您的需求,但这将是一个挑战,BO将不会支持。
另一种选择是使用BusinessObjects Enterprise SDK构建自定义门户,但这也需要相当多的编码。
可能最好的选择是多次发布报告,根据需要设置每个数据源(通过CMC),并更改报告的名称以指示其数据源(通过CMC)。我在CMC中有一个报告属性,它将保存数据源设置,以便您在对原始文件进行更改时快速重新发布报告。
答案 1 :(得分:0)
我不熟悉InfoView,但做你所描述的很常见,我用Asp.Net和Winforms做过类似的事情。如果您有权访问Crystal Reports对象模型,则可以使用大量选项来设置登录信息,我认为它是SetDatabaseLogon;如果你有子报告,你必须分别为每个子报告设置登录。
模式必须完全相同,否则用户将收到警告。