如何在新数据库中指向Crystal Reports

JSR*_*JSR 27 crystal-reports crystal-reports-2008

我有一个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)?

Tod*_*ton 50

使用"数据库"菜单和"设置数据源位置"菜单选项可更改报告中每个表的名称或位置.

这适用于更改数据库的位置,更改为新数据库以及更改报表中使用的单个表的位置或名称.

要更改数据源连接,请转到"数据库"菜单,然后单击"设置数据源位置".

  1. 更改数据源连接:
    1. 从"当前数据源"列表(顶部框)中,单击要更改的数据源连接.
    2. 在替换为列表(底部框)中,单击新数据源连接一次.
    3. 单击更新.
  2. 更改个别表格:
    1. 从"当前数据源"列表(顶部框)中,展开要更改的数据源连接.
    2. 找到要更新其位置或名称的表.
    3. 在替换为列表(底部框)中,展开新的数据源连接.
    4. 找到要更新的新表以指向.
    5. 单击更新.
    6. 请注意,如果表名已更改,则旧表名仍将显示在"字段资源管理器"中,即使它现在正在使用新表.(您可以确认这是在设置数据源位置的当前数据源中查看表的属性的表名.截图http://i.imgur.com/gzGYVTZ.png)可以将旧表名重命名为新的数据库专家 - >选定表中的上下文菜单中的名称.
  3. 更改子报告:
    1. 对报表中可能嵌入的任何子报表重复上述每个步骤.
    2. 关闭"设置数据源位置"窗口.
  4. 任何命令或SQL表达式:
    1. 转到Database菜单,然后单击Database Expert.
    2. 如果报表设计器使用"添加命令"编写自定义SQL,它将显示在右侧的"选定表"框中.
    3. 右键单击该命令,然后选择"编辑命令".
    4. 检查SQL是否指定了特定的数据库.如果是这样,您可能需要更改它.
    5. 关闭"数据库专家"窗口.
    6. 在右侧的"字段资源管理器"窗格中,右键单击任何SQL表达式.
    7. 检查SQL表达式是否指定了特定的数据库.如果是这样,您可能还需要更改它.
    8. 完成编辑后,保存并关闭"公式编辑器"窗口.

然后再次尝试运行报告.

关键是首先更改数据源连接,然后更改需要更新的任何表,然后更改其他内容.连接不会自动更改下面的表.那些桌子就像小鸟一样印在他们看到的第一只大型鹅状动物身上.除非你专门手动更改它们,否则它们将继续绕过所有理由和逻辑并前往它们一直消失的地方.

为了使它更方便,这里有一个技巧:你可以在"显示SQL查询"数据库中的菜单,你会看到表名合格与数据库的任何表(如"销售","DBO","客户".)直接进入特定的数据库.如果你有很多东西,这可能会使狩猎变得更容易.当我解决这个问题时,我不得不改变每个表以指向新数据库中的新表.


cra*_*aig 7

选择数据库| 设置数据源位置...选择当前连接的数据库节点(淡黄色圆柱),然后选择所需连接的数据库节点(您可能需要进行身份验证),然后单击“更新”。

您还需要对“子报表”节点执行此操作。

仅供参考,您也可以通过单独选择每个表格,然后选择“更新”来制作单个表格。