本帖最后由 jiangcon 于 2011-04-22 00:05:05 编辑

解决方案 »

  1.   


      frxReport1.LoadFromFile('test.fr3');
      frxRTFExport1.FileName:= 'a.rtf';    // 这里你自己整个全名进去,如 c:\a.rtf
      frxReport1.Export(frxRTFExport1);
      

  2.   


      frxReport1.LoadFromFile('test.fr3');
      frxRTFExport1.ShowDialog:= false;        // 加这句
      frxRTFExport1.FileName:= 'a.rtf';
      frxReport1.Export(frxRTFExport1);
      

  3.   


    function Export2RTF(AReport: TfrxReport): boolean;
    var
      SXD: TSaveDialog;
      frxRTFExport1: TfrxRTFExport;
    begin
      Result:= false;
      SXD:= TSaveDialog.Create(nil);
      try
        SXD.DefaultExt:= 'rtf';
        SXD.Filter:= 'rtf|*.rtf';
        if SXD.Execute then
        begin
          frxRTFExport1:= TfrxRTFExport.Create(nil);
          frxRTFExport1.ShowDialog:= false; 
          frxRTFExport1.FileName:= SXD.FileName;      if FileExists(SXD.FileName) then
          begin
            if Application.MessageBox('文件已存在,覆盖吗?','提示',292) = 6 then
            begin
              DeleteFile(SXD.FileName);
              AReport.Export(frxRTFExport1);
              Result:= true;
            end;
          end else
          begin
            AReport.Export(frxRTFExport1);
            Result:= true;
          end;
          if Result then
            if Application.MessageBox('已成功保存,是否现在打开?','提示',292) = 6 then
              ShellExecute(0,'open',pansichar(SXD.FileName),nil,nil,sw_shownormal);
          frxRTFExport1.Free;
        end;
      except
        on e:Exception do Showmessage(e.Message);
      end;
      SXD.Free;
    end;
    //调用frxReport1.LoadFromFile('test.fr3');
    //...
    Export2RTF(frxReport1);