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

📄 qimport2wizard.pas

📁 Delphi Advanced Import Component_v2.48.With Full Source.
💻 PAS
📖 第 1 页 / 共 5 页
字号:
var
  i: integer;
begin
  if FComma <> Value then begin
    FComma := Value;
    if FComma = Chr(VK_TAB) then
      cbComma.Text := 'TAB'
    else if FComma = Chr(VK_SPACE) then
      cbComma.Text := 'SPACE'
    else cbComma.Text := Char2Str(FComma);

    for i := 0 to lvCSVFields.Items.Count - 1 do
      lvCSVFields.Items[i].SubItems[0] := EmptyStr;
    if lvCSVFields.Items.Count > 0 then begin
      lvCSVFields.Items[0].Focused := true;
      lvCSVFields.Items[0].Selected := true;
    end;

    FNeedLoadFile := true;
    TuneButtons;
  end;
end;

procedure TQImport2WizardF.SetQuote(const Value: char);
var
  i: integer;
begin
  if FQuote <> Value then begin
    FQuote := Value;
    cbQuote.Text := Char2Str(FQuote);

    for i := 0 to lvCSVFields.Items.Count - 1 do
      lvCSVFields.Items[i].SubItems[0] := EmptyStr;
    if lvCSVFields.Items.Count > 0 then begin
      lvCSVFields.Items[0].Focused := true;
      lvCSVFields.Items[0].Selected := true;
    end;

    FNeedLoadFile := true;
  end;
end;

procedure TQImport2WizardF.FillCombosAndLists;
begin
  XLSFillFieldList;
  TXTFillCombo;
  CSVFillCombo;
  DBFFillList;
  XMLFillList;
  FormatsFillList;
  FillKeyColumns(KeyColumns);
end;

procedure TQImport2WizardF.FillKeyColumns(Strings: TStrings);
var
  i, j: integer;
  str: string;
begin
  lvAvailableColumns.Items.BeginUpdate;
  try
    lvSelectedColumns.Items.BeginUpdate;
    try
      lvAvailableColumns.Items.Clear;
      lvSelectedColumns.Items.Clear;

      for i := 0 to Strings.Count - 1 do begin
        j := QImportDestinationFindColumn(false, ImportDestination, DataSet,
             DBGrid, ListView, StringGrid, GridCaptionRow, Strings[i]);
        if j > -1 then
          lvSelectedColumns.Items.Add.Caption :=
            QImportDestinationColName(false, ImportDestination, DataSet,
              DBGrid, ListView, StringGrid, GridCaptionRow, j);
      end;

      for i := 0 to QImportDestinationColCount(false, ImportDestination,
                      DataSet, DBGrid, ListView, StringGrid) - 1 do begin
         str := QImportDestinationColName(false, ImportDestination, DataSet,
                  DBGrid, ListView, StringGrid, GridCaptionRow, i);
         if Strings.IndexOf(str) = -1 then
           lvAvailableColumns.Items.Add.Caption := str;
      end;
      if lvAvailableColumns.Items.Count > 0 then begin
        lvAvailableColumns.Items[0].Focused := true;
        lvAvailableColumns.Items[0].Selected := true;
      end;
      if lvSelectedColumns.Items.Count > 0 then begin
        lvSelectedColumns.Items[0].Focused := true;
        lvSelectedColumns.Items[0].Selected := true;
      end;
    finally
      lvSelectedColumns.Items.EndUpdate;
    end;
  finally
    lvAvailableColumns.Items.EndUpdate;
  end;
end;

procedure TQImport2WizardF.MoveToSelected(Source, Destination: TListView;
  All: boolean; Index: integer);
var
  List: TStringList;
  i: integer;
  ListItem: TListItem;
begin
  Source.Items.BeginUpdate;
  try
    Destination.Items.BeginUpdate;
    try
      List := TStringList.Create;
      try
        for i := Source.Items.Count - 1 downto 0 do
          if Source.Items[i].Selected or All then begin
            List.Add(Source.Items[i].Caption);
            Source.Items.Delete(i);
          end;
        ListItem := nil;
        if (List.Count = 1) and (Index > -1) then begin
          ListItem := Destination.Items.Insert(Index);
          ListItem.Caption := List[0];
          List.Delete(0);
        end
        else
          for i := List.Count - 1 downto 0 do begin
            ListItem := Destination.Items.Add;
            ListItem.Caption := List[i];
            List.Delete(i);
          end;
      finally
        List.Free;
      end;
      if Assigned(Source.ItemFocused) then
        Source.ItemFocused.Selected := true;
      if Assigned(ListItem) then
        for i := 0 to Destination.Items.Count - 1 do
          Destination.Items[i].Selected := Destination.Items[i] = ListItem;
    finally
      Destination.Items.EndUpdate;
    end;
  finally
    Source.Items.EndUpdate;
  end;
end;

procedure TQImport2WizardF.SetCaptions;
var
  N: integer;
begin
  grpImportTypes.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_ImportFrom){$ENDIF}
                            {$IFDEF LINUX}QIW_ImportFrom{$ENDIF};
  rbtXLS.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XLS){$ENDIF}
                    {$IFDEF LINUX}QIW_XLS{$ENDIF};
  rbtDBF.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DBF){$ENDIF}
                    {$IFDEF LINUX}QIW_DBF{$ENDIF};
  rbtXML.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XML){$ENDIF}
                    {$IFDEF LINUX}QIW_XML{$ENDIF};
  rbtTXT.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TXT){$ENDIF}
                    {$IFDEF LINUX}QIW_TXT{$ENDIF};
  rbtCSV.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_CSV){$ENDIF}
                    {$IFDEF LINUX}QIW_CSV{$ENDIF};
  laComma.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Comma){$ENDIF}
                     {$IFDEF LINUX}QIW_Comma{$ENDIF};
  laQuote.Caption := QImportLoadStr(QIW_Quote);
  laSourceFileName.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_FileName){$ENDIF}
                              {$IFDEF LINUX}QIW_FileName{$ENDIF};
  laTemplateFileNameTag.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TemplateFileName){$ENDIF}
                                   {$IFDEF LINUX}QIW_TemplateFileName{$ENDIF}; ;
  odTemplate.Filter := {$IFDEF WIN32}QImportLoadStr(QIF_TEMPLATE){$ENDIF}
                       {$IFDEF LINUX}QIF_TEMPLATE{$ENDIF};
  bHelp.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Help){$ENDIF}
                   {$IFDEF LINUX}QIW_Help{$ENDIF};
  bBack.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Back){$ENDIF}
                   {$IFDEF LINUX}QIW_Back{$ENDIF};
  bNext.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Next){$ENDIF}
                   {$IFDEF LINUX}QIW_Next{$ENDIF};
  bCancel.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Cancel){$ENDIF}
                     {$IFDEF LINUX}QIW_Cancel{$ENDIF};
  bOk.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Execute){$ENDIF}
                 {$IFDEF LINUX}QIW_Execute{$ENDIF};
  gbTemplateOptions.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TemplateOptions){$ENDIF}
                               {$IFDEF LINUX}QIW_TemplateOptions{$ENDIF};
  chGoToLastPage.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_GoToLastPage){$ENDIF}
                            {$IFDEF LINUX}QIW_GoToLastPage{$ENDIF};
  chAutoSaveTemplate.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_AutoSaveTemplate){$ENDIF}
                                {$IFDEF LINUX}QIW_AutoSaveTemplate{$ENDIF};
  btnLoadTemplate.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_LoadTemplate){$ENDIF}
                             {$IFDEF LINUX}QIW_LoadTemplate{$ENDIF};
  //-----
  lvTXTFields.Columns[0].Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TXT_Fields){$ENDIF}
                                    {$IFDEF LINUX}QIW_TXT_Fields{$ENDIF};
  lvTXTFields.Columns[1].Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TXT_Fields_Pos){$ENDIF}
                                    {$IFDEF LINUX}QIW_TXT_Fields_Pos{$ENDIF};
  lvTXTFields.Columns[2].Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TXT_Fields_Size){$ENDIF}
                                    {$IFDEF LINUX}QIW_TXT_Fields_Size{$ENDIF};
  tbtTXTClear.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_TXT_Clear){$ENDIF}
                      {$IFDEF LINUX}QIW_TXT_Clear{$ENDIF};
  laTXTSkipLines.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TXT_SkipLines){$ENDIF}
                            {$IFDEF LINUX}QIW_TXT_SkipLines{$ENDIF};
  //-----
  lvCSVFields.Columns[0].Caption := {$IFDEF WIN32}QImportLoadStr(QIW_CSV_Fields){$ENDIF}
                                    {$IFDEF LINUX}QIW_CSV_Fields{$ENDIF};
  laCSVColNumber.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_CSV_ColNumber){$ENDIF}
                            {$IFDEF LINUX}QIW_CSV_ColNumber{$ENDIF};
  laCSVSkipLines.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_CSV_SkipLines){$ENDIF}
                            {$IFDEF LINUX}QIW_CSV_SkipLines{$ENDIF};
  tbtCSVAutoFill.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_CSV_AutoFill){$ENDIF}
                         {$IFDEF LINUX}QIW_CSV_AutoFill{$ENDIF};
  tbtCSVClear.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_CSV_Clear){$ENDIF}
                      {$IFDEF LINUX}QIW_CSV_Clear{$ENDIF};
  //-----
  bDBFAdd.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DBF_Add){$ENDIF}
                     {$IFDEF LINUX}QIW_DBF_Add{$ENDIF};
  bDBFAutoFill.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DBF_AutoFill){$ENDIF}
                          {$IFDEF LINUX}QIW_DBF_AutoFill{$ENDIF};
  bDBFRemove.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DBF_Remove){$ENDIF}
                        {$IFDEF LINUX}QIW_DBF_Remove{$ENDIF};
  bDBFClear.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DBF_Clear){$ENDIF}
                       {$IFDEF LINUX}QIW_DBF_Clear{$ENDIF};
  chDBFSkipDeleted.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DBF_SkipDeleted){$ENDIF}
                              {$IFDEF LINUX}QIW_DBF_SkipDeleted{$ENDIF};
  //-----
  bXMLAdd.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XML_Add){$ENDIF}
                     {$IFDEF LINUX}QIW_XML_Add{$ENDIF};
  bXMLAutoFill.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XML_AutoFill){$ENDIF}
                          {$IFDEF LINUX}QIW_XML_AutoFill{$ENDIF};
  bXMLRemove.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XML_Remove){$ENDIF}
                        {$IFDEF LINUX}QIW_XML_Remove{$ENDIF};
  bXMLClear.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XML_Clear){$ENDIF}
                       {$IFDEF LINUX}QIW_XML_Clear{$ENDIF};
  chXMLWriteOnFly.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XML_WriteOnFly){$ENDIF}
                             {$IFDEF LINUX}QIW_XML_WriteOnFly{$ENDIF};
  //-----
  lvXLSFields.Columns[0].Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_Fields){$ENDIF}
                                    {$IFDEF LINUX}QIW_XLS_Fields{$ENDIF};
  lvXLSRanges.Columns[0].Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_Ranges){$ENDIF}
                                    {$IFDEF LINUX}QIW_XLS_Ranges{$ENDIF};
  tbtXLSAddRange.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_AddRange){$ENDIF}
                         {$IFDEF LINUX}QIW_XLS_AddRange{$ENDIF};
  tbtXLSEditRange.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_EditRange){$ENDIF}
                          {$IFDEF LINUX}QIW_XLS_EditRange{$ENDIF};
  tbtXLSDelRange.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_DelRange){$ENDIF}
                         {$IFDEF LINUX}QIW_XLS_DelRange{$ENDIF};
  tbtXLSMoveRangeUp.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_MoveRangeUp){$ENDIF}
                            {$IFDEF LINUX}QIW_XLS_MoveRangeUp{$ENDIF};
  tbtXLSMoveRangeDown.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_MoveRangeDown){$ENDIF}
                              {$IFDEF LINUX}QIW_XLS_MoveRangeDown{$ENDIF};
  laXLSSkipCols.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_SkipCols){$ENDIF}
                           {$IFDEF LINUX}QIW_XLS_SkipCols{$ENDIF};
  laXLSSkipRows.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_SkipRows){$ENDIF}
                           {$IFDEF LINUX}QIW_XLS_SkipRows{$ENDIF};
  tbtXLSAutoFillCols.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_AutoFillCols){$ENDIF}
                             {$IFDEF LINUX}QIW_XLS_AutoFillCols{$ENDIF};
  tbtXLSAutoFillRows.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_AutoFillRows){$ENDIF}
                             {$IFDEF LINUX}QIW_XLS_AutoFillRows{$ENDIF};
  tbtXLSClearFieldRanges.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_ClearFieldRanges){$ENDIF}
                                 {$IFDEF LINUX}QIW_XLS_ClearFieldRanges{$ENDIF};
  tbtXLSClearAllRanges.Hint := {$IFDEF WIN32}QImportLoadStr(QIW_XLS_ClearAllRanges){$ENDIF}
                               {$IFDEF LINUX}QIW_XLS_ClearAllRanges{$ENDIF};
  //-----
  tshBaseFormats.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_BaseFormats){$ENDIF}
                            {$IFDEF LINUX}QIW_BaseFormats{$ENDIF};
  grpDateTimeFormats.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DateTimeFormats){$ENDIF}
                                {$IFDEF LINUX}QIW_DateTimeFormats{$ENDIF};
  grpSeparators.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_Separators){$ENDIF}
                           {$IFDEF LINUX}QIW_Separators{$ENDIF};
  laDecimalSeparator.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DecimalSeparator){$ENDIF}
                                {$IFDEF LINUX}QIW_DecimalSeparator{$ENDIF};
  laThousandSeparator.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_ThousandSeparator){$ENDIF}
                                 {$IFDEF LINUX}QIW_ThousandSeparator{$ENDIF};
  laShortDateFormat.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_ShortDateFormat){$ENDIF}
                               {$IFDEF LINUX}QIW_ShortDateFormat{$ENDIF};
  laLongDateFormat.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_LongDateFormat){$ENDIF}
                              {$IFDEF LINUX}QIW_LongDateFormat{$ENDIF};
  laDateSeparator.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_DateSeparator){$ENDIF}
                             {$IFDEF LINUX}QIW_DateSeparator{$ENDIF};
  laShortTimeFormat.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_ShortTimeFormat){$ENDIF}
                               {$IFDEF LINUX}QIW_ShortTimeFormat{$ENDIF};
  laLongTimeFormat.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_LongTimeFormat){$ENDIF}
                              {$IFDEF LINUX}QIW_LongTimeFormat{$ENDIF};
  laTimeSeparator.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_TimeSeparator){$ENDIF}
                             {$IFDEF LINUX}QIW_TimeSeparator{$ENDIF};

  laBooleanTrue.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_BooleanTrue){$ENDIF}
                           {$IFDEF LINUX}QIW_BooleanTrue{$ENDIF};
  mmBooleanTrue.Lines.Assign(Wizard.Formats.BooleanTrue);
  laBooleanFalse.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_BooleanFalse){$ENDIF}
                            {$IFDEF LINUX}QIW_BooleanFalse{$ENDIF};
  mmBooleanFalse.Lines.Assign(Wizard.Formats.BooleanFalse);
  laNullValues.Caption := {$IFDEF WIN32}QImportLoadStr(QIW_NullValue){$ENDIF}
                          {$IFDEF LINUX}QIW_NullValue{$ENDIF};
  mmNullValues.Lines.Assign(Wizard.Formats.NullValues);
  //-----------------------
  tshDataFormats.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_Caption){$ENDIF}
                            {$IFDEF LINUX}QIWDF_Caption{$ENDIF};
  lstFormatFields.Columns[0].Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_Fields){$ENDIF}
                                        {$IFDEF LINUX}QIWDF_Fields{$ENDIF};
  tsFieldTuning.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_Tuning){$ENDIF}
                           {$IFDEF LINUX}QIWDF_Tuning{$ENDIF};
  laGeneratorValue.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_GeneratorValue){$ENDIF}
                              {$IFDEF LINUX}QIWDF_GeneratorValue{$ENDIF};
  laGeneratorStep.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_GeneratorStep){$ENDIF}
                             {$IFDEF LINUX}QIWDF_GeneratorStep{$ENDIF};
  laConstantValue.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_ConstantValue){$ENDIF}
                             {$IFDEF LINUX}QIWDF_ConstantValue{$ENDIF};
  laNullValue.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_NullValue){$ENDIF}
                         {$IFDEF LINUX}QIWDF_NullValue{$ENDIF};
  laDefaultValue.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_DefaultValue){$ENDIF}
                            {$IFDEF LINUX}QIWDF_DefaultValue{$ENDIF};
  laLeftQuote.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_LeftQuote){$ENDIF}
                         {$IFDEF LINUX}QIWDF_LeftQuote{$ENDIF};
  laRightQuote.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_RightQuote){$ENDIF}
                          {$IFDEF LINUX}QIWDF_RightQuote{$ENDIF};
  laQuoteAction.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_QuoteAction){$ENDIF}
                           {$IFDEF LINUX}QIWDF_QuoteAction{$ENDIF};
  N := cmbQuoteAction.ItemIndex;
  cmbQuoteAction.Items[0] := {$IFDEF WIN32}QImportLoadStr(QIWDF_QuoteNone){$ENDIF}
                             {$IFDEF LINUX}QIWDF_QuoteNone{$ENDIF};
  cmbQuoteAction.Items[1] := {$IFDEF WIN32}QImportLoadStr(QIWDF_QuoteAdd){$ENDIF}
                             {$IFDEF LINUX}QIWDF_QuoteAdd{$ENDIF};
  cmbQuoteAction.Items[2] := {$IFDEF WIN32}QImportLoadStr(QIWDF_QuoteRemove){$ENDIF}
                             {$IFDEF LINUX}QIWDF_QuoteRemove{$ENDIF};
  cmbQuoteAction.ItemIndex := N;
  laCharCase.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_CharCase){$ENDIF}
                        {$IFDEF LINUX}QIWDF_CharCase{$ENDIF};
  laCharSet.Caption := {$IFDEF WIN32}QImportLoadStr(QIWDF_CharSet){$ENDIF}
                       {$IFDEF LINUX}QIWDF_CharSet{$ENDIF};
  N := cmbCharCase.ItemIndex;
  cmbCharCase.Items[0] := {$IFDEF WIN32}QImportLoadStr(QIWDF_CharCaseNone){$ENDIF}
                          {$IFDEF LINUX}QIWDF_CharCaseNone{$ENDIF};
  cmbCharCase.Items[1] := {$IFDEF WIN32}QImportLoadStr(QIWDF_CharCaseUpper){$ENDIF}
                          {$IFDEF LINUX}QIWDF_CharCaseUpper{$ENDIF};
  cmbCharCase.Items[2] := {$IFDEF WIN32}QImportLoadStr(QIWDF_CharCaseLower){$ENDIF}
                          {$IFDEF LINUX}QIWDF_CharCaseLower{$ENDIF};
  cmbCharCase.Items[3] := {$IFDEF WIN32}QImportLoadStr(QIWDF_CharCaseUpperFirst){$ENDIF}
                          {$IFDEF LINUX}QIWDF_CharCaseUpperFirst{$ENDIF};
  cmbCharCase.Items[4] := {$IFDEF WIN32}QImportLoad

⌨️ 快捷键说明

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