git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.FastReport@21 475b051d-3a53-6940-addd-820bf0cfe0d7
234 lines
6.5 KiB
Plaintext
234 lines
6.5 KiB
Plaintext
unit MAIN;
|
|
|
|
interface
|
|
|
|
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
|
|
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
|
|
ActnList, ToolWin, ImgList, frxClass, frxDesgn, frxExportODF,
|
|
frxExportTXT, frxExportMail, frxExportCSV, frxExportText, frxExportImage,
|
|
frxExportRTF, frxExportXML, frxExportXLS, frxExportHTML, frxExportPDF,
|
|
frxSDACComponents, frxODACComponents, frxIBDACComponents,
|
|
frxDACComponents, frxMYDACComponents, frxVCLZip, frxFunction,
|
|
frxAdvPicture, frxChart, frxCrypt, frxGZip, frxDCtrl, frxDMPExport,
|
|
frxGradient, frxChBox, frxCross, frxRich, frxOLE, frxBarcode;
|
|
|
|
type
|
|
TfrxReportList = class(TObject)
|
|
private
|
|
FReportList: TList;
|
|
function GetReport(Index: Integer): TfrxReport;
|
|
function GetCount: Integer;
|
|
public
|
|
constructor Create;
|
|
destructor Destroy; override;
|
|
procedure ClearList;
|
|
procedure Delete(Index: Integer);
|
|
function CreateNewReport: TfrxReport;
|
|
function IndexOf(Report: TfrxReport): Integer;
|
|
property Report [Index: Integer]: TfrxReport read GetReport;
|
|
property Count: Integer read GetCount;
|
|
end;
|
|
|
|
TMainForm = class(TForm)
|
|
StatusBar: TStatusBar;
|
|
ActionList1: TActionList;
|
|
FileNew1: TAction;
|
|
FileSave1: TAction;
|
|
FileExit1: TAction;
|
|
WindowCascade1: TWindowCascade;
|
|
WindowTileHorizontal1: TWindowTileHorizontal;
|
|
WindowArrangeAll1: TWindowArrange;
|
|
WindowMinimizeAll1: TWindowMinimizeAll;
|
|
WindowTileVertical1: TWindowTileVertical;
|
|
ToolBar2: TToolBar;
|
|
ToolButton2: TToolButton;
|
|
ToolButton3: TToolButton;
|
|
ToolButton9: TToolButton;
|
|
ToolButton8: TToolButton;
|
|
ToolButton10: TToolButton;
|
|
ToolButton11: TToolButton;
|
|
ImageList1: TImageList;
|
|
ToolButton1: TToolButton;
|
|
ToolButton5: TToolButton;
|
|
PreviewReport: TAction;
|
|
MainMenu1: TMainMenu;
|
|
frxBarCodeObject1: TfrxBarCodeObject;
|
|
frxOLEObject1: TfrxOLEObject;
|
|
frxRichObject1: TfrxRichObject;
|
|
frxCrossObject1: TfrxCrossObject;
|
|
frxCheckBoxObject1: TfrxCheckBoxObject;
|
|
frxGradientObject1: TfrxGradientObject;
|
|
frxDotMatrixExport1: TfrxDotMatrixExport;
|
|
frxDialogControls1: TfrxDialogControls;
|
|
frxGZipCompressor1: TfrxGZipCompressor;
|
|
frxCrypt1: TfrxCrypt;
|
|
frxChartObject1: TfrxChartObject;
|
|
frxAdvPictureObject1: TfrxAdvPictureObject;
|
|
frxAddFunctionLibrary1: TfrxAddFunctionLibrary;
|
|
frxVCLZipCompressor1: TfrxVCLZipCompressor;
|
|
frxMYDACComponents1: TfrxMYDACComponents;
|
|
frxIBDACComponents1: TfrxIBDACComponents;
|
|
frxODACComponents1: TfrxODACComponents;
|
|
frxSDACComponents1: TfrxSDACComponents;
|
|
frxPDFExport1: TfrxPDFExport;
|
|
frxHTMLExport1: TfrxHTMLExport;
|
|
frxXLSExport1: TfrxXLSExport;
|
|
frxXMLExport1: TfrxXMLExport;
|
|
frxRTFExport1: TfrxRTFExport;
|
|
frxBMPExport1: TfrxBMPExport;
|
|
frxJPEGExport1: TfrxJPEGExport;
|
|
frxTIFFExport1: TfrxTIFFExport;
|
|
frxGIFExport1: TfrxGIFExport;
|
|
frxSimpleTextExport1: TfrxSimpleTextExport;
|
|
frxCSVExport1: TfrxCSVExport;
|
|
frxMailExport1: TfrxMailExport;
|
|
frxTXTExport1: TfrxTXTExport;
|
|
frxODSExport1: TfrxODSExport;
|
|
frxODTExport1: TfrxODTExport;
|
|
procedure FileNew1Execute(Sender: TObject);
|
|
procedure FileExit1Execute(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure DestroyDesigner(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure FileSave1Execute(Sender: TObject);
|
|
procedure PreviewReportExecute(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
FReportList: TfrxReportList;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TfrxReportList }
|
|
|
|
procedure TfrxReportList.ClearList;
|
|
begin
|
|
while FReportList.Count > 0 do
|
|
begin
|
|
TfrxReport(FReportList[0]).Free;
|
|
FReportList.Delete(0);
|
|
end;
|
|
end;
|
|
|
|
constructor TfrxReportList.Create;
|
|
begin
|
|
inherited;
|
|
FReportList := TList.Create;
|
|
end;
|
|
|
|
function TfrxReportList.CreateNewReport: TfrxReport;
|
|
begin
|
|
Result := TfrxReport.Create(nil);
|
|
Result.CreateUniqueName;
|
|
Result.PreviewOptions.MDIChild := True;
|
|
Result.PreviewOptions.Modal := False;
|
|
Result.EngineOptions.DestroyForms := False;
|
|
FReportList.Add(Result);
|
|
end;
|
|
|
|
procedure TfrxReportList.Delete(Index: Integer);
|
|
begin
|
|
if (Index < 0) or (Index >= FReportList.Count) then
|
|
exit;
|
|
TfrxReport(FReportList[Index]).Free;
|
|
FReportList.Delete(Index);
|
|
end;
|
|
|
|
destructor TfrxReportList.Destroy;
|
|
begin
|
|
ClearList;
|
|
FReportList.Free;
|
|
inherited;
|
|
end;
|
|
|
|
function TfrxReportList.GetCount: Integer;
|
|
begin
|
|
Result := FReportList.Count;
|
|
end;
|
|
|
|
function TfrxReportList.GetReport(Index: Integer): TfrxReport;
|
|
begin
|
|
if (Index < 0) or (Index >= FReportList.Count) then
|
|
Result := nil
|
|
else
|
|
Result := TfrxReport(FReportList[Index]);
|
|
end;
|
|
|
|
function TfrxReportList.IndexOf(Report: TfrxReport): Integer;
|
|
begin
|
|
Result := FReportList.IndexOf(Report);
|
|
end;
|
|
|
|
|
|
{Main Form}
|
|
|
|
procedure TMainForm.FileNew1Execute(Sender: TObject);
|
|
begin
|
|
with FReportList.CreateNewReport do
|
|
begin
|
|
DesignReport(False, True);
|
|
TfrxDesignerForm(Designer).OnDestroy := DestroyDesigner;
|
|
TfrxDesignerForm(Designer).Caption := 'Designer-' + IntToStr(FReportList.Count);
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.FileExit1Execute(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
FReportList := TfrxReportList.Create;
|
|
end;
|
|
|
|
procedure TMainForm.FormDestroy(Sender: TObject);
|
|
begin
|
|
FReportList.Free;
|
|
end;
|
|
|
|
procedure TMainForm.DestroyDesigner(Sender: TObject);
|
|
var
|
|
idx: Integer;
|
|
begin
|
|
idx := FReportList.IndexOf(TfrxDesignerForm(Sender).Report);
|
|
if FReportList.Report[idx].PreviewForm <> nil then
|
|
FReportList.Report[idx].PreviewForm.Close;
|
|
FReportList.Delete(idx);
|
|
end;
|
|
|
|
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
var
|
|
idx: Integer;
|
|
begin
|
|
for idx := 0 to FReportList.Count - 1 do
|
|
TfrxDesignerForm(FReportList.Report[idx].Designer).Close;
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TMainForm.FileSave1Execute(Sender: TObject);
|
|
var
|
|
idx: Integer;
|
|
begin
|
|
for idx := 0 to FReportList.Count - 1 do
|
|
TfrxDesignerForm(FReportList.Report[idx].Designer).SaveCmd.Execute;
|
|
end;
|
|
|
|
procedure TMainForm.PreviewReportExecute(Sender: TObject);
|
|
var
|
|
idx: Integer;
|
|
begin
|
|
for idx := 0 to FReportList.Count - 1 do
|
|
FReportList.Report[idx].ShowReport;
|
|
end;
|
|
|
|
end.
|