我有3台安装了Crystal Reports Server XI R2的不同计算机。它们位于不同的子网中,指向具有相同模式定义但名称不同(开发,测试,生产)的不同oracle数据库。
我在开发环境中创建了一个rpt文件,指向“dev”模式。 一切都很好。该报告已成功执行。
当我得到相同的rpt并在测试服务器中发布它时,我无法更改数据源位置。似乎rpt文件修复了其创建时使用的数据源。
任何人都知道如何更改rpt文件的数据源,使其独立于数据库位置并独立于设计人员使用的数据库?
由于
答案 0 :(得分:0)
我从问题中假设不同的Oracle数据库具有不同的数据库名称,但具有相同的模式名称 - 类似于开发,测试和实时的OperationalDB? (如果它们具有不同的模式名称,则会更复杂。)
如果是这样,那么这取决于你正在使用什么类型的驱动程序。
如果使用ODBC驱动程序,则只需在每台Crystal计算机上设置具有相同数据源名称的不同ODBC源(指向相应的数据库)。
如果使用本机Oracle驱动程序,那么我建议在每台机器上编辑TNSNAMES.ORA文件,使它们各自具有指向相应数据库的相同TNS名称。
如果使用本机Oracle驱动程序而您无法编辑TNSNAMES.ORA文件(例如,如果它是共享网络文件而不是位于每台Crystal计算机上),则需要更改每次将报表从一台计算机传输到另一台计算机时,报表设计器中的数据源位置(或通过API,如果通过API访问Crystal)。