summaryrefslogtreecommitdiff
path: root/extras/contributed/report_tool/reportengine/u_visu.pas
diff options
context:
space:
mode:
Diffstat (limited to 'extras/contributed/report_tool/reportengine/u_visu.pas')
-rw-r--r--extras/contributed/report_tool/reportengine/u_visu.pas538
1 files changed, 0 insertions, 538 deletions
diff --git a/extras/contributed/report_tool/reportengine/u_visu.pas b/extras/contributed/report_tool/reportengine/u_visu.pas
deleted file mode 100644
index 80038a1a..00000000
--- a/extras/contributed/report_tool/reportengine/u_visu.pas
+++ /dev/null
@@ -1,538 +0,0 @@
-{
- << Impressions >> U_Visu.pas
-
- Copyright (C) 2010 - Jean-Marc Levecque <jean-marc.levecque@jmlesite.fr>
-
- This library is a free software coming as a add-on to fpGUI toolkit
- See the copyright included in the fpGUI distribution for details about redistribution
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- Description:
- This unit is the preview form
-}
-
-unit U_Visu;
-
-{$mode objfpc}{$H+}
-
-interface
-
-uses
- Classes, SysUtils,
- {$ifdef win32}
- shellapi,
- {$endif}
- fpg_base, fpg_main,
- fpg_form, fpg_panel, fpg_label, fpg_button, fpg_edit, fpg_dialogs, fpg_utils,
- U_Report;
-
-type
- TF_Visu = class(TfpgForm)
- private
- FReport: T_Report;
- Bv_Command: TfpgBevel;
- Bt_Close: TfpgButton;
- Bt_Print: TfpgButton;
- Bt_Printer: TfpgButton;
- Bt_Stop: TfpgButton;
- Bt_Pdf: TfpgButton;
- Bv_Pages: TfpgBevel;
- L_Pages: TfpgLabel;
- Bt_FirstPage: TfpgButton;
- Bt_PrecPage: TfpgButton;
- E_NumPage: TfpgEditInteger;
- Bt_NextPage: TfpgButton;
- Bt_LastPage: TfpgButton;
- L_FromPage: Tfpglabel;
- L_NbrPages: TfpgLabel;
- Bv_Sections: TfpgBevel;
- L_Sections: TfpgLabel;
- Bt_PrecSect: TfpgButton;
- E_NumSect: TfpgEditInteger;
- Bt_NextSect: TfpgButton;
- L_FromSect: Tfpglabel;
- L_NbrSect: TfpgLabel;
- L_PageSect: Tfpglabel;
- L_NumPageSect: Tfpglabel;
- L_FromPageSect: TfpgLabel;
- L_NbrPageSect: TfpgLabel;
- procedure FormShow(Sender: TObject);
- procedure Bt_CloseClick(Sender: TObject);
- procedure Bt_PrintClick(Sender: TObject);
- procedure Bt_PrinterClick(Sender: TObject);
- procedure Bt_StopClick(Sender: TObject);
- procedure Bt_PdfClick(Sender: TObject);
- procedure Bt_FirstPageClick(Sender: TObject);
- procedure Bt_PrecPageClick(Sender: TObject);
- procedure Bt_NextPageClick(Sender: TObject);
- procedure Bt_LastPageClick(Sender: TObject);
- procedure Bt_PrecSectClick(Sender: TObject);
- procedure Bt_NextSectClick(Sender: TObject);
- procedure E_NumPageKeyPress(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState;
- var Consumed: boolean);
- procedure E_NumSectKeyPress(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState;
- var Consumed: boolean);
- procedure ChangeButtons;
- public
- constructor Create(AOwner: TComponent; AImprime: T_Report); reintroduce;
- destructor Destroy; override;
- end;
-
-var
- F_Visu: TF_Visu;
- Bv_Visu: TfpgBevel;
-
-implementation
-
-uses
- U_Command, U_Pdf, U_ReportImages;
-
-procedure TF_Visu.FormShow(Sender: TObject);
-begin
-L_Pages.Text:= 'Page';
-L_Sections.Text:= 'Section';
-L_PageSect.Text:= 'Page';
-L_FromPage.Text:= 'of';
-with FReport do
- begin
- if Sections.Count= 1
- then
- E_NumSect.Focusable:= False;
- if T_Section(Sections[Pred(Sections.Count)]).TotPages= 1
- then
- E_NumPage.Focusable:= False;
- E_NumPage.Text:= IntToStr(NumPage);
- L_NbrPages.Text:= IntToStr(T_Section(Sections[Pred(Sections.Count)]).TotPages);
- E_NumSect.Text:= IntToStr(NumSection);
- L_NbrSect.Text:= IntToStr(Sections.Count);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- ChangeButtons;
- end;
-end;
-
-procedure TF_Visu.Bt_CloseClick(Sender: TObject);
-begin
-Close;
-end;
-
-procedure TF_Visu.Bt_PrintClick(Sender: TObject);
-begin
-end;
-
-procedure TF_Visu.Bt_PrinterClick(Sender: TObject);
-begin
-end;
-
-procedure TF_Visu.Bt_StopClick(Sender: TObject);
-begin
-end;
-
-procedure TF_Visu.Bt_PdfClick(Sender: TObject);
-var
- Fd_SavePdf: TfpgFileDialog;
- PdfFile: string;
- PdfFileStream: TFileStream;
-begin
-Fd_SavePdf:= TfpgFileDialog.Create(nil);
-Fd_SavePdf.InitialDir:= ExtractFilePath(Paramstr(0));
-Fd_SavePdf.FontDesc:= 'bitstream vera sans-9';
-Fd_SavePdf.Filter:= 'Fichiers pdf |*.pdf';
-Fd_SavePdf.FileName:= FReport.DefaultFile;
-try
- if Fd_SavePdf.RunSaveFile
- then
- begin
- PdfFile:= Fd_SavePdf.FileName;
- if Lowercase(Copy(PdfFile,Length(PdfFile)-3,4))<> '.pdf'
- then
- PdfFile:= PdfFile+'.pdf';
- Document:= TPdfDocument.CreateDocument;
- with Document do
- begin
- PdfFileStream:= TFileStream.Create(PdfFile,fmCreate);
- WriteDocument(PdfFileStream);
- PdfFileStream.Free;
- Free;
- end;
-{$ifdef linux}
- fpgOpenURL(PdfFile);
-{$endif}
-{$ifdef win32}
- ShellExecute(0,PChar('OPEN'),PChar(PdfFile),PChar(''),PChar(''),1);
-{$endif}
- end;
-finally
- Fd_SavePdf.Free;
- end;
-end;
-
-procedure TF_Visu.Bt_FirstPageClick(Sender: TObject);
-begin
-with FReport do
- begin
- NumPage:= 1;
- NumSection:= 1;
- NumPageSection:= 1;
- E_NumPage.Text:= IntToStr(NumPage);
- Bv_Visu.Visible:= False;
- with T_Section(Sections[Pred(NumSection)]),F_Visu do
- begin
- Bv_Visu.Height:= Paper.H;
- Bv_Visu.Width:= Paper.W;
- Bv_Visu.Top:= 50+(F_Visu.Height-50-Paper.H) div 2;
- Bv_Visu.Left:= (F_Visu.Width-Paper.W) div 2;
- end;
- Bv_Visu.Visible:= True;
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.Bt_PrecPageClick(Sender: TObject);
-begin
-with FReport do
- begin
- NumPage:= NumPage-1;
- if NumPageSection= 1
- then
- begin
- NumSection:= NumSection-1;
- NumPageSection:= T_Section(Sections[Pred(NumSection)]).NbPages;
- Bv_Visu.Visible:= False;
- with T_Section(Sections[Pred(NumSection)]),F_Visu do
- begin
- Bv_Visu.Height:= Paper.H;
- Bv_Visu.Width:= Paper.W;
- Bv_Visu.Top:= 50+(F_Visu.Height-50-Paper.H) div 2;
- Bv_Visu.Left:= (F_Visu.Width-Paper.W) div 2;
- end;
- Bv_Visu.Visible:= True;
- end
- else
- begin
- NumPageSection:= NumPageSection-1;
- Bv_Visu.Invalidate;
- end;
- E_NumPage.Text:= IntToStr(NumPage);
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.Bt_NextPageClick(Sender: TObject);
-begin
-with FReport do
- begin
- NumPage:= NumPage+1;
- if NumPageSection= T_Section(Sections[Pred(NumSection)]).NbPages
- then
- begin
- NumSection:= NumSection+1;
- NumPageSection:= 1;
- Bv_Visu.Visible:= False;
- with T_Section(Sections[Pred(NumSection)]),F_Visu do
- begin
- Bv_Visu.Height:= Paper.H;
- Bv_Visu.Width:= Paper.W;
- Bv_Visu.Top:= 50+(F_Visu.Height-50-Paper.H) div 2;
- Bv_Visu.Left:= (F_Visu.Width-Paper.W) div 2;
- end;
- Bv_Visu.Visible:= True;
- end
- else
- begin
- NumPageSection:= NumPageSection+1;
- Bv_Visu.Invalidate;
- end;
- E_NumPage.Text:= IntToStr(NumPage);
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.Bt_LastPageClick(Sender: TObject);
-begin
-with FReport do
- begin
- NumPage:= T_Section(Sections[Pred(Sections.Count)]).TotPages;
- NumSection:= Sections.Count;
- NumPageSection:= T_Section(Sections[Pred(Sections.Count)]).NbPages;
- E_NumPage.Text:= IntToStr(NumPage);
- Bv_Visu.Visible:= False;
- with T_Section(Sections[Pred(NumSection)]),F_Visu do
- begin
- Bv_Visu.Height:= Paper.H;
- Bv_Visu.Width:= Paper.W;
- Bv_Visu.Top:= 50+(F_Visu.Height-50-Paper.H) div 2;
- Bv_Visu.Left:= (F_Visu.Width-Paper.W) div 2;
- end;
- Bv_Visu.Visible:= True;
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.Bt_PrecSectClick(Sender: TObject);
-begin
-with FReport do
- begin
- NumSection:= NumSection-1;
- NumPage:= T_Section(Sections[Pred(NumSection)]).FirstPage;
- NumPageSection:= 1;
- E_NumPage.Text:= IntToStr(NumPage);
- Bv_Visu.Visible:= False;
- with T_Section(Sections[Pred(NumSection)]),F_Visu do
- begin
- Bv_Visu.Height:= Paper.H;
- Bv_Visu.Width:= Paper.W;
- Bv_Visu.Top:= 50+(F_Visu.Height-50-Paper.H) div 2;
- Bv_Visu.Left:= (F_Visu.Width-Paper.W) div 2;
- end;
- Bv_Visu.Visible:= True;
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.Bt_NextSectClick(Sender: TObject);
-begin
-with FReport do
- begin
- NumSection:= NumSection+1;
- NumPage:= T_Section(Sections[Pred(NumSection)]).FirstPage;
- NumPageSection:= 1;
- E_NumPage.Text:= IntToStr(NumPage);
- Bv_Visu.Visible:= False;
- with T_Section(Sections[Pred(NumSection)]),F_Visu do
- begin
- Bv_Visu.Height:= Paper.H;
- Bv_Visu.Width:= Paper.W;
- Bv_Visu.Top:= 50+(F_Visu.Height-50-Paper.H) div 2;
- Bv_Visu.Left:= (F_Visu.Width-Paper.W) div 2;
- end;
- Bv_Visu.Visible:= True;
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.ChangeButtons;
-begin
-with FReport do
- if T_Section(Sections[Pred(Sections.Count)]).TotPages> 1
- then
- if NumPage= 1
- then
- begin
- Bt_FirstPage.Enabled:= False;
- Bt_PrecPage.Enabled:= False;
- Bt_NextPage.Enabled:= True;
- Bt_LastPage.Enabled:= True;
- Bt_PrecSect.Enabled:= False;
- if Sections.Count> 1
- then
- Bt_NextSect.Enabled:= True
- else
- Bt_NextSect.Enabled:= False;
- end
- else
- if NumPage= T_Section(Sections[Pred(Sections.Count)]).TotPages
- then
- begin
- Bt_FirstPage.Enabled:= True;
- Bt_PrecPage.Enabled:= True;
- Bt_NextPage.Enabled:= False;
- Bt_LastPage.Enabled:= False;
- if Sections.Count> 1
- then
- Bt_PrecSect.Enabled:= True
- else
- Bt_PrecSect.Enabled:= False;
- Bt_NextSect.Enabled:= False;
- end
- else
- begin
- Bt_FirstPage.Enabled:= True;
- Bt_PrecPage.Enabled:= True;
- Bt_NextPage.Enabled:= True;
- Bt_LastPage.Enabled:= True;
- if Sections.Count> 1
- then
- if NumSection= 1
- then
- begin
- Bt_PrecSect.Enabled:= False;
- Bt_NextSect.Enabled:= True;
- end
- else
- if NumSection= Sections.Count
- then
- begin
- Bt_PrecSect.Enabled:= True;
- Bt_NextSect.Enabled:= False;
- end
- else
- begin
- Bt_PrecSect.Enabled:= True;
- Bt_NextSect.Enabled:= True;
- end
- else
- begin
- Bt_PrecSect.Enabled:= False;
- Bt_NextSect.Enabled:= False;
- end;
- end
- else
- begin
- Bt_FirstPage.Enabled:= False;
- Bt_PrecPage.Enabled:= False;
- Bt_NextPage.Enabled:= False;
- Bt_LastPage.Enabled:= False;
- Bt_PrecSect.Enabled:= False;
- Bt_NextSect.Enabled:= False;
- end;
-end;
-
-procedure TF_Visu.E_NumPageKeyPress(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState;
- var Consumed: boolean);
-var
- CptSect,CptPage,CptPageSect: Integer;
-begin
-if (KeyCode= KeyReturn) or (KeyCode= KeyPEnter)
-then
- with FReport do
- begin
- if E_NumPage.Value> T_Section(Sections[Pred(Sections.Count)]).TotPages
- then
- NumPage:= T_Section(Sections[Pred(Sections.Count)]).TotPages
- else
- if E_NumPage.Value= 0
- then
- NumPage:= 1
- else
- NumPage:= E_NumPage.Value;
- E_NumPage.Value:= NumPage;
- CptSect:= 0;
- CptPage:= 0;
- repeat
- Inc(CptSect);
- CptPageSect:= 0;
- repeat
- Inc(CptPage);
- Inc(CptPageSect);
- until (CptPage= NumPage) or (CptPage= T_Section(Sections[Pred(Cptsect)]).NbPages);
- until CptPage= NumPage;
- NumSection:= CptSect;
- NumPageSection:= CptPagesect;
- Bv_Visu.Invalidate;
- ChangeButtons;
- E_NumSect.Text:= IntToStr(NumSection);
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-procedure TF_Visu.E_NumSectKeyPress(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState;
- var Consumed: boolean);
-begin
-if (KeyCode= KeyReturn) or (KeyCode= KeyPEnter)
-then
- with FReport do
- begin
- if E_NumSect.Value> Sections.Count
- then
- NumSection:= Sections.Count
- else
- if E_NumSect.Value= 0
- then
- NumSection:= 1
- else
- NumSection:= E_NumSect.Value;
- E_NumSect.Value:= NumSection;
- NumPage:= T_Section(Sections[Pred(NumSection)]).FirstPage;
- NumPageSection:= 1;
- E_NumPage.Value:= NumPage;
- Bv_Visu.Invalidate;
- ChangeButtons;
- L_NumPageSect.Text:= IntToStr(NumPageSection);
- L_NbrPageSect.Text:= IntToStr(T_Section(Sections[Pred(NumSection)]).NbPages);
- end;
-end;
-
-constructor TF_Visu.Create(AOwner: TComponent; AImprime: T_Report);
-begin
-inherited Create(AOwner);
-FReport := AImprime;
-Name := 'F_Visu';
-WindowTitle:= 'Preview';
-WindowPosition:= wpUser;
-SetPosition(0, 0, FpgApplication.ScreenWidth-2, FpgApplication.ScreenHeight-66);
-Sizeable:= False;
-BackgroundColor:= clMediumAquamarine;
-CreateReportImages;
-Bv_Command:= CreateBevel(Self,0,0,Width,50,bsBox,bsRaised);
-Bv_Command.BackgroundColor:= clBisque;
-Bt_Close:= CreateButton(Bv_Command,10,10,26,'',@Bt_CloseClick,'stdimg.exit');
-Bt_Close.BackgroundColor:= clOrangeRed;
-Bt_Print:= CreateButton(Bv_Command,50,10,26,'',@Bt_PrintClick,'stdimg.print');
-Bt_Print.BackgroundColor:= clGreen;
-Bt_Print.Enabled:= False;
-Bt_Printer:= CreateButton(Bv_Command,90,10,26,'',@Bt_PrinterClick,'repimg.Printer');
-Bt_Printer.BackgroundColor:= clSilver;
-Bt_Printer.Enabled:= False;
-Bt_Stop:= CreateButton(Bv_Command,130,10,26,'',@Bt_StopClick,'repimg.Stop');
-Bt_Stop.BackgroundColor:= clRed;
-Bt_Pdf:= CreateButton(Bv_Command,170,10,26,'',@Bt_PdfClick,'stdimg.Adobe_pdf');
-Bt_Pdf.BackgroundColor:= clWhite;
-Bt_Pdf.ImageMargin:= 0;
-Bv_Pages:= CreateBevel(Bv_Command,220,5,300,40,bsBox,bsLowered);
-Bv_Pages.BackgroundColor:= clLinen;
-Bt_FirstPage:= CreateButton(Bv_Pages,54,6,26,'',@Bt_FirstPageClick,'repimg.First');
-Bt_PrecPage:= CreateButton(Bv_Pages,80,6,26,'',@Bt_PrecPageClick,'repimg.Precedent');
-E_NumPage:= CreateEditInteger(Bv_Pages,110,8,60,0);
-E_NumPage.OnKeyPress:= @E_NumPageKeypress;
-Bt_NextPage:= CreateButton(Bv_Pages,174,6,26,'',@Bt_NextPageClick,'repimg.Next');
-Bt_LastPage:= CreateButton(Bv_Pages,200,6,26,'',@Bt_LastPageClick,'repimg.Last');
-L_Pages:= CreateLabel(Bv_Pages,5,E_NumPage.Top,'Page',0,E_NumPage.Height,taLeftJustify,tlcenter);
-L_FromPage:= CreateLabel(Bv_Pages,235,E_NumPage.Top,'of',0,E_NumPage.Height,taLeftJustify,tlcenter);
-L_NbrPages:= CreateLabel(Bv_Pages,265,E_NumPage.Top,' ',30,E_NumPage.Height,taCenter,tlcenter);
-Bv_Sections:= CreateBevel(Bv_Command,540,5,500,40,bsBox,bsLowered);
-Bv_Sections.BackgroundColor:= clLinen;
-Bt_PrecSect:= CreateButton(Bv_Sections,90,6,26,'',@Bt_PrecSectClick,'repimg.Precedent');
-E_NumSect:= CreateEditInteger(Bv_Sections,120,8,60,0);
-E_NumSect.OnKeyPress:= @E_NumSectKeyPress;
-Bt_NextSect:= CreateButton(Bv_Sections,184,6,26,'',@Bt_NextSectClick,'repimg.Next');
-L_Sections:= CreateLabel(Bv_Sections,5,E_NumSect.Top,'Section',0,E_NumSect.Height,taLeftJustify,tlcenter);
-L_FromSect:= CreateLabel(Bv_Sections,250,E_NumSect.Top,'of',0,E_NumSect.Height,taLeftJustify,tlcenter);
-L_NbrSect:= CreateLabel(Bv_Sections,280,E_NumSect.Top,'-',0,E_NumSect.Height,taLeftJustify,tlcenter);
-L_PageSect:= CreateLabel(Bv_Sections,320,E_NumSect.Top,'Page',0,E_NumSect.Height,taLeftJustify,tlcenter);
-L_NumPageSect:= CreateLabel(Bv_Sections,365,E_NumSect.Top,'-',0,E_NumSect.Height,taLeftJustify,tlcenter);
-L_FromPageSect:= CreateLabel(Bv_Sections,410,E_NumSect.Top,'of',0,E_NumSect.Height,taLeftJustify,tlcenter);
-L_NbrPageSect:= CreateLabel(Bv_Sections,440,E_NumSect.Top,'-',0,E_NumSect.Height,taLeftJustify,tlcenter);
-OnShow:= @FormShow;
-end;
-
-destructor TF_Visu.Destroy;
-begin
-DeleteReportImages;
-inherited Destroy;
-end;
-
-end.
-