Changeset: 163 v1.19.10

- Agregada parametrización para el soporte de conversión permitido por cada tipo de archivo (0=Ninguno, 1=Solo TX2, 2=TX2 y Binarios)
- Arreglo de seteo NoTimestamps por defecto
- EXPERIMENTAL: Nuevo parámetro de configuración "ClearUniqueID" en foxbin2prg.cfg para borrar el UniqueID de los binarios y versiones texto. Funciona bien y aparentemente FoxPro no hace uso de el, pero requiere más pruebas
- Ajuste de algunos casos de prueba FoxUnit
This commit is contained in:
fernando
2014-02-09 16:09:40 +01:00
8 changed files with 243 additions and 33 deletions

View File

@@ -1,4 +1,6 @@
26/01/2014 FOXBIN2PRG v1.19 FOR VISUAL FOXPRO 9 BINARIES Fernando D. Bozzo (fdbozzo@gmail.com)
Blog: http://fdbozzo.blogspot.com.es/
ESPAÑOL --------------------------------------------------------------------------------------------
@@ -42,6 +44,7 @@ Es necesario recompilar el programa para que se actualicen los textos con el arc
NOTA FINAL:
Este programa es Open Source y "libre", y como tal no ofrezco garantías de que cumpla con sus espectativas
o de que está libre de fallos, que intentaré solucionar si me reporta y mis obligaciones me lo permiten.
Project info and updated: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg
LICENCIA:
@@ -92,6 +95,7 @@ Recompiling is necesary to update the strings from the include file.
FINAL NOTE:
This program is Open Source and "libre", and I don't make any garanties that it fulfills your espectations
or that it will be free of bugs, that I will try to fix if my obligations let me do it.
Información del proyecto y actualizaciones: https://vfpx.codeplex.com/wikipage?title=FoxBin2Prg_es
LICENCE:

View File

@@ -107,6 +107,7 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
loCnv.DBF_Conversion_Support = 2
oFXU_LIB.copiarArchivosParaTest( lc_File )
@@ -176,6 +177,7 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
loCnv.DBF_Conversion_Support = 2
oFXU_LIB.copiarArchivosParaTest( lc_File )
@@ -246,6 +248,7 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
loCnv.DBF_Conversion_Support = 2
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )
@@ -316,6 +319,7 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
loCnv.DBF_Conversion_Support = 2
oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') )

View File

@@ -291,6 +291,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
loCnv.DBF_Conversion_Support = 2
loCnv.l_UseTimestamps = .T.
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
@@ -365,6 +367,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
loCnv.DBF_Conversion_Support = 2
loCnv.l_UseTimestamps = .T.
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )

View File

@@ -7,12 +7,23 @@
* DETAIL OF SUPPORTED VALUES / DETALLE DE VALORES SOPORTADOS
* If no values given, this are the defaults / Si no se proporcionan valores, estos son los predeterminados
*
* extension: xx2 && Default FoxBin2Prg extensions ends in '2' / Las extensiones por defecto de FoxBin2Prg terminan en '2'
* DontShowProgress: 0 && Show progress bar by default in multi-file processing / Mostrar barra de progreso por defecto en procesamiento multi-archivo
* DontShowErrors: 1 && Show message errors by default / Mostrar mensajes de error por defecto
* NoTimestamps: 1 && Crear timespampt by default for minimize differences / Vaciar Timestamps por defecto para minimizar diferencias
* Debug: 1 && Activate individual <file>.Log by default / Activar <archivo>.Log por defecto
* ExtraBackupLevels: 0 && By default 1 BAK is created. With this you can make more .N.BAK / Por defecto 1 BAK es creado. Con esto puede crear m<>s .N.BAK
* extension: xx2 && Default FoxBin2Prg extensions ends in '2' / Las extensiones por defecto de FoxBin2Prg terminan en '2'
* DontShowProgress: 0 && Show progress bar by default in multi-file processing / Mostrar barra de progreso por defecto en procesamiento multi-archivo
* DontShowErrors: 1 && Show message errors by default / Mostrar mensajes de error por defecto
* NoTimestamps: 1 && Crear timespampt by default for minimize differences / Vaciar Timestamps por defecto para minimizar diferencias
* Debug: 1 && Activate individual <file>.Log by default / Activar <archivo>.Log por defecto
* ExtraBackupLevels: 0 && By default 1 BAK is created. With this you can make more .N.BAK / Por defecto 1 BAK es creado. Con esto puede crear m<>s .N.BAK
* ClearUniqueID: 0 && EXPERIMENTAL! - 0=Keep UniqueID, 1=Clear Unique ID. Useful for Diff and Merge / 0=Mantener UniqueID, 1=Borrar Unique ID. Util para Diff y Merge
* XXX_Conversion_Support: N && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
* PJX_Conversion_Support: 2 && Default value
* VCX_Conversion_Support: 2 && Default value
* SCX_Conversion_Support: 2 && Default value
* FRX_Conversion_Support: 2 && Default value
* LBX_Conversion_Support: 2 && Default value
* MNX_Conversion_Support: 2 && Default value
* DBC_Conversion_Support: 2 && Default value
* DBF_Conversion_Support: 1 && Default value >> EN: FoxBin2Prg support bi-directional convertion of DBFs, but does not keep data. Use with care.
* >> ES: FoxBin2Prg tiene soporte bi-direccional para convertir DBF, pero no mantiene los datos. Usar con cuidado.
*
* EN: Note: This values have precedence over internal parameters and parameters used on scripts
* ES: Nota: Estos valores tienen precedencia sobre los par<61>metros internos y los par<61>metros usados en los scripts
@@ -20,6 +31,7 @@
* END DOCUMENTATION SECTION / FIN DE LA SECCI<43>N DE DOCUMENTACI<43>N
****************************************************************************************************
* EN: Uncomment for SourceSafe compatibility. You can change the extension on the right side.
* ES: Descomentar para compatibilidad con SourceSafe. Puede cambiar la extensi<73>n del lado derecho.
*---------------------------------------------------------------------------------------------------
@@ -32,6 +44,7 @@
*extension: db2=dba
*extension: dc2=dca
* EN: Uncomment to activate the new value, comment to deactivate and use the default
* ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado
*---------------------------------------------------------------------------------------------------
@@ -40,3 +53,17 @@
*NoTimestamps: 1
*Debug: 1
*ExtraBackupLevels: 3
*ClearUniqueID: 1
* EN: Uncomment to activate the new value, comment to deactivate and use the default
* ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado
*---------------------------------------------------------------------------------------------------
*PJX_Conversion_Support: 2
*VCX_Conversion_Support: 2
*SCX_Conversion_Support: 2
*FRX_Conversion_Support: 2
*LBX_Conversion_Support: 2
*MNX_Conversion_Support: 2
*DBC_Conversion_Support: 2
*DBF_Conversion_Support: 1

View File

@@ -26,7 +26,7 @@ _LegalTrademark = "Open Source"
_ProductName = " FOXBIN2PRG"
_MajorVer = "1"
_MinorVer = "19"
_Revision = " 246"
_Revision = " 253"
_LanguageID = "1034"
_AutoIncrement = "1"
*</DevInfo>
@@ -50,8 +50,8 @@ MODIFY PROJECT 'foxbin2prg.pjx' NOWAIT NOSHOW NOPROJECTHOOK
loProject = _VFP.Projects('foxbin2prg.pjx')
WITH loProject.FILES
.ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="1131721714" ObjRev="0" />
.ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="1130644423" ObjRev="544" />
.ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="0" ObjRev="0" />
.ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145667342" ID="0" ObjRev="544" />
*</BuildProj>
.ITEM('__newproject.f2b').Remove()

Binary file not shown.

Binary file not shown.

View File

@@ -379,6 +379,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="get_program_header" display="get_PROGRAM_HEADER"/>] ;
+ [<memberdata name="getnext_bak" display="getNext_BAK"/>] ;
+ [<memberdata name="lfilemode" display="lFileMode"/>] ;
+ [<memberdata name="l_clearuniqueid" display="l_ClearUniqueID"/>] ;
+ [<memberdata name="l_debug" display="l_Debug"/>] ;
+ [<memberdata name="l_methodsort_enabled" display="l_MethodSort_Enabled"/>] ;
+ [<memberdata name="l_propsort_enabled" display="l_PropSort_Enabled"/>] ;
@@ -394,6 +395,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="o_conversor" display="o_Conversor"/>] ;
+ [<memberdata name="o_frm_avance" display="o_Frm_Avance"/>] ;
+ [<memberdata name="o_fso" display="o_FSO"/>] ;
+ [<memberdata name="pjx_conversion_support" display="PJX_Conversion_Support"/>] ;
+ [<memberdata name="vcx_conversion_support" display="VCX_Conversion_Support"/>] ;
+ [<memberdata name="scx_conversion_support" display="SCX_Conversion_Support"/>] ;
+ [<memberdata name="frx_conversion_support" display="FRX_Conversion_Support"/>] ;
+ [<memberdata name="lbx_conversion_support" display="LBX_Conversion_Support"/>] ;
+ [<memberdata name="mnx_conversion_support" display="MNX_Conversion_Support"/>] ;
+ [<memberdata name="dbf_conversion_support" display="DBF_Conversion_Support"/>] ;
+ [<memberdata name="dbc_conversion_support" display="DBC_Conversion_Support"/>] ;
+ [<memberdata name="renamefile" display="RenameFile"/>] ;
+ [<memberdata name="writelog" display="writeLog"/>] ;
+ [<memberdata name="writelog_flush" display="writeLog_Flush"/>] ;
@@ -418,6 +427,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
l_ShowProgress = .F.
l_Recompile = .F.
l_UseTimestamps = .F.
l_ClearUniqueID = .F.
l_MethodSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
l_PropSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
@@ -434,6 +444,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
c_DB2 = 'DB2' && DBF
c_DC2 = 'DC2' && DBC
c_MN2 = 'MN2' && MNX
PJX_Conversion_Support = 2
VCX_Conversion_Support = 2
SCX_Conversion_Support = 2
FRX_Conversion_Support = 2
LBX_Conversion_Support = 2
MNX_Conversion_Support = 2
DBF_Conversion_Support = 1
DBC_Conversion_Support = 2
PROCEDURE INIT
@@ -683,6 +701,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
laConfig(I) = LOWER( laConfig(I) )
DO CASE
CASE LEFT( laConfig(I), 1 ) == '*'
LOOP
CASE LEFT( laConfig(I), 10 ) == LOWER('Extension:')
lcConfData = ALLTRIM( SUBSTR( laConfig(I), 11 ) )
lcExt = 'c_' + ALLTRIM( GETWORDNUM( lcConfData, 1, '=' ) )
@@ -694,23 +715,59 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
CASE LEFT( laConfig(I), 17 ) == LOWER('DontShowProgress:')
tcDontShowProgress = ALLTRIM( SUBSTR( laConfig(I), 18 ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowProgress: ' + TRANSFORM(tcDontShowProgress) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowProgress: ' + TRANSFORM(tcDontShowProgress) )
CASE LEFT( laConfig(I), 15 ) == LOWER('DontShowErrors:')
tcDontShowErrors = ALLTRIM( SUBSTR( laConfig(I), 16 ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowErrors: ' + TRANSFORM(tcDontShowErrors) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowErrors: ' + TRANSFORM(tcDontShowErrors) )
CASE LEFT( laConfig(I), 13 ) == LOWER('NoTimestamps:')
tcNoTimestamps = ALLTRIM( SUBSTR( laConfig(I), 14 ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) )
CASE LEFT( laConfig(I), 6 ) == LOWER('Debug:')
tcDebug = ALLTRIM( SUBSTR( laConfig(I), 7 ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDebug: ' + TRANSFORM(tcDebug) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDebug: ' + TRANSFORM(tcDebug) )
CASE LEFT( laConfig(I), 18 ) == LOWER('ExtraBackupLevels:')
tcExtraBackupLevels = ALLTRIM( SUBSTR( laConfig(I), 19 ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) )
CASE LEFT( laConfig(I), 14 ) == LOWER('ClearUniqueID:')
THIS.l_ClearUniqueID = ( ALLTRIM( SUBSTR( laConfig(I), 15 ) ) == '1' )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > ClearUniqueID: ' + TRANSFORM(THIS.l_ClearUniqueID) )
CASE LEFT( laConfig(I), 23 ) == LOWER('PJX_Conversion_Support:')
THIS.PJX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > PJX_Conversion_Support: ' + TRANSFORM(THIS.PJX_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('VCX_Conversion_Support:')
THIS.VCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > VCX_Conversion_Support: ' + TRANSFORM(THIS.VCX_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('SCX_Conversion_Support:')
THIS.SCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > SCX_Conversion_Support: ' + TRANSFORM(THIS.SCX_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('FRX_Conversion_Support:')
THIS.FRX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > FRX_Conversion_Support: ' + TRANSFORM(THIS.FRX_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('LBX_Conversion_Support:')
THIS.LBX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > LBX_Conversion_Support: ' + TRANSFORM(THIS.LBX_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('MNX_Conversion_Support:')
THIS.MNX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > MNX_Conversion_Support: ' + TRANSFORM(THIS.MNX_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('DBF_Conversion_Support:')
THIS.DBF_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > DBF_Conversion_Support: ' + TRANSFORM(THIS.DBF_Conversion_Support) )
CASE LEFT( laConfig(I), 23 ) == LOWER('DBC_Conversion_Support:')
THIS.DBC_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) )
THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > DBC_Conversion_Support: ' + TRANSFORM(THIS.DBC_Conversion_Support) )
ENDCASE
ENDFOR
@@ -719,17 +776,18 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.l_ShowProgress = NOT (TRANSFORM(tcDontShowProgress)=='1')
THIS.l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1')
THIS.l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile))
THIS.l_UseTimestamps = (TRANSFORM(tcNoTimestamps) == '1')
THIS.l_UseTimestamps = (TRANSFORM(tcNoTimestamps) == '0')
THIS.l_Debug = (TRANSFORM(tcDebug)=='1' OR FILE(FORCEEXT(THIS.c_Foxbin2prg_FullPath,'LOG')))
THIS.n_ExtraBackupLevels = INT(VAL(TRANSFORM(tcExtraBackupLevels)))
THIS.writeLog( '---' )
THIS.writeLog( '> l_ShowProgress: ' + TRANSFORM(THIS.l_ShowProgress) )
THIS.writeLog( '> l_ShowErrors: ' + TRANSFORM(THIS.l_ShowErrors) )
THIS.writeLog( '> l_Recompile: ' + TRANSFORM(THIS.l_Recompile) + ' (' + EVL(tcRecompile,'') + ')' )
THIS.writeLog( '> l_UseTimestamps: ' + TRANSFORM(THIS.l_UseTimestamps) )
THIS.writeLog( '> l_Debug: ' + TRANSFORM(THIS.l_Debug) )
THIS.writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(THIS.n_ExtraBackupLevels) )
THIS.writeLog( '> l_ShowProgress: ' + TRANSFORM(THIS.l_ShowProgress) )
THIS.writeLog( '> l_ShowErrors: ' + TRANSFORM(THIS.l_ShowErrors) )
THIS.writeLog( '> l_Recompile: ' + TRANSFORM(THIS.l_Recompile) + ' (' + EVL(tcRecompile,'') + ')' )
THIS.writeLog( '> l_UseTimestamps: ' + TRANSFORM(THIS.l_UseTimestamps) )
THIS.writeLog( '> ClearUniqueID: ' + TRANSFORM(THIS.l_ClearUniqueID) )
THIS.writeLog( '> l_Debug: ' + TRANSFORM(THIS.l_Debug) )
THIS.writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(THIS.n_ExtraBackupLevels) )
ENDPROC
@@ -866,11 +924,34 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
*-- UN ARCHIVO INDIVIDUAL O CONSULTA DE SOPORTE DE ARCHIVO
IF LEN(NVL(tc_InputFile,'')) = 1
*-- Consulta de soporte de conversi<73>n (compatibilidad con SourceSafe)
*-- SourceSafe consulta el tipo de soporte de cada archivo antes del Checkin/Checkout
*-- para saber si se puede hacer Diff y Merge.
*-- Para los c<>digos de tipo de archivo ver ayuda de "Type Property"
DO CASE
CASE tc_InputFile $ 'dD' && DBC, DBF
lnCodError = 1
CASE tc_InputFile $ 'KBMRV' && SCX, LBX, MNX, FRX, VCX
lnCodError = 2
CASE tc_InputFile == FILETYPE_DATABASE
lnCodError = THIS.DBC_Conversion_Support
CASE tc_InputFile == FILETYPE_FREETABLE
lnCodError = THIS.DBF_Conversion_Support
CASE tc_InputFile == FILETYPE_FORM
lnCodError = THIS.SCX_Conversion_Support
CASE tc_InputFile == FILETYPE_LABEL
lnCodError = THIS.LBX_Conversion_Support
CASE tc_InputFile == FILETYPE_MENU
lnCodError = THIS.MNX_Conversion_Support
CASE tc_InputFile == FILETYPE_REPORT
lnCodError = THIS.FRX_Conversion_Support
CASE tc_InputFile == FILETYPE_CLASSLIB
lnCodError = THIS.VCX_Conversion_Support
CASE tc_InputFile $ 'J' && PJX (J no exite en FoxPro, es un valor inventado para evitar conflicto con los tipos existentes)
lnCodError = THIS.PJX_Conversion_Support
OTHERWISE
lnCodError = -1
ENDCASE
@@ -997,81 +1078,126 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
DO CASE
CASE lcExtension = 'VCX'
IF NOT INLIST(THIS.VCX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_VC2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_vcx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_VC2 ), '+N' )
CASE lcExtension = 'SCX'
IF NOT INLIST(THIS.SCX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_SC2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_scx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_SC2 ), '+N' )
CASE lcExtension = 'PJX'
IF NOT INLIST(THIS.PJX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_pjx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), '+N' )
CASE lcExtension = 'PJM'
IF NOT INLIST(THIS.PJX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_PJ2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_pjm_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_PJ2 ), '+N' )
CASE lcExtension = 'FRX'
IF NOT INLIST(THIS.FRX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_FR2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_FR2 ), '+N' )
CASE lcExtension = 'LBX'
IF NOT INLIST(THIS.LBX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_LB2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_LB2 ), '+N' )
CASE lcExtension = 'DBF'
IF NOT INLIST(THIS.DBF_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_DB2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_dbf_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DB2 ), '+N' )
CASE lcExtension = 'DBC'
IF NOT INLIST(THIS.DBC_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_DC2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_DC2 ), '+N' )
CASE lcExtension = 'MNX'
IF NOT INLIST(THIS.MNX_Conversion_Support, 1, 2)
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, .c_MN2 )
.o_Conversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, .c_MN2 ), '+N' )
CASE lcExtension = .c_VC2
IF THIS.VCX_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'VCX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'VCT' ), '+N' )
CASE lcExtension = .c_SC2
IF THIS.SCX_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'SCX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_scx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'SCT' ), '+N' )
CASE lcExtension = .c_PJ2
IF THIS.PJX_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'PJX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_pjx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'PJT' ), '+N' )
CASE lcExtension = .c_FR2
IF THIS.FRX_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'FRX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'FRT' ), '+N' )
CASE lcExtension = .c_LB2
IF THIS.LBX_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'LBX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBX' ), '+N' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'LBT' ), '+N' )
CASE lcExtension = .c_DB2
IF THIS.DBF_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'DBF' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbf' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBF' ), '+N' )
@@ -1079,6 +1205,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'CDX' ), '+N' )
CASE lcExtension = .c_DC2
IF THIS.DBC_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'DBC' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DBC' ), '+N' )
@@ -1086,6 +1215,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'DCT' ), '+N' )
CASE lcExtension = .c_MN2
IF THIS.MNX_Conversion_Support <> 2
ERROR (TEXTMERGE(C_FILE_NAME_IS_NOT_SUPPORTED_LOC))
ENDIF
.c_OutputFile = FORCEEXT( .c_InputFile, 'MNX' )
.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' )
.ChangeFileAttribute( FORCEEXT( .c_InputFile, 'MNX' ), '+N' )
@@ -3423,7 +3555,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
, USER) ;
VALUES ;
( 'WINDOWS' ;
, toObjeto._UniqueID ;
, IIF( toFoxBin2Prg.l_ClearUniqueID, '', toObjeto._UniqueID ) ;
, IIF( toFoxBin2Prg.l_UseTimestamps, toObjeto._TimeStamp, 0 ) ;
, toObjeto._Class ;
, toObjeto._ClassLib ;
@@ -4516,7 +4648,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
, USER) ;
VALUES ;
( 'WINDOWS' ;
, loClase._UniqueID ;
, IIF( toFoxBin2Prg.l_ClearUniqueID, '', loClase._UniqueID ) ;
, IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ;
, loClase._Class ;
, loClase._ClassLoc ;
@@ -4807,7 +4939,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
, USER) ;
VALUES ;
( 'WINDOWS' ;
, loClase._UniqueID ;
, IIF( toFoxBin2Prg.l_ClearUniqueID, '', loClase._UniqueID ) ;
, IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ;
, loClase._Class ;
, loClase._ClassLoc ;
@@ -5058,7 +5190,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin
, loFile._Comments ;
, .T. ;
, loFile._CPID ;
, loFile._ID ;
, IIF( toFoxBin2Prg.l_ClearUniqueID, 0, loFile._ID ) ;
, IIF( toFoxBin2Prg.l_UseTimestamps, loFile._TimeStamp, 0 ) ;
, loFile._ObjRev ;
, UPPER(JUSTSTEM(loFile._Name)) )
@@ -5725,6 +5857,9 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
IF NOT toFoxBin2Prg.l_UseTimestamps
loReg.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loReg.UNIQUEID = ''
ENDIF
*-- Ajuste de los tipos de dato
FOR I = 1 TO AMEMBERS(laProps, loReg, 0)
@@ -7625,7 +7760,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
Baseclass="<<toRegClass.Baseclass>>"
Timestamp="<<THIS.getTimeStamp(toRegClass.Timestamp)>>"
Scale="<<toRegClass.Reserved6>>"
Uniqueid="<<EVL(toRegClass.Uniqueid,SYS(2015))>>"
Uniqueid="<<toRegClass.Uniqueid>>"
ENDTEXT
IF NOT EMPTY(toRegClass.OLE2)
@@ -7696,7 +7831,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
<<>> platform="WINDOWS " uniqueid="<<toReg.UniqueID>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
@@ -7808,7 +7943,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
<<>> platform="WINDOWS " uniqueid="<<toReg.UniqueID>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
@@ -7920,7 +8055,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
<<>> platform="WINDOWS " uniqueid="<<toReg.UniqueID>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
@@ -8041,6 +8176,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
IF NOT toFoxBin2Prg.l_UseTimestamps
loReg.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loReg.UNIQUEID = ''
ENDIF
lcOLEChecksum = SYS(2007, loReg.OLE, 0, 1)
llOleExistente = .F.
@@ -8199,6 +8337,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegClass.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegClass.UNIQUEID = ''
ENDIF
lcObjName = ALLTRIM(loRegClass.OBJNAME)
@@ -8227,6 +8368,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
THIS.write_ADD_OBJECTS_WithProperties( @loRegObj )
@@ -8258,6 +8402,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
THIS.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods )
ENDSCAN
@@ -8404,6 +8551,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
THIS.write_ADD_OBJECTS_WithProperties( @loRegObj )
@@ -8437,6 +8587,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
THIS.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods )
ENDSCAN
@@ -8528,6 +8681,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loReg.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loReg.ID = 0
ENDIF
loProject._HomeDir = ['] + ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.HOMEDIR ) ) + [']
@@ -8569,6 +8725,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loReg.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loReg.ID = 0
ENDIF
loReg.NAME = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.NAME ) ) )
loReg.COMMENTS = ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.COMMENTS ) )
@@ -9227,6 +9386,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegCab.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegCab.UNIQUEID = ''
ENDIF
ENDIF
*-- Dataenvironment
@@ -9237,6 +9399,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegDataEnv.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegDataEnv.UNIQUEID = ''
ENDIF
ENDIF
*-- Cursor1 (<28>puede haber m<>s de 1 cursor?)
@@ -9247,6 +9412,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegCur.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegCur.UNIQUEID = ''
ENDIF
ENDIF
IF THIS.l_ReportSort_Enabled
@@ -9282,6 +9450,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
THIS.write_DETALLE_REPORTE( @loRegObj )
ENDSCAN