我有一个Crystal Reports 2008用户,该用户拥有100多个自定义开发的报告。 报告全部查询Sql Server数据库(SQL 2005) 此数据库服务器将替换为新系统(运行SQL 2008 R2),现有数据库将移至新服务器。 新数据库服务器将具有不同的名称(我可以通过Crystal Reports Connections解决), 但是,其中一个应用程序也在同时升级。旧数据库(DB_A)将在新服务器上恢复以进行历史报告,并将创建新数据库(DB_B)。 新的DB_B将具有非常相似的模式,因此我希望大多数Crystal Reports应该能够针对新的DB_B运行,除了将报告定义指向新的DB_B之外,几乎没有修改。
当然,我的大多数用户自定义开发了针对DB_A的报告查询。
我的问题是:如何修改现有Crystal Reports文件以指向新数据库名称(DB_B)而不是旧数据库(DB_A)?
答案 0 :(得分:48)
使用“数据库”菜单和“设置数据源位置”菜单选项更改报告中每个表的名称或位置。
这适用于更改数据库的位置,更改为新数据库以及更改报表中使用的单个表的位置或名称。
要更改数据源连接,请转到“数据库”菜单,然后单击“设置数据源位置”。
然后再次尝试运行报告。
关键是首先更改数据源连接,然后更改需要更新的任何表,然后更改其他内容。连接不会自动更改下面的表。那些桌子就像小鸟一样印在他们看到的第一只大型鹅状动物身上。除非你专门手动更改它们,否则他们将继续绕过所有的理由和逻辑并前往他们一直走的地方。
为了使它更方便,这里有一个提示:你可以在数据库菜单中“显示SQL查询”,你会看到用数据库限定的表名(如“Sales”。“dbo”。“Customers”)对于任何直接进入特定数据库的表。如果你有很多东西,这可能会使狩猎变得更容易。当我解决这个问题时,我不得不将每个表更改为指向新数据库中的新表。
答案 1 :(得分:5)
选择数据库|设置数据源位置...选择当前连接的数据库节点(黄色圆柱体),然后选择所需连接的数据库节点(可能需要进行身份验证),然后单击“更新”。
您还需要为“子报告”节点执行此操作。
仅供参考,您也可以单独选择每个表格,然后选择更新。