我用的fastreport3.0的报表 ,原来这个打印是可以打印的,但是现在不可以了,我也没有修改什么啊,
打印机我安装了
//这个函数太长了,我用伪代码给大家看看
procedure setfrxreport_zy(id); //读取报表,然后设置报表纸张,等等, 
//变量的声明
begin 
      // 非法的检查
      //读取报表的格式,竖向,还是横向。
     //读取报表的纸张,设置纸张的打印方向,是横向打印,还是竖向打印
      //设置报表的字体,左右边距。
     //查找报表上面的memo ,例如 memo24:= MyDataModule.frxreport1.findobject('memo24')  as TfrxMemoView ;
     //设置标题格式,读取标题的内容 ,标题局中,
     //读取表头的内容,写入memo中
     //读取表尾的内容,写入memo中,
     //读取masterdata的内容
end;procedure TsearchForm.BitBtn9Click(Sender: TObject);
var
 id_temp,s,strtile:String;
   FStream:   TIniFile;
   filename,strstyle:string;
   strrow:string;
begin
        id_temp:=id;
        id:=Trim(idDBEdit.Text);         setfrxreport_zy(id);         MyDataModule.frxReport1.print;//打印,但是提示异常。 END;但是一执行BitBtn9Click,就
提示: 
access violation at adress 00569FF9 in module "glht.exe " read of address 2F3831F2 
然后继续按F9,,就跳到源代码的这个地方,不动了
procedure TfrxReport.Print;
begin
  FPreviewPages.Print;
end;请教各位了

解决方案 »

  1.   

    先不要Print直接打印,因为Print会有很多原因让你打印不了的!如果你用的是网络打印机的话就要检查是否有权限让你打印了!
    还是先ShowReport预览一下吧!这样好找出原因!
      

  2.   

    我如果是用预览的方式,ShowReport后,可以预览的,而且在预览后在预览的界面是可以点击那个打印按钮,可以直接打印的。
    procedure TsearchForm.BitBtn9Click(Sender: TObject); 
    var 
    id_temp,s,strtile:String; 
      FStream:  TIniFile; 
      filename,strstyle:string; 
      strrow:string; 
    begin 
            id_temp:=id; 
            id:=Trim(idDBEdit.Text);         setfrxreport_zy(id);         MyDataModule.frxReport1.ShowReport;//预览是正常的。 END; 但是我如果直接PRINT的话,就出现上面的提示了。