Crystal reports 在具有多个数据库的Crystal Reports中直接使用视图时出现问题

Crystal reports 在具有多个数据库的Crystal Reports中直接使用视图时出现问题,crystal-reports,views,Crystal Reports,Views,在多数据库环境中使用Crystal Reports。过去的报告都是非一般性的(见图)。在提供新的可交付成果的同时,努力清理这一混乱局面。客户不理解并总是寻求尽可能短的方法,也不认为有必要清理/调整现有报告以使其适用于所有系统 遇到了许多使用特定书面视图为每个报表构建的报表。当克隆一个基于视图的crystal报表,然后尝试通过crystal designer在一个不同于构建报表的原始数据库的数据库上运行报表时,就会出现戏剧性的结果。 报告保留在原始视图对象上。运行但不提供输出。起初,我认为潜在的观

在多数据库环境中使用Crystal Reports。过去的报告都是非一般性的(见图)。在提供新的可交付成果的同时,努力清理这一混乱局面。客户不理解并总是寻求尽可能短的方法,也不认为有必要清理/调整现有报告以使其适用于所有系统

遇到了许多使用特定书面视图为每个报表构建的报表。当克隆一个基于视图的crystal报表,然后尝试通过crystal designer在一个不同于构建报表的原始数据库的数据库上运行报表时,就会出现戏剧性的结果。 报告保留在原始视图对象上。运行但不提供输出。起初,我认为潜在的观点存在一些问题

解决方案是更新“设置数据源位置”面板中的视图引用

想知道人们对在crystal reports中使用视图的看法。如果他们以前遇到过这种情况

显然,视图有其用途,但我不认为在报表和sql语句之间添加另一层的意义,即在sql可以直接插入报表时,为报表创建特定视图。当您想要进行更复杂的计算和输出时,只有数据库过程对我有意义

注释

  • 从不同应用程序的应用程序菜单中可以很好地运行报告
    系统(不更改crystal数据源)SAP B1
  • 间接使用视图的报告不受此问题的影响
伪屏幕截图: 设置数据源位置(面板)


根据我们的经验,使用多个服务器/数据库(甚至是具有N-N关系的表)的视图是首选方法。如果数据库布局或服务器配置发生任何更改,您希望更改一个视图还是多个相关报告

当然,这可能与我们的报告设计用于单个数据库这一事实有关。我们的应用程序总是将所有包含的数据源位置(表、视图)替换为当前数据库,这允许轻松报告不同的数据库(包括MSAccess和MSSQL数据库)。这种方法排除了跨数据库报告,除非使用视图。我们的报告也使用OLEDB接口,而不是链接到应用程序中打开的数据源连接

设计器在使用报表文件直接打开时,有时会出现问题;设置数据源位置通常会更正这些错误(您可能还需要为特定视图设置位置)。如果通过我们的应用程序打开,该应用程序可以保存带有更正的数据库信息的报告副本,那么designer的工作将完美无缺

底层视图有时也会出现问题,无法轻松地转移到不同的数据库布局。幸运的是,可以在不更改输出布局的情况下更改视图定义:)


关于客户-他们当然不想更改他们的工作报告。您可以肯定,在用更通用的报告替换他们的报告时,您会引入一些错误-谁想要这样?没有人。

根据我们的经验,对多个服务器/数据库(甚至是具有N-N关系的表)使用视图是首选方法。如果数据库布局或服务器配置发生任何更改,您希望更改一个视图还是多个相关报告

当然,这可能与我们的报告设计用于单个数据库这一事实有关。我们的应用程序总是将所有包含的数据源位置(表、视图)替换为当前数据库,这允许轻松报告不同的数据库(包括MSAccess和MSSQL数据库)。这种方法排除了跨数据库报告,除非使用视图。我们的报告也使用OLEDB接口,而不是链接到应用程序中打开的数据源连接

设计器在使用报表文件直接打开时,有时会出现问题;设置数据源位置通常会更正这些错误(您可能还需要为特定视图设置位置)。如果通过我们的应用程序打开,该应用程序可以保存带有更正的数据库信息的报告副本,那么designer的工作将完美无缺

底层视图有时也会出现问题,无法轻松地转移到不同的数据库布局。幸运的是,可以在不更改输出布局的情况下更改视图定义:)


关于客户-他们当然不想更改他们的工作报告。您可以肯定,在用更通用的报告替换他们的报告时,您会引入一些错误-谁想要这样?没有人。

谢谢您的详细回复。谢谢您的详细回复。
Current Datasource:
Report
   server
      properties
         initial catalog: other database

      view
         properties
            catalog: original database