mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-07 08:12:35 +02:00
251 lines
6.1 KiB
ObjectPascal
251 lines
6.1 KiB
ObjectPascal
unit frmmain;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ActnList,
|
|
Menus, ComCtrls, ExtCtrls, DbCtrls, dbf, db, DBGrids, fpdbexport, fpcsvexport,
|
|
fpfixedexport, fpSQLExport, fpSimpleXMLExport, fpsimplejsonexport,
|
|
fpdbfexport, fptexexport, fprtfexport;
|
|
|
|
type
|
|
|
|
{ TMainForm }
|
|
|
|
TMainForm = class(TForm)
|
|
AExportRTF: TAction;
|
|
AExportTeX: TAction;
|
|
AExportSQL: TAction;
|
|
AExportDBF: TAction;
|
|
AExportXML: TAction;
|
|
AExportJSON: TAction;
|
|
AExportFixed: TAction;
|
|
AExportCSV: TAction;
|
|
AQuit: TAction;
|
|
AOpen: TAction;
|
|
ANew: TAction;
|
|
ALMain: TActionList;
|
|
ExCSV: TCSVExporter;
|
|
DSData: TDatasource;
|
|
DBFData: TDbf;
|
|
ExFixed: TFixedLengthExporter;
|
|
ExDBF: TFPDBFExport;
|
|
GData: TDBGrid;
|
|
NBData: TDBNavigator;
|
|
ILMain: TImageList;
|
|
MMMain: TMainMenu;
|
|
MExport: TMenuItem;
|
|
MIRTFExport: TMenuItem;
|
|
MITeXExport: TMenuItem;
|
|
MISQLExport: TMenuItem;
|
|
MIExportDLG: TMenuItem;
|
|
MIExportSep: TMenuItem;
|
|
MIExportDBF: TMenuItem;
|
|
MIExportXML: TMenuItem;
|
|
MIExportCSV: TMenuItem;
|
|
MIExportFixed: TMenuItem;
|
|
MIExportJSON: TMenuItem;
|
|
MIQuit: TMenuItem;
|
|
MINew: TMenuItem;
|
|
MIOpen: TMenuItem;
|
|
MISep: TMenuItem;
|
|
MFile: TMenuItem;
|
|
ODDBF: TOpenDialog;
|
|
ExRTF: TRTFExporter;
|
|
SDExport: TSaveDialog;
|
|
SDDBF: TSaveDialog;
|
|
ExJSON: TSimpleJSONExporter;
|
|
ExXML: TSimpleXMLExporter;
|
|
ExSQL: TSQLExporter;
|
|
TBMain: TToolBar;
|
|
ExTeX: TTeXExporter;
|
|
ToolButton1: TToolButton;
|
|
TBTexExport: TToolButton;
|
|
TBRTFExport: TToolButton;
|
|
ToolButton2: TToolButton;
|
|
ToolButton3: TToolButton;
|
|
TBCSVExport: TToolButton;
|
|
TBFixedExport: TToolButton;
|
|
TBJSONExport: TToolButton;
|
|
TBXMLExport: TToolButton;
|
|
TBDBFExport: TToolButton;
|
|
TBSQLExport: TToolButton;
|
|
procedure AExportCSVExecute(Sender: TObject);
|
|
procedure AExportDBFExecute(Sender: TObject);
|
|
procedure AExportFixedExecute(Sender: TObject);
|
|
procedure AExportJSONExecute(Sender: TObject);
|
|
procedure AExportRTFExecute(Sender: TObject);
|
|
procedure AExportSQLExecute(Sender: TObject);
|
|
procedure AExportTeXExecute(Sender: TObject);
|
|
procedure AExportXMLExecute(Sender: TObject);
|
|
procedure ANewExecute(Sender: TObject);
|
|
procedure AOpenExecute(Sender: TObject);
|
|
procedure AQuitExecute(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure HaveData(Sender: TObject);
|
|
private
|
|
{ private declarations }
|
|
FDesignCaption: string;
|
|
procedure CreateNewDataset(AFileName: String);
|
|
procedure OpenDataset(AFileName: String);
|
|
procedure DoExport(E: TCustomDatasetExporter; const ATitle, AFilter: String);
|
|
public
|
|
{ public declarations }
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R frmmain.lfm}
|
|
|
|
uses frmBaseConfigExport,gendata;
|
|
|
|
Resourcestring
|
|
SCSVTitle = 'Export data to CSV file.';
|
|
SCSVFilter = 'CSV files|*.csv|All Files|*.*';
|
|
SXMLTitle = 'Export data to XML file.';
|
|
SXMLFilter = 'XML files|*.xml|All Files|*.*';
|
|
SDBFTitle = 'Export data to DBase file.';
|
|
SDBFFilter = 'DBF files|*.dbf|All Files|*.*';
|
|
SSQLTitle = 'Export data to SQL file.';
|
|
SSQLFilter = 'SQL files|*.sql|All Files|*.*';
|
|
SRTFTitle = 'Export data to RTF file.';
|
|
SRTFFilter = 'RTF files|*.rtf|All Files|*.*';
|
|
STEXTitle = 'Export data to TeX file.';
|
|
STeXFilter = 'TeX files|*.tex|All Files|*.*';
|
|
SJSONTitle = 'Export data to JSON file.';
|
|
SJSONFilter = 'JSON files|*.json|All Files|*.*';
|
|
SFixedTitle = 'Export data to fixed-length text file.';
|
|
SFixedFilter = 'Text files|*.txt|All Files|*.*';
|
|
|
|
{ TMainForm }
|
|
|
|
procedure TMainForm.AOpenExecute(Sender: TObject);
|
|
begin
|
|
If ODDBF.Execute then
|
|
OpenDataset(ODDBF.FileName);
|
|
end;
|
|
|
|
procedure TMainForm.AQuitExecute(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TMainForm.ANewExecute(Sender: TObject);
|
|
begin
|
|
if SDDBF.Execute then
|
|
begin
|
|
CreateNewDataset(SDDBF.FileName);
|
|
OpenDataset(SDDBF.FileName);
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.DoExport(E : TCustomDatasetExporter; Const ATitle,AFilter : String);
|
|
var
|
|
s: String;
|
|
begin
|
|
if MIExportDLG.Checked then
|
|
begin
|
|
If not ShowBaseExportConfig(E) then
|
|
Exit;
|
|
end
|
|
else
|
|
begin
|
|
SDExport.FileName := '';
|
|
SDExport.Title:=ATitle;
|
|
SDExport.Filter:=AFilter;
|
|
s := AFilter.Split('|')[1];
|
|
Delete(s, 1, 1);
|
|
SDExport.DefaultExt:= s;
|
|
E.Dataset.First;
|
|
if SDExport.Execute then
|
|
begin
|
|
if (E is TFPDBFExport) then
|
|
(E as TFPDBFExport).FileName:=SDExport.FileName
|
|
else
|
|
if (E is TCustomFileExporter) then
|
|
(E as TCustomFileExporter).FileName:=SDExport.FileName;
|
|
end else
|
|
exit;
|
|
end;
|
|
E.Execute;
|
|
end;
|
|
|
|
procedure TMainForm.AExportCSVExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExCSV,SCSVTitle,SCSVFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportDBFExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExDBF,SDBFTitle,SDBFFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportFixedExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExFixed,SFixedTitle,SFixedFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportJSONExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExJSON,SJSONTitle,SJSONFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportRTFExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExRTF,SRTFTitle,SRTFFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportSQLExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExSQL,SSQLTitle,SSQLFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportTeXExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExTeX,STeXTitle,STeXFilter);
|
|
end;
|
|
|
|
procedure TMainForm.AExportXMLExecute(Sender: TObject);
|
|
begin
|
|
DoExport(ExXML,SXMLTitle,SXMLFilter);
|
|
end;
|
|
|
|
procedure TMainForm.CreateNewDataset(AFileName : String);
|
|
|
|
begin
|
|
With TDBFGenerator.Create do
|
|
try
|
|
OutputFile:=AFileName;
|
|
GenerateData;
|
|
finally
|
|
Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
FDesignCaption:=Caption;
|
|
end;
|
|
|
|
procedure TMainForm.HaveData(Sender: TObject);
|
|
begin
|
|
(Sender as TAction).Enabled:=DBFData.Active and Not (DBFData.EOF and DBFDATA.BOF);
|
|
end;
|
|
|
|
procedure TMainForm.OpenDataset(AFileName : String);
|
|
|
|
begin
|
|
DBFData.Close;
|
|
DBFData.TableName:=AFileName;
|
|
DBFData.Open;
|
|
Caption:=Format('%s (%s)',[FDesignCaption,AFileName]);
|
|
end;
|
|
|
|
end.
|
|
|