📄 qimport2wizard.pas
字号:
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 + -