代码之家  ›  专栏  ›  技术社区  ›  Randy Minder

我可以更改数据库服务器和报表动态指向的数据库吗?

  •  0
  • Randy Minder  · 技术社区  · 15 年前

    我有一个Crystal 2008报告,将部署到InfoView服务器。用户可能希望对四个不同的数据库执行报告。四个数据库中的每一个都有完全相同的模式。只有每种数据是不同的。每个数据库对应于我们在世界各地拥有的一个工厂。

    我是否能够根据用户输入的参数值动态更改报表命中的服务器/数据库,而不是创建四个不同的报表(每个报表都连接到四个数据库中的一个数据库)?我真的想避免创建四个相同的报表,除了每个报表上的数据库连接。如果这不可能,开发人员通常如何处理这种情况?我想这很常见。

    非常感谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   craig    15 年前

    InfoView不支持动态更改报表的数据源。您当然可以修改InfoView源代码以满足您的需求 BusinessObjects Enterprise SDK 但这将是一个挑战,不会得到博的支持。

    另一个选项是使用 BusinessObjects企业软件开发工具包 但这也需要相当多的编码。

    最好的选择可能是多次发布报表,根据需要设置每个数据源(通过CMC),并更改报表的名称以指示其数据源(通过CMC)。i CMC中有一个报表属性,它将保存数据源设置,以便在对原始报表进行更改时快速重新发布报表。

        2
  •  0
  •   SqlACID    15 年前

    我不熟悉infoview,但是做你描述的事情是很常见的,我用ASP.NET和WinForms做了类似的事情;如果你有访问Crystal Reports对象模型的权限,有很多设置登录信息的选项,我认为它是setdatabaselogon;如果你有子报表,你可以必须分别为每一个设置登录名。

    模式必须完全相同,否则用户将收到警告。