опрос функции экспорта

FRsFRs
отредактировано 03:12 Раздел: FastReport 4.0
Добрый день. Не подскажете как реализовать опрос события нажатие (или выбор функции) экспорта в frxReport ? Например, есть опрос выбора OnPrintPage по которому я контролирую печать документа. Можно ли организовать опрос нажатия клавиши Экспорт ?

Комментарии

  • gpigpi
    отредактировано 03:12
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, frxClass, frxExportPDF, frxPreview, frxDsgnIntf, Menus;
    
    type
      TForm1 = class(TForm)
        frxReport1: TfrxReport;
        frxPDFExport1: TfrxPDFExport;
        SaveDialog1: TSaveDialog;
        procedure FormCreate(Sender: TObject);
        procedure frxReport1Preview(Sender: TObject);
        procedure PDFExport(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    
    {$R *.dfm}
    
    procedure TForm1.PDFExport(Sender: TObject);
    begin
         if SaveDialog1.Execute then
           begin
             frxPDFExport1.FileName:=SaveDialog1.FileName;
             TfrxPreview(frxReport1.Preview).Export(frxPDFExport1);
           end;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
         frxReport1.ShowReport;
    end;
    
    procedure TForm1.frxReport1Preview(Sender: TObject);
    var i, j, mi: integer;
    begin
           TfrxPreviewForm(frxReport1.PreviewForm).PdfB.OnClick:=PDFExport;
           for i := 0 to frxExportFilters.Count - 1 do
             begin
               if TfrxCustomExportFilter(frxExportFilters[i].Filter).ClassName = 'TfrxPDFExport' then
                 mi:=i;
             end;
           TfrxPreviewForm(frxReport1.PreviewForm).ExportPopup.Items[mi].OnClick:=PDFExport;
           for i:=0 to TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items.Count-1 do
             begin
               if TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].Caption=TfrxPreviewForm(frxReport1.PreviewForm).ExportB.Hint then
                 begin
                   for j:=0 to TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].Count-1 do
                     if TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i][j].Caption=TfrxPreviewForm(frxReport1.PreviewForm).ExportPopup.Items[mi].Caption then
                        TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i][j].OnClick:=PDFExport;
                 end;
               if TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].Caption=TfrxPreviewForm(frxReport1.PreviewForm).PdfB.Hint then
                 TfrxPreviewForm(frxReport1.PreviewForm).RightMenu.Items[i].OnClick:=PDFExport;
             end;
    end;
    
    end.
    
  • FRsFRs
    отредактировано 03:12
    мм.. спасибо. Вижу кое какой интересующий меня код, но мне если честно не до конца понятно. А может я в первом посте не так выразился. :)
    Просто к репорту цепляю экспорты в RTF и XLS (то бишь ворд и ексель). Так вот хотелось бы из своей программы, вызывая frxReport, каким то образом отслеживать нажатие кнопки Экспорт (лист с зеленой стрелкой вниз). Из вашего кода понял, что идет пример о ПДФ
  • gpigpi
    отредактировано 03:12
    Тогда переопределяйте TfrxPreviewForm(frxReport1.PreviewForm).ExportPopup.OnPopup

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

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