用delphi7+crystal 10 vcl做的程序,在开发的机器上一切正常。分发到客户机后,发现报表一直无法显示。多次调试后发现,如果报表中只含有一个数据表,显示就一切正常,如果含有多张关联表,就会出现failed to open a rowset错误。
另外,如果报表中含有formula,也会提示出错“error in formula”。
我分发时没有用installshield打包,只是将开发机器上的program files\common files\crystal decisions\2.5\bin下的文件拷贝到了客户机,并且在注册表中添加了键值,用regsvr32 注册了crqe.dll/craxdrt.dll/craxddrt.dll。 
哪位大哥再给指点一下,还需要注册哪些文件,我不太想在客户机安装crystal。
应该已经很接近了,因为单个数据表(不含formula)是可以正常显示的。

解决方案 »

  1.   

    看一下此篇,可能有所帮助
    主要是看用了哪些dll
    http://www.cnblogs.com/babyt/archive/2005/03/24/124499.html
      

  2.   

    我又注册了crviewer.dll/crtslv.dll 还是不行
      

  3.   

    目前还没听说过谁是通过直接拷贝dll能完成部署的,不过既然你开始了,希望能有个完美的结果,呵呵继续C:\WINDOWS\system32使用详细资料视图,将所有公司名称为Crystal Decisions (或者是Business Objects)的文件拷贝到目标机器的同样位置。
    不用注册。另外你的注册表里的
    [HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\9.0\Crystal Reports] 
    "CommonFiles"="c:\\program files\\common files\\crystal decisions\\2.0\\bin" 注意版本,9.0和2.0改成你自己的这个已经有了吧?
      

  4.   

    你索性写个批处理,有没有用的把bin下的都注册一遍。
      

  5.   

    不明了,呵呵,建议用InstallShield打个包吧,呵呵。省心点。