📄 qimport3wizard.pas
字号:
unit QImport3Wizard;
{$I QImport3VerCtrl.Inc}
interface
uses
Forms, Dialogs, QImport3XLS, QImport3ASCII, QImport3, QImport3DBF,
Windows, Grids, ComCtrls, Buttons, Controls, ExtCtrls, Classes, Db, ToolWin,
fuQImport3ProgressDlg, QImport3TXTView, DBGrids, XLSFile3, XLSMapParser3, StdCtrls,
InfoPanel3, QImport3HTML, QImport3XML,
{$IFDEF XMLDOC}QImport3XMLDoc,{$ENDIF}
{$IFDEF XLSX}QImport3Xlsx,{$ENDIF}
{$IFDEF DOCX}QImport3Docx,{$ENDIF}
{$IFDEF ODS}QImport3ODS,{$ENDIF}
{$IFDEF ODT}QImport3ODT,{$ENDIF}
{$IFDEF ADO}ADO_QImport3Access,{$ENDIF}
Menus, Graphics,
QImport3StrTypes
{$IFDEF VCL4}, ImgList {$ENDIF};
type
TQImport3Wizard = class(TComponent)
private
FAllowedImports: TAllowedImports;
FDataSet: TDataSet;
FDBGrid: TDBGrid;
FListView: TListView;
FStringGrid: TStringGrid;
FFileName: qiString;
FFormats: TQImportFormats;
FFieldFormats: TQImportFieldFormats;
FAbout: string;
FVersion: string;
FImportRecCount: Integer;
FCommitRecCount: Integer;
FCommitAfterDone: boolean;
FErrorLog: boolean;
FErrorLogFileName: qiString;
FRewriteErrorLogFile: boolean;
FShowErrorLog: boolean;
FShowProgress: boolean;
FAutoChangeExtension: boolean;
FShowHelpButton: boolean;
FCloseAfterImport: boolean;
FPicture: TPicture;
FTextViewerRows: Integer;
FCSVViewerRows: Integer;
FExcelViewerRows: Integer;
FExcelMaxColWidth: Integer;
FShowSaveLoadButtons: Boolean;
FAutoSaveTemplate: Boolean;
FAutoLoadTemplate: Boolean;
FTemplateFileName: qiString;
FGoToLastPage: boolean;
FImportDestination: TQImportDestination;
FImportMode: TQImportMode;
FAddType: TQImportAddType;
FKeyColumns: TStrings;
FGridCaptionRow: Integer;
FGridStartRow: Integer;
FConfirmOnCancel: boolean;
FOnBeforeImport: TNotifyEvent;
FOnAfterImport: TNotifyEvent;
FOnImportRecord: TNotifyEvent;
FOnImportError: TNotifyEvent;
FOnImportErrorAdv: TNotifyEvent;
FOnNeedCommit: TNotifyEvent;
FOnImportCancel: TImportCancelEvent;
FOnBeforePost: TImportBeforePostEvent;
FOnLoadTemplate: TImportLoadTemplateEvent;
FOnDestinationLocate: TDestinationLocateEvent;
function IsFileName: Boolean;
procedure SetFormats(const Value: TQImportFormats);
procedure SetFieldFormats(const Value: TQImportFieldFormats);
procedure SetKeyColumns(const Value: TStrings);
procedure SetPicture(const Value: TPicture);
protected
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Execute;
published
property AllowedImports: TAllowedImports read FAllowedImports
write FAllowedImports default [Low(TAllowedImport)..High(TAllowedImport)];
property DataSet: TDataSet read FDataSet write FDataSet;
property DBGrid: TDBGrid read FDBGrid write FDBGrid;
property ListView: TListView read FListView write FListView;
property StringGrid: TStringGrid read FStringGrid write FStringGrid;
property FileName: qiString read FFileName write FFileName stored IsFileName;
property Formats: TQImportFormats read FFormats write SetFormats;
property FieldFormats: TQImportFieldFormats read FFieldFormats
write SetFieldFormats;
property About: string read FAbout write FAbout;
property Version: string read FVersion write FVersion;
property ImportRecCount: Integer read FImportRecCount
write FImportRecCount default 0;
property CommitRecCount: Integer read FCommitRecCount
write FCommitRecCount default 100;
property CommitAfterDone: boolean read FCommitAfterDone
write FCommitAfterDone default True;
property ErrorLog: boolean read FErrorLog write FErrorLog default False;
property ErrorLogFileName: qiString read FErrorLogFileName
write FErrorLogFileName;
property RewriteErrorLogFile: boolean read FRewriteErrorLogFile
write FRewriteErrorLogFile default True;
property ShowErrorLog: boolean read FShowErrorLog
write FShowErrorLog default False;
property ShowProgress: boolean read FShowProgress
write FShowProgress default True;
property AutoChangeExtension: boolean read FAutoChangeExtension
write FAutoChangeExtension default True;
property ShowHelpButton: boolean read FShowHelpButton
write FShowHelpButton default True;
property CloseAfterImport: boolean read FCloseAfterImport
write FCloseAfterImport default False;
property Picture: TPicture read FPicture write SetPicture;
property TextViewerRows: Integer read FTextViewerRows
write FTextViewerRows default 20;
property CSVViewerRows: Integer read FCSVViewerRows
write FCSVViewerRows default 20;
property ExcelViewerRows: Integer read FExcelViewerRows
write FExcelViewerRows default 256;
property ExcelMaxColWidth: Integer read FExcelMaxColWidth
write FExcelMaxColWidth default 130;
property ShowSaveLoadButtons: boolean read FShowSaveLoadButtons
write FShowSaveLoadButtons default False;
property TemplateFileName: qiString read FTemplateFileName
write FTemplateFileName;
property AutoLoadTemplate: boolean read FAutoLoadTemplate
write FAutoLoadTemplate default False;
property AutoSaveTemplate: boolean read FAutoSaveTemplate
write FAutoSaveTemplate default False;
property GoToLastPage: boolean read FGoToLastPage
write FGoToLastPage default False;
property ImportDestination: TQImportDestination read FImportDestination
write FImportDestination default qidDataSet;
property ImportMode: TQImportMode read FImportMode write FImportMode
default qimInsertAll;
property AddType: TQImportAddType read FAddType
write FAddType default qatAppend;
property KeyColumns: TStrings read FKeyColumns write SetKeyColumns;
property GridCaptionRow: Integer read FGridCaptionRow
write FGridCaptionRow default -1;
property GridStartRow: Integer read FGridStartRow
write FGridStartRow default -1;
property ConfirmOnCancel: boolean read FConfirmOnCancel
write FConfirmOnCancel default True;
property OnBeforeImport: TNotifyEvent read FOnBeforeImport
write FOnBeforeImport;
property OnAfterImport: TNotifyEvent read FOnAfterImport
write FOnAfterImport;
property OnImportRecord: TNotifyEvent read FOnImportRecord
write FOnImportRecord;
property OnImportError: TNotifyEvent read FOnImportError
write FOnImportError;
property OnImportErrorAdv: TNotifyEvent read FOnImportErrorAdv
write FOnImportErrorAdv;
property OnNeedCommit: TNotifyEvent read FOnNeedCommit
write FOnNeedCommit;
property OnImportCancel: TImportCancelEvent read FOnImportCancel
write FOnImportCancel;
property OnBeforePost: TImportBeforePostEvent read FOnBeforePost
write FOnBeforePost;
property OnLoadTemplate: TImportLoadTemplateEvent read FOnLoadTemplate
write FOnLoadTemplate;
property OnDestinationLocate: TDestinationLocateEvent
read FOnDestinationLocate write FOnDestinationLocate;
end;
TQImport3WizardF = class(TForm)
paButtons: TPanel;
Bevel1: TBevel;
bHelp: TButton;
bBack: TButton;
bNext: TButton;
bCancel: TButton;
bOk: TButton;
pgImport: TPageControl;
tsImportType: TTabSheet;
tsTXTOptions: TTabSheet;
tsDBFOptions: TTabSheet;
tsExcelOptions: TTabSheet;
grpImportTypes: TGroupBox;
laComma: TLabel;
rbtXLS: TRadioButton;
rbtDBF: TRadioButton;
rbtTXT: TRadioButton;
rbtCSV: TRadioButton;
cbComma: TComboBox;
laSourceFileName: TLabel;
edtFileName: TEdit;
Bevel6: TBevel;
opnDialog: TOpenDialog;
spbBrowse: TSpeedButton;
tsCommitOptions: TTabSheet;
laTXTStep_02: TLabel;
Bevel2: TBevel;
laTXTSkipLines: TLabel;
edtTXTSkipLines: TEdit;
laStep_03: TLabel;
Bevel3: TBevel;
lstDBFDataSet: TListView;
lstDBF: TListView;
lstDBFMap: TListView;
bDBFAdd: TSpeedButton;
bDBFRemove: TSpeedButton;
laStep_04: TLabel;
Bevel4: TBevel;
laStep_02: TLabel;
Bevel5: TBevel;
tsFormats: TTabSheet;
laStep_06: TLabel;
Bevel7: TBevel;
pgFormats: TPageControl;
tshBaseFormats: TTabSheet;
grpDateTimeFormats: TGroupBox;
laShortDateFormat: TLabel;
laLongDateFormat: TLabel;
laShortTimeFormat: TLabel;
laLongTimeFormat: TLabel;
edtShortDateFormat: TEdit;
edtLongDateFormat: TEdit;
edtShortTimeFormat: TEdit;
edtLongTimeFormat: TEdit;
tshDataFormats: TTabSheet;
lstFormatFields: TListView;
ilWizard: TImageList;
odTemplate: TOpenDialog;
btnSaveTemplate: TSpeedButton;
sdTemplate: TSaveDialog;
bDBFAutoFill: TSpeedButton;
bDBFClear: TSpeedButton;
laQuote: TLabel;
tsCSVOptions: TTabSheet;
laStep_07: TLabel;
Bevel15: TBevel;
pgFieldOptions: TPageControl;
tsFieldTuning: TTabSheet;
laGeneratorValue: TLabel;
edtGeneratorValue: TEdit;
laGeneratorStep: TLabel;
edtGeneratorStep: TEdit;
laConstantValue: TLabel;
edtConstantValue: TEdit;
laNullValue: TLabel;
edtNullValue: TEdit;
laDefaultValue: TLabel;
edtDefaultValue: TEdit;
laLeftQuote: TLabel;
edtLeftQuote: TEdit;
laRightQuote: TLabel;
edtRightQuote: TEdit;
laQuoteAction: TLabel;
cmbQuoteAction: TComboBox;
laCharCase: TLabel;
cmbCharCase: TComboBox;
laCharSet: TLabel;
cmbCharSet: TComboBox;
Bevel13: TBevel;
grpSeparators: TGroupBox;
laDecimalSeparator: TLabel;
edtDecimalSeparator: TEdit;
laThousandSeparator: TLabel;
edtThousandSeparator: TEdit;
laDateSeparator: TLabel;
edtDateSeparator: TEdit;
laTimeSeparator: TLabel;
edtTimeSeparator: TEdit;
cbQuote: TComboBox;
pcLastStep: TPageControl;
tshCommit: TTabSheet;
tshAdvanced: TTabSheet;
grpImportCount: TGroupBox;
laImportRecCount_01: TLabel;
laImportRecCount_02: TLabel;
chImportAllRecords: TCheckBox;
edtImportRecCount: TEdit;
grpCommit: TGroupBox;
laCommitRecCount_01: TLabel;
laCommitRecCount_02: TLabel;
chCommitAfterDone: TCheckBox;
edtCommitRecCount: TEdit;
chDBFSkipDeleted: TCheckBox;
sdErrorLog: TSaveDialog;
chCloseAfterImport: TCheckBox;
pcXLSFile: TPageControl;
paXLSFieldsAndRanges: TPanel;
lvXLSFields: TListView;
lvXLSRanges: TListView;
tbXLSRanges: TToolBar;
tbtXLSAddRange: TToolButton;
tbtXLSEditRange: TToolButton;
tbtXLSDelRange: TToolButton;
tbXLSUtils: TToolBar;
tbtXLSAutoFillCols: TToolButton;
tbtXLSAutoFillRows: TToolButton;
tbtXLSMoveRangeUp: TToolButton;
tbtXLSMoveRangeDown: TToolButton;
tbtSeparator_01: TToolButton;
tbtXLSClearFieldRanges: TToolButton;
grpErrorLog: TGroupBox;
laErrorLogFileName: TLabel;
bvErrorLogFileName: TBevel;
bErrorLogFileName: TSpeedButton;
chEnableErrorLog: TCheckBox;
chShowErrorLog: TCheckBox;
edErrorLogFileName: TEdit;
chRewriteErrorLogFile: TCheckBox;
rgImportMode: TRadioGroup;
lvAvailableColumns: TListView;
laAvailableColumns: TLabel;
bAllToRight: TSpeedButton;
bOneToRirght: TSpeedButton;
bOneToLeft: TSpeedButton;
bAllToLeft: TSpeedButton;
lvSelectedColumns: TListView;
laSelectedColumns: TLabel;
rgAddType: TRadioGroup;
laReplacements: TLabel;
gbTemplateOptions: TGroupBox;
btnLoadTemplate: TSpeedButton;
chGoToLastPage: TCheckBox;
chAutoSaveTemplate: TCheckBox;
pbDBFAdd: TPaintBox;
pbDBFAutoFill: TPaintBox;
pbDBFRemove: TPaintBox;
pbDBFClear: TPaintBox;
lvCSVFields: TListView;
tbCSV: TToolBar;
tbtCSVAutoFill: TToolButton;
tbtCSVClear: TToolButton;
laCSVSkipLines: TLabel;
edtCSVSkipLines: TEdit;
cbCSVColNumber: TComboBox;
laCSVColNumber: TLabel;
lvTXTFields: TListView;
tbTXT: TToolBar;
tbtTXTClear: TToolButton;
laXLSSkipCols: TLabel;
edXLSSkipCols: TEdit;
laXLSSkipRows: TLabel;
edXLSSkipRows: TEdit;
rbtXML: TRadioButton;
tsXMLOptions: TTabSheet;
laStep_05: TLabel;
Bevel8: TBevel;
lvXMLDataSet: TListView;
lvXML: TListView;
lvXMLMap: TListView;
bXMLAdd: TSpeedButton;
pbXMLAdd: TPaintBox;
bXMLAutoFill: TSpeedButton;
pbXMLAutoFill: TPaintBox;
bXMLRemove: TSpeedButton;
pbXMLRemove: TPaintBox;
bXMLClear: TSpeedButton;
pbXMLClear: TPaintBox;
mmBooleanTrue: TMemo;
laBooleanTrue: TLabel;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -