📄 ado_qimport3wizard.pas
字号:
procedure SetFileName(const Value: string);
procedure SetGoToLastPage(Value: boolean);
procedure SetAutoSaveTemplate(Value: boolean);
procedure FillCombosAndLists;
procedure FillKeyColumns(Strings: TStrings);
procedure MoveToSelected(Source, Destination: TListView;
All: boolean; Index: integer);
function GetWizard: TADO_QImport3Wizard;
function GetTemplateFileName: string;
function GetAutoLoadTemplate: boolean;
function GetImportDestination: TQImportDestination;
function GetGridCaptionRow: integer;
function GetGridStartRow: integer;
function GetKeyColumns: TStrings;
procedure SetComma(const Value: char);
procedure SetQuote(const Value: char);
procedure SetStep(const Value: integer);
procedure ShowTip(Parent: TWinControl; Left, Top, Height, Width: integer;
const Tip: string);
function AllowedImportFileType(const AFileName: string): Boolean;
function ImportTypeEquivFileType(const AFileName: string): Boolean;
function ImportTypeStr(AImportType: TAllowedImport): string;
//---- DBF page's methods
procedure DBFFillList;
procedure DBFClearList;
procedure DBFFillTableList;
procedure DBFClearTableList;
procedure DBFTune;
function DBFReady: boolean;
//---- XML page's methods
procedure XMLFillList;
procedure XMLClearList;
procedure XMLFillTableList;
procedure XMLClearTableList;
procedure XMLTune;
function XMLReady: boolean;
//---- TXT page's methods
procedure TXTFillCombo;
procedure TXTClearCombo;
procedure TXTTune;
function TXTReady: boolean;
procedure TXTExtractPosSize(const S: string; var Position, Size: integer);
procedure TXTViewerChangeSelection(Sender: TObject);
procedure TXTViewerDeleteArrow(Sender: TObject; Position: integer);
procedure TXTViewerMoveArrow(Sender: TObject; OldPos, NewPos: integer);
procedure TXTViewerIntersectArrows(Sender: TObject; Position: integer);
//---- CSV page's methods
procedure CSVFillCombo;
procedure CSVClearCombo;
procedure CSVTune;
function CSVReady: boolean;
function CSVCol: integer;
procedure CSVFillGrid;
//---- XLS page's methods
procedure XLSFillFieldList;
procedure XLSClearFieldList;
procedure XLSClearDataSheets;
procedure XLSFillGrid;
procedure XLSDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);
procedure XLSMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure XLSSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure XLSGridExit(Sender: TObject);
procedure XLSGridKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure XLSStartEditing;
procedure XLSFinishEditing;
procedure XLSApplyEditing;
procedure XLSDeleteSelectedRanges;
function XLSGetCurrentGrid: TStringGrid;
procedure XLSRepaintCurrentGrid;
procedure XLSFillSelection;
procedure XLSTune;
function XLSReady: boolean;
//---- Access page's methods
procedure SetAccessPassword(const Value: string);
procedure SetAccessSourceType(const Value: TQImportAccessSourceType);
procedure AccessTune_01;
procedure AccessTune_02;
procedure AccessGetTableNames;
procedure AccessFillList;
procedure AccessGetFieldNames;
procedure AccessClearList;
function AccessReady: boolean;
//---- Formats
procedure FormatsFillList;
procedure FormatsClearList;
procedure TuneFormats;
procedure SetEnabledDataFormatControls;
procedure ShowFormatItem(Item: TListItem);
//---- Utilities
procedure LoadTemplateFromFile(const AFileName: string);
procedure SaveTemplateToFile(const AFileName: string);
procedure SetTitle;
procedure TuneStart;
procedure TuneFinish;
procedure TuneMap;
procedure TuneButtons;
function StartReady: boolean;
//---- Property's methods
procedure SetXLSSkipCols(const Value: integer);
procedure SetXLSSkipRows(const Value: integer);
procedure SetDBFSkipDeleted(const Value: boolean);
procedure SetTXTSkipLines(const Value: integer);
procedure SetCSVSkipLines(const Value: integer);
procedure SetXMLWriteOnFly(const Value: boolean);
procedure SetDecimalSeparator(const Value: char);
procedure SetThousandSeparator(const Value: char);
procedure SetShortDateFormat(const Value: string);
procedure SetLongDateFormat(const Value: string);
procedure SetDateSeparator(const Value: char);
procedure SetShortTimeFormat(const Value: string);
procedure SetLongTimeFormat(const Value: string);
procedure SetTimeSeparator(const Value: char);
procedure SetCommitAfterDone(const Value: boolean);
procedure SetCommitRecCount(const Value: integer);
procedure SetImportRecCount(const Value: integer);
procedure SetCloseAfterImport(const Value: boolean);
procedure SetEnableErrorLog(const Value: boolean);
procedure SetErrorLogFileName(const Value: string);
procedure SetRewriteErrorLogFile(const Value: boolean);
procedure SetShowErrorLog(const Value: boolean);
procedure SetImportMode(const Value: TQImportMode);
procedure SetAddType(const Value: TQImportAddType);
procedure ApplyDataFormats(AImport: TQImport3);
protected
vwTXT: TQImport3TXTViewer;
paTip: TInfoPanel;
property Wizard: TADO_QImport3Wizard read GetWizard;
property TemplateFileName: string read GetTemplateFileName;
property AutoLoadTemplate: boolean read GetAutoLoadTemplate;
property ImportDestination: TQImportDestination read GetImportDestination;
property GridCaptionRow: integer read GetGridCaptionRow;
property GridStartRow: integer read GetGridStartRow;
property KeyColumns: TStrings read GetKeyColumns;
property ImportType: TAllowedImport read FImportType write SetImportType;
property FileName: string read FFileName write SetFileName;
property GoToLastPage: boolean read FGoToLastPage write SetGoToLastPage;
property AutoSaveTemplate: boolean read FAutoSaveTemplate
write SetAutoSaveTemplate;
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 Comma: char read FComma write SetComma;
property Quote: char read FQuote write SetQuote;
property Step: integer read FStep write SetStep;
property FieldFormats: TQImportFieldFormats read FDataFormats
write FDataFormats;
// XLS
property XLSSkipCols: integer read FXLSSkipCols write SetXLSSkipCols;
property XLSSkipRows: integer read FXLSSkipRows write SetXLSSkipRows;
// Access
property AccessPassword: string read FAccessPassword
write SetAccessPassword;
property AccessSourceType: TQImportAccessSourceType read FAccessSourceType
write SetAccessSourceType;
// DBF
property DBFSkipDeleted: boolean read FDBFSkipDeleted
write SetDBFSkipDeleted;
// TXT
property TXTSkipLines: integer read FTXTSkipLines write SetTXTSkipLines;
// CSV
property CSVSkipLines: integer read FCSVSkipLines write SetCSVSkipLines;
// XML
property XMLWriteOnFly: boolean read FXMLWriteOnFly write SetXMLWriteOnFly;
// Base format
property DecimalSeparator: char read FDecimalSeparator
write SetDecimalSeparator;
property ThousandSeparator: char read FThousandSeparator
write SetThousandSeparator;
property ShortDateFormat: string read FShortDateFormat
write SetShortDateFormat;
property LongDateFormat: string read FLongDateFormat
write SetLongDateFormat;
property DateSeparator: char read FDateSeparator write SetDateSeparator;
property ShortTimeFormat: string read FShortTimeFormat
write SetShortTimeFormat;
property LongTimeFormat: string read FLongTimeFormat
write SetLongTimeFormat;
property TimeSeparator: char read FTimeSeparator write SetTimeSeparator;
//---- Last Step
property CommitAfterDone: boolean read FCommitAfterDone
write SetCommitAfterDone;
property CommitRecCount: integer read FCommitRecCount
write SetCommitRecCount;
property ImportRecCount: integer read FImportRecCount
write SetImportRecCount;
property CloseAfterImport: boolean read FCloseAfterImport
write SetCloseAfterImport;
property EnableErrorLog: boolean read FEnableErrorLog
write SetEnableErrorLog;
property ErrorLogFileName: string read FErrorLogFileName
write SetErrorLogFileName;
property RewriteErrorLogFile: boolean read FRewriteErrorLogFile
write SetRewriteErrorLogFile;
property ShowErrorLog: boolean read FShowErrorLog
write SetShowErrorLog;
property ImportMode: TQImportMode read FImportMode
write SetImportMode;
property AddType: TQImportAddType read FAddType
write SetAddType;
public
property Import: TQImport3 read FImport write FImport;
end;
implementation
uses QImport3StrIDs, DBFFile3, XLSUtils3, Math, QImport3Common
{$IFDEF VCL6}, Variants {$ENDIF}, SysUtils, Messages, IniFiles, XLSCalculate3,
fuQImport3XLSRangeEdit, fuQImport3Loading, fuQImport3ReplacementEdit,
WideStringList3;
{$R *.DFM}
//const
//MDB_EXT = '.mdb';
{ TADO_QImport3Wizard }
constructor TADO_QImport3Wizard.Create(AOwner: TComponent);
begin
inherited;
FAllowedImports := [Low(TAllowedImport)..High(TAllowedImport)];
FImportRecCount := 0;
FCommitRecCount := 100;
FCommitAfterDone := true;
FErrorLog := false;
FErrorLogFileName := 'error.log';
FRewriteErrorLogFile := true;
FShowErrorLog := false;
FShowProgress := true;
FAutoChangeExtension := true;
FShowHelpButton := true;
FCloseAfterImport := false;
FFormats := TQImportFormats.Create;
FFieldFormats := TQImportFieldFormats.Create(Self);
FShowSaveLoadButtons := false;
FAutoLoadTemplate := false;
FAutoSaveTemplate := false;
FGoToLastPage := false;
FImportDestination := qidDataSet;
FImportMode := qimInsertAll;
FAddType := qatInsert;
FKeyColumns := TStringList.Create;
FGridCaptionRow := -1;
FGridStartRow := -1;
FConfirmOnCancel := true;
FPicture := TPicture.Create;
FTextViewerRows := 20;
FCSVViewerRows := 20;
FExcelViewerRows := 256;
FExcelMaxColWidth := 130;
end;
destructor TADO_QImport3Wizard.Destroy;
begin
FPicture.Free;
FFieldFormats.Free;
FFormats.Free;
FKeyColumns.Free;
inherited;
end;
procedure TADO_QImport3Wizard.Execute;
begin
if AllowedImports = [] then
raise EQImportError.Create(QImportLoadStr(QIE_AllowedImportsEmpty));
QImportCheckDestination(false, ImportDestination, DataSet, DBGrid, ListView,
StringGrid);
with TADO_QImport3WizardF.Create(Self) do
try
ShowModal;
finally
Free;
end;
end;
procedure TADO_QImport3Wizard.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited;
if (Operation = opRemove) and (AComponent = FDataSet)
then FDataSet := nil;
if (Operation = opRemove) and (AComponent = FDBGrid)
then FDBGrid := nil;
if (Operation = opRemove) and (AComponent = FListView)
then FListView := nil;
if (Operation = opRemove) and (AComponent = FStringGrid)
then FStringGrid := nil;
end;
function TADO_QImport3Wizard.IsFileName: Boolean;
begin
Result := FFileName <> EmptyStr;
end;
procedure TADO_QImport3Wizard.SetFormats(const Value: TQImportFormats);
begin
FFormats.Assign(Value);
end;
procedure TADO_QImport3Wizard.SetFieldFormats(const Value: TQImportFieldFormats);
begin
FFieldFormats.Assign(Value);
end;
procedure TADO_QImport3Wizard.SetKeyColumns(const Value: TStrings);
begin
FKeyColumns.Assign(Value);
end;
procedure TADO_QImport3Wizard.SetPicture(const Value: TPicture);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -