diff --git a/foxbin2prg.prg b/foxbin2prg.prg
index 392d0ed..7159640 100644
--- a/foxbin2prg.prg
+++ b/foxbin2prg.prg
@@ -234,7 +234,12 @@
* 16/02/2021 Lutz Scheffler conversion prg -> vcx, files per class could create one class multiple times
* mods
* 14/02/2021 Lutz Scheffler inserted option UseFilesPerDBC to split DBC processing from vcx / scx
-* xx/xx/2021 Lutz Scheffler inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx
+* 15/02/2021 Lutz Scheffler inserted option RedirectFilePerDBCToMain to split DBC processing from vcx / scx
+* 15/02/2021 Lutz Scheffler inserted option ItemPerDBCCheck to split DBC processing from vcx / scx
+* the tree above are straight forward, so no extra comment ar within the code
+* 19/02/2021 Lutz Scheffler inserted option DBF_BinChar_Base64 to allow processing of NoCPTrans fields in non base64 way
+* 20/02/2021 Lutz Scheffler inserted option DBF_IncludeDeleted to allow including deleted records of DBF
+
*
*
@@ -547,6 +552,8 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb
#DEFINE C_RECORDS_F ''
#DEFINE C_RECORD_I '' && *** FDBOZZO 2016/06/06: Quitado el REGNUM para evitar diferencias innecesarias
#DEFINE C_RECORD_F ''
+#DEFINE C_DEL_RECORD_I '' && *** Lutz Scheffler 2021/02/20: Deleted Record, just mark like this, no fuzz with field name
+#DEFINE C_DEL_RECORD_F ''
#DEFINE C_RECNO_I ''
#DEFINE C_RECNO_F ''
@@ -774,11 +781,6 @@ DEFINE CLASS c_foxbin2prg AS Session
+ [] ;
+ [] ;
+ [] ;
-;&& SF
- + [] ;
- + [] ;
- + [] ;
-;&& /SF
+ [] ;
+ [] ;
+ [] ;
@@ -822,6 +824,14 @@ DEFINE CLASS c_foxbin2prg AS Session
+ []
+*!* ;&& SF
+*!* + [] ;
+*!* + [] ;
+*!* + [] ;
+*!* + [] ;
+*!* + [] ;
+*!* ;&& /SF
+
DIMENSION a_ProcessedFiles(1, 6)
PROTECTED n_CFG_Actual, l_Main_CFG_Loaded, o_Configuration, l_CFG_CachedAccess
*--
@@ -869,11 +879,17 @@ DEFINE CLASS c_foxbin2prg AS Session
l_RemoveZOrderSetFromProps = .F.
l_Recompile = .T.
n_UseClassPerFile = 0
-* SF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - splitt of DBC separated from VCX/SCX
+* - new operations of DBF
n_UseFilesPerDBC = 0
l_RedirectFilePerDBCToMain = .F.
l_ItemPerDBCCheck = .F.
-* /SF
+ l_DBF_BinChar_Base64 = .T.
+ l_DBF_IncludeDeleted = .F.
+*!* /Changed by: Lutz Scheffler 21.02.2021
n_PRG_Compat_Level = 0 && 0=COMPATIBLE WITH FoxBin2Prg v1.19.49 and earlier, 1=Include HELPSTRING
n_ExcludeDBFAutoincNextval = 0
l_ClassPerFileCheck = .F.
@@ -1314,7 +1330,11 @@ DEFINE CLASS c_foxbin2prg AS Session
ENDPROC
-* SF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - splitt of DBC separated from VCX/SCX
+* - new operations of DBF
PROCEDURE n_UseFilesPerDBC_ACCESS
IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
RETURN THIS.n_UseFilesPerDBC
@@ -1340,7 +1360,25 @@ DEFINE CLASS c_foxbin2prg AS Session
RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).l_ItemPerDBCCheck, THIS.l_ItemPerDBCCheck )
ENDIF
ENDPROC
-* /SF
+
+
+ PROCEDURE l_DBF_BinChar_Base64_ACCESS
+ IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
+ RETURN THIS.l_DBF_BinChar_Base64
+ ELSE
+ RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).l_DBF_BinChar_Base64, THIS.l_DBF_BinChar_Base64 )
+ ENDIF
+ ENDPROC
+
+
+ PROCEDURE l_DBF_IncludeDeleted_ACCESS
+ IF THIS.n_CFG_Actual = 0 OR ISNULL( THIS.o_Configuration( THIS.n_CFG_Actual ) )
+ RETURN THIS.l_DBF_IncludeDeleted
+ ELSE
+ RETURN NVL( THIS.o_Configuration( THIS.n_CFG_Actual ).l_DBF_IncludeDeleted, THIS.l_DBF_IncludeDeleted )
+ ENDIF
+ ENDPROC
+*!* /Changed by: Lutz Scheffler 21.02.2021
PROCEDURE l_RedirectClassPerFileToMain_ACCESS
@@ -2304,7 +2342,11 @@ DEFINE CLASS c_foxbin2prg AS Session
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > UseClassPerFile: ' + TRANSFORM(lcValue) )
ENDIF
-* SF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - splitt of DBC separated from VCX/SCX
+* - new operations of DBF
CASE LEFT( laConfig(m.I), 15 ) == LOWER('UseFilesPerDBC:')
lcValue = ALLTRIM( SUBSTR( laConfig(m.I), 16 ) )
IF INLIST( lcValue, '0', '1' ) THEN
@@ -2325,7 +2367,21 @@ DEFINE CLASS c_foxbin2prg AS Session
lo_CFG.l_ItemPerDBCCheck = ( TRANSFORM(lcValue) == '1' )
.writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > ItemPerDBCCheck: ' + TRANSFORM(lcValue) )
ENDIF
-* /SF
+
+ CASE LEFT( laConfig(m.I), 19 ) == LOWER('DBF_BinChar_Base64:')
+ lcValue = ALLTRIM( SUBSTR( laConfig(m.I), 20 ) )
+ IF INLIST( lcValue, '0', '1' ) THEN
+ lo_CFG.l_DBF_BinChar_Base64 = ( TRANSFORM(lcValue) == '1' )
+ .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > DBF_BinChar_Base64: ' + TRANSFORM(lcValue) )
+ ENDIF
+
+ CASE LEFT( laConfig(m.I), 19 ) == LOWER('DBF_IncludeDeleted:')
+ lcValue = ALLTRIM( SUBSTR( laConfig(m.I), 20 ) )
+ IF INLIST( lcValue, '0', '1' ) THEN
+ lo_CFG.l_DBF_IncludeDeleted = ( TRANSFORM(lcValue) == '1' )
+ .writeLog( C_TAB + JUSTFNAME(lcConfigFile) + ' > DBF_IncludeDeleted: ' + TRANSFORM(lcValue) )
+ ENDIF
+*!* /Changed by: Lutz Scheffler 21.02.2021
CASE LEFT( laConfig(m.I), 18 ) == LOWER('ClassPerFileCheck:')
lcValue = ALLTRIM( SUBSTR( laConfig(m.I), 19 ) )
@@ -2538,11 +2594,17 @@ DEFINE CLASS c_foxbin2prg AS Session
.writeLog( C_TAB + 'l_NoTimestamps: ' + TRANSFORM(.l_NoTimestamps) )
.writeLog( C_TAB + 'l_ClearUniqueID: ' + TRANSFORM(.l_ClearUniqueID) )
.writeLog( C_TAB + 'n_UseClassPerFile: ' + TRANSFORM(.n_UseClassPerFile) )
-* SF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - splitt of DBC separated from VCX/SCX
+* - new operations of DBF
.writeLog( C_TAB + 'n_UseFilesPerDBC: ' + TRANSFORM(.n_UseFilesPerDBC) )
.writeLog( C_TAB + 'l_RedirectFilePerDBCToMain: ' + TRANSFORM(.l_RedirectFilePerDBCToMain) )
.writeLog( C_TAB + 'l_ItemPerDBCCheck: ' + TRANSFORM(.l_ItemPerDBCCheck) )
-* /SF
+ .writeLog( C_TAB + 'l_DBF_BinChar_Base64: ' + TRANSFORM(.l_DBF_BinChar_Base64) )
+ .writeLog( C_TAB + 'l_DBF_IncludeDeleted: ' + TRANSFORM(.l_DBF_IncludeDeleted) )
+*!* /Changed by: Lutz Scheffler 21.02.2021
.writeLog( C_TAB + 'l_ClassPerFileCheck: ' + TRANSFORM(.l_ClassPerFileCheck) )
.writeLog( C_TAB + 'l_RedirectClassPerFileToMain: ' + TRANSFORM(.l_RedirectClassPerFileToMain) )
.writeLog( C_TAB + 'n_RedirectClassType: ' + TRANSFORM(.n_RedirectClassType) )
@@ -2733,6 +2795,27 @@ DEFINE CLASS c_foxbin2prg AS Session
THIS.writeLog(' ' + JUSTFNAME(lcTableCFG) + ' > DBF_Conversion_Support: ' + TRANSFORM(to_out_DBF_CFG.DBF_Conversion_Support) )
ENDIF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - new operations of DBF
+*!* /Changed by: Lutz Scheffler 21.02.2021
+ CASE LEFT( lcConfigItem, 20 ) == LOWER('DBF_BinChar_Base64:')
+ IF INLIST( laConfig(m.I), '0', '1' ) THEN
+ to_out_DBF_CFG.l_DBF_BinChar_Base64 = ( TRANSFORM(laConfig(m.I)) == '1' )
+ IF tlGenerateLog THEN
+ THIS.writeLog(' ' + JUSTFNAME(lcTableCFG) + ' > DBF_BinChar_Base64: ' + TRANSFORM(to_out_DBF_CFG.l_DBF_BinChar_Base64) )
+ ENDIF
+ ENDIF
+
+ CASE LEFT( lcConfigItem, 20 ) == LOWER('DBF_IncludeDeleted:')
+ IF INLIST( laConfig(m.I), '0', '1' ) THEN
+ to_out_DBF_CFG.l_DBF_IncludeDeleted = ( TRANSFORM(laConfig(m.I)) == '1' )
+ IF tlGenerateLog THEN
+ THIS.writeLog(' ' + JUSTFNAME(lcTableCFG) + ' > DBF_IncludeDeleted: ' + TRANSFORM(to_out_DBF_CFG.l_DBF_IncludeDeleted) )
+ ENDIF
+ ENDIF
+*!* /Changed by: Lutz Scheffler 21.02.2021
ENDCASE
ENDFOR
@@ -6325,9 +6408,16 @@ DEFINE CLASS c_conversor_base AS Custom
SET SAFETY OFF
SET MULTILOCKS ON
SET TABLEPROMPT OFF
-* SF deactivated to keep standard
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* Operation set to standard value
+* anywhere else it will respect this to,
+* so it's in the general settings or not
+
* SET BLOCKSIZE TO 0
-* /SF
+
+*!* /Changed by: Lutz Scheffler 21.02.2021
+
SET EXACT ON
IF NOT EMPTY( ON("ESCAPE") ) THEN
SET ESCAPE ON
@@ -12811,7 +12901,16 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin
IF llImportData AND lnCodeLines > 1 AND toTable._I > 1 THEN
*-- Identifico los registros de la tabla y los agrego
I = toTable._I - 1
- toTable.analyzeCodeBlock( C_TABLE_I, @laCodeLines, @m.I, lnCodeLines, @toFoxBin2Prg )
+
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - new operations of DBF
+ toTable.analyzeCodeBlock( C_TABLE_I, @laCodeLines, @m.I, lnCodeLines, @toFoxBin2Prg,;
+ IIF( m.lnFileCount = 1, NVL( m.loDBF_CFG.l_DBF_BinChar_Base64, m.toFoxBin2Prg.l_DBF_BinChar_Base64 ), m.toFoxBin2Prg.l_DBF_BinChar_Base64 ),;
+ IIF( m.lnFileCount = 1, NVL( m.loDBF_CFG.l_DBF_IncludeDeleted, m.toFoxBin2Prg.l_DBF_IncludeDeleted ), m.toFoxBin2Prg.l_DBF_IncludeDeleted ) )
+*!* /Changed by: Lutz Scheffler 21.02.2021
+
ENDIF
IF NOT EMPTY(lcAlterTable)
@@ -17702,7 +17801,9 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg
ENDIF
loTextStream.WriteLine( C_FB2PRG_CODE ) && Replace VFP low-level file funcs.because the 8-16KB limit.
+* SF, call table
loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg )
+
loTextStream.Close()
DO CASE
@@ -24217,8 +24318,10 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
* I (!@ IN/OUT) Número de línea en análisis
* tnCodeLines (!@ IN ) Cantidad de líneas del programa analizado
* toFoxBin2Prg (@! IN ) Referencia de toFoxBin2Prg
+ * tl_DBF_BinChar_Base64 out of settings (folder or per-file) Transform NocPTrans fields base64
+ * tl_DBF_IncludeDeleted out of settings (folder or per-file) Include deleted records
*---------------------------------------------------------------------------------------------------
- LPARAMETERS tcLine, taCodeLines, I, tnCodeLines, toFoxBin2Prg
+ LPARAMETERS tcLine, taCodeLines, I, tnCodeLines, toFoxBin2Prg, tl_DBF_BinChar_Base64, tl_DBF_IncludeDeleted
TRY
LOCAL llBloqueEncontrado, lcPropName, lcValue, llFieldsEvaluated, llIndexesEvaluated ;
@@ -24264,8 +24367,13 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
ENDIF
loRecords = ._Records
- loRecords.analyzeCodeBlock( @tcLine, @taCodeLines, @m.I, tnCodeLines, ._Fields, @toFoxBin2Prg )
-
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - new operations of DBF
+ loRecords.analyzeCodeBlock( @tcLine, @taCodeLines, @m.I, tnCodeLines, ._Fields, @toFoxBin2Prg,;
+ tl_DBF_BinChar_Base64, tl_DBF_IncludeDeleted )
+*!* /Changed by: Lutz Scheffler 21.02.2021
OTHERWISE && Otro valor
*-- Estructura a reconocer:
* ID
@@ -24396,7 +24504,14 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
loRecords = THIS._Records
*FWRITE( toFoxBin2Prg.n_FileHandle, lcText )
loTextStream.WriteLine( lcText ) && Replace VFP low-level file funcs.because the 8-16KB limit.
- loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition, @toFoxBin2Prg)
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - new operations of DBF
+ loRecords.toText(@laFields, lnFieldCount, lc_DBF_Conversion_Condition, @toFoxBin2Prg,;
+ IIF( m.lnFileCount = 1, NVL( m.loDBF_CFG.l_DBF_BinChar_Base64, m.toFoxBin2Prg.l_DBF_BinChar_Base64 ), m.toFoxBin2Prg.l_DBF_BinChar_Base64 ),;
+ IIF( m.lnFileCount = 1, NVL( m.loDBF_CFG.l_DBF_IncludeDeleted, m.toFoxBin2Prg.l_DBF_IncludeDeleted ), m.toFoxBin2Prg.l_DBF_IncludeDeleted ))
+*!* /Changed by: Lutz Scheffler 21.02.2021
lcText = ''
ENDIF
@@ -25017,8 +25132,10 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE
* tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
* toFields (@! IN ) Estructura de los campos
* toFoxBin2Prg (@! IN ) Referencia de toFoxBin2Prg
+ * tl_DBF_BinChar_Base64 out of settings (folder or per-file) Transform NocPTrans fields base64
+ * tl_DBF_IncludeDeleted out of settings (folder or per-file) Include deleted records
*---------------------------------------------------------------------------------------------------
- LPARAMETERS tcLine, taCodeLines, I, tnCodeLines, toFields, toFoxBin2Prg
+ LPARAMETERS tcLine, taCodeLines, I, tnCodeLines, toFields, toFoxBin2Prg, tl_DBF_BinChar_Base64, tl_DBF_IncludeDeleted
#IF .F.
LOCAL toFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG'
@@ -25053,7 +25170,8 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE
CASE ' 8*1024 THEN
@@ -25145,7 +25296,8 @@ DEFINE CLASS CL_DBF_RECORDS AS CL_COL_BASE
*FFLUSH( toFoxBin2Prg.n_FileHandle, .T. )
ENDIF
ENDSCAN
-
+ SET DELETED &lcOldDeleted.
+
toFoxBin2Prg.updateProgressbar( 'Data exported! ', 1+(lnReccount/lnReccount), 3, 2 )
lcText = ''
@@ -25210,8 +25362,18 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
* I (@! IN/OUT) Número de línea en análisis
* tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
* toFields (@! IN ) Estructura de los campos
+ * tl_DBF_BinChar_Base64 out of settings (folder or per-file) Transform NocPTrans fields base64
*---------------------------------------------------------------------------------------------------
- LPARAMETERS tcLine, taCodeLines, I, tnCodeLines, toFields
+* SF, added code to alternative prosessing NoCPTrans via tl_DBF_BinChar_Base64
+* SF, added code parse out deleted records.
+* deleted records should only occur if calling method sends them, so we just accept
+
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* general note:
+* - added code to handle NoCPTrans coding with or without bas64, just like the flag 4096 of CURSORTOXML
+
+ LPARAMETERS tcLine, taCodeLines, I, tnCodeLines, toFields, tl_DBF_BinChar_Base64
#IF .F.
LOCAL toFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG'
@@ -25222,7 +25384,13 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
, loField as CL_DBF_FIELD OF 'FOXBIN2PRG.PRG'
STORE '' TO lcFieldName, lcValue
- IF 'VALOR
@@ -25273,16 +25450,18 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
luValue = STRCONV(lcValue,14)
CASE lcFieldType == 'V' && Varchar
- IF llNoCPTran
+ IF llNoCPTran AND m.tl_DBF_BinChar_Base64 THEN
*-- If NoCPTran, then must encode in b64binary
+ *-- SF: might, not must, see XMLTOCURSOR, flag 4096
luValue = STRCONV(lcValue,14)
ELSE
luValue = .Decode(lcValue)
ENDIF
CASE lcFieldType == 'M' && Memo
- IF llNoCPTran
+ IF llNoCPTran AND m.tl_DBF_BinChar_Base64 THEN
*-- If NoCPTran, then must encode in b64binary
+ *-- SF: might, not must, see XMLTOCURSOR, flag 4096
luValue = STRCONV(lcValue,14)
ELSE
IF llOneLineOnly AND ATC('> <>
+ <<>> <>
ENDTEXT
FOR I = 1 TO tnField_Count
lcField = taFields[m.I, 1]
lcFieldType = taFields[m.I, 2]
llNoCPTran = taFields[m.I, 6]
-
IF lcFieldType == 'G'
*-- Saltar campos de tipo General
ELSE
@@ -25408,24 +25611,27 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
luValue = STRCONV(luValue,13)
CASE lcFieldType == 'V' && Varchar
- IF llNoCPTran THEN
+ IF llNoCPTran AND m.tl_DBF_BinChar_Base64 THEN
*-- If NoCPTran, then must encode in b64binary
+ *-- SF: might, not must, see XMLTOCURSOR, flag 4096
luValue = STRCONV(luValue,13)
ELSE
luValue = .Encode(luValue)
ENDIF
CASE lcFieldType $ 'C' && Character
- IF llNoCPTran THEN
+ IF llNoCPTran AND m.tl_DBF_BinChar_Base64 THEN
*-- If NoCPTran, then must encode in b64binary
+ *-- SF: might, not must, see XMLTOCURSOR, flag 4096
luValue = STRCONV(luValue,13)
ELSE
luValue = .Encode(RTRIM(luValue))
ENDIF
CASE lcFieldType $ 'M' && Memo
- IF llNoCPTran THEN
+ IF llNoCPTran AND m.tl_DBF_BinChar_Base64 THEN
*-- If NoCPTran, then must encode in b64binary
+ *-- SF: might, not must, see XMLTOCURSOR, flag 4096
luValue = STRCONV(luValue,13)
ELSE
luValue = .Encode(RTRIM(luValue), .T.)
@@ -25440,7 +25646,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
NEXT
TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 additive
- <<>> <>
+ <<>> <>
ENDTEXT
ENDWITH
@@ -28647,6 +28853,8 @@ DEFINE CLASS CL_CFG AS CUSTOM
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ + [] ;
; && /SF
+ [] ;
+ [] ;
@@ -28689,11 +28897,18 @@ DEFINE CLASS CL_CFG AS CUSTOM
l_RemoveNullCharsFromCode = NULL
l_RemoveZOrderSetFromProps = NULL
n_UseClassPerFile = NULL
-* SF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - splitt of DBC separated from VCX/SCX
+* - new operations of DBF
+*!* /Changed by: Lutz Scheffler 21.02.2021
n_UseFilesPerDBC = NULL
l_RedirectFilePerDBCToMain = NULL
l_ItemPerDBCCheck = NULL
-* /SF
+ l_DBF_BinChar_Base64 = NULL
+ l_DBF_IncludeDeleted = NULL
+*!* /Changed by: Lutz Scheffler 21.02.2021
l_ClassPerFileCheck = NULL
n_ExtraBackupLevels = NULL
c_VC2 = NULL
@@ -28745,11 +28960,17 @@ DEFINE CLASS CL_CFG AS CUSTOM
.l_RemoveNullCharsFromCode = toParentCFG.l_RemoveNullCharsFromCode
.l_RemoveZOrderSetFromProps = toParentCFG.l_RemoveZOrderSetFromProps
.n_UseClassPerFile = toParentCFG.n_UseClassPerFile
-* SF
+*!* Changed by: Lutz Scheffler 21.02.2021
+*!* change date="{^2021-02-21,10:57:00}"
+* additional options controlling
+* - splitt of DBC separated from VCX/SCX
+* - new operations of DBF
.n_UseFilesPerDBC = toParentCFG.n_UseFilesPerDBC
.l_RedirectFilePerDBCToMain = toParentCFG.l_RedirectFilePerDBCToMain
.l_ItemPerDBCCheck = toParentCFG.l_ItemPerDBCCheck
-* /SF
+ .l_DBF_BinChar_Base64 = toParentCFG.l_DBF_BinChar_Base64
+ .l_DBF_IncludeDeleted = toParentCFG.l_DBF_IncludeDeleted
+*!* /Changed by: Lutz Scheffler 21.02.2021
.l_ClassPerFileCheck = toParentCFG.l_ClassPerFileCheck
.n_ExtraBackupLevels = toParentCFG.n_ExtraBackupLevels
.c_VC2 = toParentCFG.c_VC2
@@ -29007,6 +29228,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>> && Note: recration only if RedirectFilePerDBCToMain is 1
<<>>RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2
<<>>ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion
+ <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
+ <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records
<<>>
<<>>-- Class per file options (UseClassPerFile: 1)
<<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files
@@ -29028,6 +29251,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>>DBF_Conversion_Support: <1,2,4,8> && See same config in upper side
<<>>DBF_Conversion_Order: && Field expresion. ie: name+str(age,3)
<<>>DBF_Conversion_Condition: && Logical expression. ie: age > 10 AND NOT DELETED()
+ <<>>DBF_BinChar_Base64: <0,1> && See same config in upper side
+ <<>>DBF_IncludeDeleted: <0,1> && See same config in upper side
<<>>
ENDTEXT
.C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG est seulement pour Visual FoxPro 9.0!"
@@ -29182,6 +29407,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>> && Note: recration only if RedirectFilePerDBCToMain is 1
<<>>RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2
<<>>ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion
+ <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
+ <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records
<<>>
<<>>-- Class per file options (UseClassPerFile: 1)
<<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files
@@ -29203,6 +29430,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>>DBF_Conversion_Support: <1,2,4,8> && Ver esta misma configuración más arriba
<<>>DBF_Conversion_Order: && Expresión de campo. ej: nombre+str(edad,3)
<<>>DBF_Conversion_Condition: && Expresión lógica. ej: edad > 10 AND NOT DELETED()
+ <<>>DBF_BinChar_Base64: <0,1> && See same config in upper side
+ <<>>DBF_IncludeDeleted: <0,1> && See same config in upper side
<<>>
ENDTEXT
.C_FOXBIN2PRG_JUST_VFP_9_LOC = "¡FOXBIN2PRG es solo para Visual FoxPro 9.0!"
@@ -29293,7 +29522,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_FILE_NOT_FOUND_LOC = "Datei nicht gefunden"
.C_FILENAME_LOC = "Datei"
.C_FOXBIN2PRG_ERROR_CAPTION_LOC = "FEHLER"
- .C_FOXBIN2PRG_SYNTAX_INFO_LOC = "SYNTAX AND PARAMETERS INFO"
+ .C_FOXBIN2PRG_SYNTAX_INFO_LOC = "SYNTAX UND PARAMETERS INFORMATION"
TEXT TO .C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<>>FoxBin2Prg Home Page and download: https://github.com/fdbozzo/foxbin2prg/wiki - Fernando D. Bozzo (2013.11.25)
<<>>
@@ -29357,6 +29586,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>> && Note: recration only if RedirectFilePerDBCToMain is 1
<<>>RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2
<<>>ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion
+ <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
+ <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records
<<>>
<<>>-- Class per file options (UseClassPerFile: 1)
<<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files
@@ -29378,6 +29609,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>>DBF_Conversion_Support: <1,2,4,8> && See same config in upper side
<<>>DBF_Conversion_Order: && Field expresion. ie: name+str(age,3)
<<>>DBF_Conversion_Condition: && Logical expression. ie: age > 10 AND NOT DELETED()
+ <<>>DBF_BinChar_Base64: <0,1> && See same config in upper side
+ <<>>DBF_IncludeDeleted: <0,1> && See same config in upper side
<<>>
ENDTEXT
.C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG arbeitet nur für Visual FoxPro 9.0!"
@@ -29394,7 +29627,7 @@ DEFINE CLASS CL_LANG AS Custom
.C_IS_A_DIRECTORY_LOC = "ist ein VERZEICHNIS"
.C_IS_UNSUPPORTED_LOC = "wird nicht unterstützt"
.C_LANGUAGE_LOC = "DE"
- .C_MAIN_EXECUTION_LOC = "HAUPTAUSFÜHRUNGS"
+ .C_MAIN_EXECUTION_LOC = "HAUPTAUSFÜHRUNG"
.C_MENU_NOT_IN_VFP9_FORMAT_LOC = "Menu [<>] ist NICHT in VFP 9 Format! - Bitte zuerst mit MODIFY MENU '<>' nach VFP 9 konvertieren."
.C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] gefunden"
.C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC = "* Programm für Großschreibungssetzung [<>] nicht gefunden"
@@ -29532,6 +29765,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>> && Note: recration only if RedirectFilePerDBCToMain is 1
<<>>RedirectFilePerDBCToMain 0 && 0=Don't redirect to file.dc2, 1=Redirect to file.tx2 when selecting file.item.*.dc2
<<>>ItemPerDBCCheck: 0 && 0=Don't check file.item.*.dc2 inclusion, 1=Check file.item.*.dc2 inclusion
+ <<>>DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default)
+ <<>>DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records
<<>>
<<>>-- Class per file options (UseClassPerFile: 1)
<<>>UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files
@@ -29553,6 +29788,8 @@ DEFINE CLASS CL_LANG AS Custom
<<>>DBF_Conversion_Support: <1,2,4,8> && See same config in upper side
<<>>DBF_Conversion_Order: && Field expresion. ie: name+str(age,3)
<<>>DBF_Conversion_Condition: && Logical expression. ie: age > 10 AND NOT DELETED()
+ <<>>DBF_BinChar_Base64: <0,1> && See same config in upper side
+ <<>>DBF_IncludeDeleted: <0,1> && See same config in upper side
<<>>
ENDTEXT
.C_FOXBIN2PRG_JUST_VFP_9_LOC = "FOXBIN2PRG is only for Visual FoxPro 9.0!"
@@ -29617,6 +29854,8 @@ DEFINE CLASS CL_DBF_CFG AS CUSTOM
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ + [] ;
+ []
#IF .F.
@@ -29628,6 +29867,8 @@ DEFINE CLASS CL_DBF_CFG AS CUSTOM
DBF_Conversion_Order = ''
DBF_Conversion_Condition = ''
DBF_Conversion_Support = NULL
+ l_DBF_BinChar_Base64 = .NULL.
+ l_DBF_IncludeDeleted = .NULL.
ENDDEFINE