⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ado_qimport3wizard.pas

📁 Advanced Data Import Component Suite for Borland Delphi and C++ Builder allows you to import your da
💻 PAS
📖 第 1 页 / 共 5 页
字号:

    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 + -