目前正在做一个管理信息系统,用的是Delphi平台,报表用的是FastReport,一个很奇怪的问题困惑着我

报表有时候能预览,有时候无法预览

原来的预览程序是:

  frxEITRep.Clear;
  frxEITRep.LoadFromFile('EPFRep.fr3');//加载报表
  frxEITRep.ShowReport;//预览

 

上述代码在平时的程序中看,是一点问题都没有,但是它却隐藏着一个很严重的问题:报表的加载函数LoadFromFile,如果不写明完整的路径, 它默认的是当前的路径。问题就此,我的报表和应用程序放在同一个目录下,但是在使用过程中,由于要导入Excel数据,它会改变当前的路径,也就使得 LoadFromFile函数不是从应用程序也就是报表所在的路径加载报表,而是从当前路径加载,导致加载失败。

 

正确的写法应该是:

  PATH:=ExtractFilePath(Application.ExeName);//得到应用程序所在的路径,也就是报表所在的路径
  frxEITRep.Clear;
  frxEITRep.LoadFromFile(PATH+'\EPFRep.fr3');//加载报表
  frxEITRep.ShowReport;

posted on 2012-01-05 20:14  del88  阅读(16)  评论(0编辑  收藏  举报