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

📄 fuqimport3formatseditor.pas

📁 EMS Advanced Import Component Suite 允许你把数据从文件导入数据库中
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit fuQImport3FormatsEditor;

interface

uses
  Forms, QImport3, Db, StdCtrls, Controls, ComCtrls, Classes,
  ExtCtrls{$IFDEF VCL4}, ImgList, ToolWin {$ENDIF};

type
  TfmQImport3FormatsEditor = class(TForm)
    paButtons: TPanel;
    bOk: TButton;
    bCancel: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    lstFields: TListView;
    Bevel6: TBevel;
    ilFields: TImageList;
    pgFieldOptions: TPageControl;
    tsFieldTuning: TTabSheet;
    Bevel13: TBevel;
    laGeneratorValue: TLabel;
    laGeneratorStep: TLabel;
    laConstantValue: TLabel;
    laNullValue: TLabel;
    laDefaultValue: TLabel;
    laLeftQuote: TLabel;
    laRightQuote: TLabel;
    laQuoteAction: TLabel;
    laCharCase: TLabel;
    laCharSet: TLabel;
    edGeneratorValue: TEdit;
    edGeneratorStep: TEdit;
    edConstantValue: TEdit;
    edNullValue: TEdit;
    edDefaultValue: TEdit;
    edLeftQuote: TEdit;
    edRightQuote: TEdit;
    cbQuoteAction: TComboBox;
    cbCharCase: TComboBox;
    cbCharSet: TComboBox;
    tbReplacements: TToolBar;
    tbtAddReplacement: TToolButton;
    tbtEditReplacement: TToolButton;
    tbtDelReplacement: TToolButton;
    laReplacements: TLabel;
    lvReplacements: TListView;
    procedure FormShow(Sender: TObject);
    procedure edGeneratorValueChange(Sender: TObject);
    procedure edGeneratorStepChange(Sender: TObject);
    procedure edConstantValueChange(Sender: TObject);
    procedure edNullValueChange(Sender: TObject);
    procedure edDefaultValueChange(Sender: TObject);
    procedure cbCharCaseChange(Sender: TObject);
    procedure cbCharSetChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure lstFieldsEdited(Sender: TObject; Item: TListItem;
      var S: String);
    procedure lstFieldsChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure FormCreate(Sender: TObject);
    procedure lvReplacementsChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure lvReplacementsDblClick(Sender: TObject);
    procedure tbtAddReplacementClick(Sender: TObject);
    procedure tbtEditReplacementClick(Sender: TObject);
    procedure tbtDelReplacementClick(Sender: TObject);
    procedure edLeftQuoteChange(Sender: TObject);
    procedure edRightQuoteChange(Sender: TObject);
    procedure cbQuoteActionChange(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    FComponent: TComponent;

    FIsNecessaryListChange: Boolean;
    FLoadingFormatItem: boolean;
    FFormatItem: TListItem;

    function GetGeneratorValue: integer;
    function GetGeneratorStep: integer;
    function GetConstantValue: string;
    function GetNullValue: string;
    function GetDefaultValue: string;
    function GetLeftQuote: string;
    function GetRightQuote: string;
    function GetQuoteAction: TQuoteAction;
    function GetCharCase: TQImportCharCase;
    function GetCharSet: TQImportCharSet;

    procedure SetGeneratorValue(const Value: integer);
    procedure SetGeneratorStep(const Value: integer);
    procedure SetConstantValue(const Value: string);
    procedure SetNullValue(const Value: string);
    procedure SetDefaultValue(const Value: string);
    procedure SetLeftQuote(const Value: string);
    procedure SetRightQuote(const Value: string);
    procedure SetQuoteAction(const Value: TQuoteAction);
    procedure SetCharCase(const Value: TQImportCharCase);
    procedure SetCharSet(const Value: TQImportCharSet);

    procedure FillFieldsList;
    procedure ApplyChanges;
    function DataByName(const AName: string): TQImportFieldFormat;
    procedure SetEnabledControls;
    function GetQImportFieldFormats: TQImportFieldFormats;
    function GetDataSet: TDataSet;
    procedure ShowFormatItem(Item: TListItem);
    procedure TuneButtons;
  public
    property IsNecessaryListChange: Boolean read FIsNecessaryListChange
      write FIsNecessaryListChange default True;
    property FieldFormats: TQImportFieldFormats read GetQImportFieldFormats;
    property DataSet: TDataSet read GetDataSet;
    property GeneratorValue: integer read GetGeneratorValue
      write SetGeneratorValue;
    property GeneratorStep: integer read GetGeneratorStep
      write SetGeneratorStep;
    property ConstantValue: string read GetConstantValue
      write SetConstantValue;
    property NullValue: string read GetNullValue
      write SetNullValue;
    property DefaultValue: string read GetDefaultValue
      write SetDefaultValue;
    property LeftQuote: string read GetLeftQuote
      write SetLeftQuote;
    property RightQuote: string read GetRightQuote
      write SetRightQuote;
    property QuoteAction: TQuoteAction read GetQuoteAction
      write SetQuoteAction;
    property CharCase: TQImportCharCase read GetCharCase
      write SetCharCase;
    property CharSet: TQImportCharSet read GetCharSet
      write SetCharSet;
  end;

function RunFormatsEditor(AComponent: TComponent): boolean;

implementation

uses QImport3StrIDs, TypInfo, SysUtils, Windows,
     fuQImport3ReplacementEdit;

{$R *.DFM}

function RunFormatsEditor(AComponent: TComponent): boolean;
begin
  with TfmQImport3FormatsEditor.Create(nil) do
  try
    FComponent := AComponent;
    FillFieldsList;
    IsNecessaryListChange := False;
    Result := ShowModal = mrOk;
    if Result then ApplyChanges;
  finally
    Free;
  end;
end;

{ TfmQImport3FormatsEditor }

function TfmQImport3FormatsEditor.GetGeneratorValue: integer;
begin
  Result := StrToIntDef(edGeneratorValue.Text, 0);
end;

function TfmQImport3FormatsEditor.GetGeneratorStep: integer;
begin
  Result := StrToIntDef(edGeneratorStep.Text, 0);
end;

function TfmQImport3FormatsEditor.GetConstantValue: string;
begin
  Result := edConstantValue.Text;
end;

function TfmQImport3FormatsEditor.GetNullValue: string;
begin
  Result := edNullValue.Text;
end;

function TfmQImport3FormatsEditor.GetDefaultValue: string;
begin
  Result := edDefaultValue.Text;
end;

function TfmQImport3FormatsEditor.GetLeftQuote: string;
begin
  Result := edLeftQuote.Text;
end;

function TfmQImport3FormatsEditor.GetRightQuote: string;
begin
  Result := edRightQuote.Text;
end;

function TfmQImport3FormatsEditor.GetQuoteAction: TQuoteAction;
begin
  case cbQuoteAction.ItemIndex of
    1: Result := qaAdd;
    2: Result := qaRemove;
  else
    Result := qaNone;
  end;
end;

function TfmQImport3FormatsEditor.GetCharCase: TQImportCharCase;
begin
  case cbCharCase.ItemIndex of
    1: Result := iccUpper;
    2: Result := iccLower;
    3: Result := iccUpperFirst;
    4: Result := iccUpperFirstWord;
  else
    Result := iccNone;
  end;
end;

function TfmQImport3FormatsEditor.GetCharSet: TQImportCharSet;
begin
  case cbCharSet.ItemIndex of
    1: Result := icsAnsi;
    2: Result := icsOem;
  else
    Result := icsNone;
  end;
end;

procedure TfmQImport3FormatsEditor.SetGeneratorValue(const Value: integer);
begin
  edGeneratorValue.Text := IntToStr(Value);
end;

procedure TfmQImport3FormatsEditor.SetGeneratorStep(const Value: integer);
begin
  edGeneratorStep.Text := IntToStr(Value);
end;

procedure TfmQImport3FormatsEditor.SetConstantValue(const Value: string);
begin
  edConstantValue.Text := Value;
end;

procedure TfmQImport3FormatsEditor.SetNullValue(const Value: string);
begin
  edNullValue.Text := Value;
end;

procedure TfmQImport3FormatsEditor.SetDefaultValue(const Value: string);
begin
  edDefaultValue.Text := Value;
end;

procedure TfmQImport3FormatsEditor.SetLeftQuote(const Value: string);
begin
  edLeftQuote.Text := Value;
end;

procedure TfmQImport3FormatsEditor.SetRightQuote(const Value: string);
begin
  edRightQuote.Text := Value;
end;

procedure TfmQImport3FormatsEditor.SetQuoteAction(const Value: TQuoteAction);
begin
  case Value of
    qaAdd: cbQuoteAction.ItemIndex := 1;
    qaRemove: cbQuoteAction.ItemIndex := 2;
  else
    cbQuoteAction.ItemIndex := 0;
  end;
end;

procedure TfmQImport3FormatsEditor.SetCharCase(const Value: TQImportCharCase);
begin
  case Value of
    iccUpper: cbCharCase.ItemIndex := 1;
    iccLower: cbCharCase.ItemIndex := 2;
    iccUpperFirst: cbCharCase.ItemIndex := 3;
    iccUpperFirstWord: cbCharCase.ItemIndex := 4;
  else
    cbCharCase.ItemIndex := 0;
  end;
end;

procedure TfmQImport3FormatsEditor.SetCharSet(const Value: TQImportCharSet);
begin
  case Value of
    icsAnsi: cbCharSet.ItemIndex := 1;
    icsOem: cbCharSet.ItemIndex := 2;
  else
    cbCharSet.ItemIndex := 0;
  end;
end;

procedure TfmQImport3FormatsEditor.FormShow(Sender: TObject);
begin
  FIsNecessaryListChange := True;
  Caption := FComponent.Name + '.DataFormats - Property editor';
  SetEnabledControls;
end;

procedure TfmQImport3FormatsEditor.edGeneratorValueChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).GeneratorValue := GeneratorValue;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.edGeneratorStepChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).GeneratorStep := GeneratorStep;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.edConstantValueChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).ConstantValue := ConstantValue;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.edNullValueChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).NullValue := NullValue;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.edDefaultValueChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).DefaultValue := DefaultValue;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.edLeftQuoteChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).LeftQuote := LeftQuote;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.edRightQuoteChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).RightQuote := RightQuote;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.cbQuoteActionChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).QuoteAction := QuoteAction;
    SetEnabledControls;
  end;
end;

procedure TfmQImport3FormatsEditor.cbCharCaseChange(Sender: TObject);
begin
  if Assigned(lstFields.Selected) and not FLoadingFormatItem then begin
    TQImportFieldFormat(lstFields.Selected.Data).CharCase := CharCase;
    SetEnabledControls;
  end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -