Закрытие окна просмотра

LedLed
отредактировано 03:29 Раздел: FastReport 3.0
Мне надо что бы после печати или закрытия окна просмотра , выполнялись некоторые действия как это запрограммировать, вернее где?

Комментарии

  • отредактировано 03:29
    В событии OnPreview нужно повесит новый обработчик для frxReport1.PreviewForm.OnClose :
    ....
    interface
    
    uses
       .....,frxPreview, frxClass;
    
    type
      TForm1 = class(TForm)
        frxReport1: TfrxReport;
        procedure frxReport1Preview(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
      OldCloseEvent:TCloseEvent;
    
    implementation
    procedure NewOnClose(Sender: TObject; var Action: TCloseAction);
    begin
      OldCloseEvent(Sender,Action);
      ShowMessage('Preview Closed');
    end;
    
    procedure TForm1.frxReport1Preview(Sender: TObject);
    begin
      OldCloseEvent := frxReport1.PreviewForm.OnClose;
      @frxReport1.PreviewForm.OnClose := @NewOnClose;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     frxReport1.ShowReport();
    end;
    
  • LedLed
    отредактировано 03:29
    ойойой, а можно в С *шном варианте?
  • отредактировано 03:29
    //-----------------------------main.hpp-----------------------------------
    
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include "frxClass.hpp"
    #include "frxRich.hpp"
    #include "frxPreview.hpp"
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// IDE-managed Components
            TfrxReport *frxReport1;
            TfrxRichObject *frxRichObject1;
            void __fastcall frxReport1Preview(TObject *Sender);
    private:	// User declarations
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    
    //------------------main.cpp---------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Main.hpp"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma link "frxClass"
    #pragma link "frxRich"
    #pragma link "frxPreview"
    #pragma resource "*.dfm"
    TForm1 *Form1;
    TCloseEvent OldEvent;
    void __fastcall  NewEvent(System::TObject* Sender, TCloseAction &Action)
    {
      OldEvent(Sender,Action);
      ShowMessage("Preview Closed");
    }
    
    
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
      frxReport1->ShowReport();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::frxReport1Preview(TObject *Sender)
    {
      TMethod Method;
      Method.Data = this;
      Method.Code= NewEvent;
      OldEvent = frxReport1->PreviewForm->OnClose;
      frxReport1->PreviewForm->OnClose = (*(TCloseEvent*)&Method);
    }
    
  • LedLed
    отредактировано 03:29
    спасибо...

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.