在fr中的onaferprint事件在我ShowReport就触发,为什么,那我要在我打印完毕后触发要什么办

解决方案 »

  1.   

    你可以将FR_View单元中的procedure TfrPreviewForm.PrintBtnClick(Sender: TObject);
    改写为以下是在预览的时候有边框,但打印的时候没有边框了:
    var
      I,J:Integer;
      V:TfrView;
    begin
      For I:= 0 to (TfrReport(Doc).Pages.Count - 1) do
        For J:=0 to (TfrReport(Doc).Pages.Pages[I].Objects.Count - 1) do
        Begin
          V:=TfrReport(Doc).Pages.Pages[I].Objects[J];
          If (V Is TfrLineView) then
              TfrLineView(V).Visible:=False;
        End;  TfrReport(Doc).PrepareReport;
      Connect(Doc);
      N3click(N1001);
      。。
    End;
    这样是可以解决问题但是活动性太差,最好是增加代码后将控件重新编译
    或者是截获电击打印按纽时的消息,我也是这个问题好郁闷,我也急着解决这个问题。
      

  2.   

    由于预览页面上的按钮是直接从TControl继承下来的所以就没有句柄不能截获
    WM_COMMAND消息只能截获WM_LBUTTONUP消息判断点击是不是在画的区域
      

  3.   

    有个事件可以解决你的问题frReport的OnPrintReport事件是发生在
    预览之后打印之前,但是这个事件有个问题:你如果想在这个事件中
    写改变报表的内容,预览不能被刷新
    不过我不知道你是什么问题,你可以试试。
      

  4.   

    晕,afterprint不是在打印后调用,而是在页面打印在屏幕上就触发
      

  5.   

    jalu_515(马路):那我要在打印后触发,要什么办,我是用fr3的,你帮忙一下