diff --git a/TESTS/DATOS_READONLY/FB2P_DBC.DC2 b/TESTS/DATOS_READONLY/FB2P_DBC.DC2 index 8310436..2179979 100644 --- a/TESTS/DATOS_READONLY/FB2P_DBC.DC2 +++ b/TESTS/DATOS_READONLY/FB2P_DBC.DC2 @@ -38,7 +38,7 @@ - DRIVER={Oracle en OraClient11g_home1};SERVER=CARTERA;UID=STROSNC;PWD=STROSNC;DBQ=CARTERA;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;MLD=0;ODA= + DRIVER={Oracle en OraClient11g_home1};SERVER=BDDServer;UID=BDDUser;PWD=BDDPwd;DBQ=CARTERA;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;MLD=0;ODA .F. .T. 15 diff --git a/TESTS/DATOS_READONLY/fb2p_dbc.dbc b/TESTS/DATOS_READONLY/fb2p_dbc.dbc index 08c5fa2..e663ef9 100644 Binary files a/TESTS/DATOS_READONLY/fb2p_dbc.dbc and b/TESTS/DATOS_READONLY/fb2p_dbc.dbc differ diff --git a/TESTS/DATOS_READONLY/fb2p_dbc.dct b/TESTS/DATOS_READONLY/fb2p_dbc.dct index bf41563..2efee30 100644 Binary files a/TESTS/DATOS_READONLY/fb2p_dbc.dct and b/TESTS/DATOS_READONLY/fb2p_dbc.dct differ diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 942d439..0c6eca2 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 220" +_Revision = " 226" _LanguageID = "1034" _AutoIncrement = "1" * @@ -51,7 +51,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1144997514" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145212368" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 56a4f9b..b05d3d2 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 5a3a0e7..5e305c5 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 10fc4d1..0688a03 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -66,7 +66,9 @@ * 08/01/2014 FDBOZZO v1.19.3 Cambio en los timestamps de los TXT para mantener los valores vacíos que generaban muchísimas diferencias * 22/01/2014 FDBOZZO v1.19.4 Nuevo parámetro Recompile para forzar la recompilación. Ahora por defecto el binario no se recompila para ganar velocidad y evitar errores. Debe recompilar manualmente. * 22/01/2014 FDBOZZO v1.19.4 DBC: Agregado soporte para comentarios multilínea (propiedad Comment) -* 30/01/2014 FDBOZZO v1.19.5 Agregada compatibilidad con SourceSafe para Diff y Merge +* 26/01/2014 FDBOZZO v1.19.5 Agregado soporte multiidioma y traducción al Inglés +* 01/02/2014 FDBOZZO v1.19.6 Agregada compatibilidad con SourceSafe para Diff y Merge +* 02/02/2014 FDBOZZO v1.19.7 Encapsulación de objetos OLE en el propio control o clase // Blocksize ajustado * * *--------------------------------------------------------------------------------------------------- @@ -83,7 +85,6 @@ * 14/12/2013 Fidel Charny REPORTE BUG scx v1.13: La regeneración de los forms (SCX) no regenera el último registro COMMENT (arreglado en v.1.14) * 01/01/2014 Fidel Charny REPORTE BUG mnx v1.16: El menú no siempre respeta la posición original LOCATION y a veces se genera mal el MNX (se arregla en v1.17) * 05/01/2014 Fidel Charny REPORTE BUG mnx v1.17: Se genera cláusula "DO" o llamada Command cuando no Procedure ni Command que llamar // Diferencia de Case en NAME (se arregla en v1.18) -* 07/01/2014 F.D.Bozzo BUG vcx/scx v1.18: Los *métodos deben ir siempre al final en el Reserved3, si no los eventos ACCESS no se disparan * * *--------------------------------------------------------------------------------------------------- @@ -111,7 +112,7 @@ * * Ej: DO FOXBIN2PRG.PRG WITH "C:\DESA\INTEGRACION\LIBRERIA.VCX" *--------------------------------------------------------------------------------------------------- -LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName, tcRecompile +LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName, tcRecompile, tcNoTimestamps *-- Internacionalización / Internationalization *-- Fin / End @@ -310,7 +311,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb ******************************************************************************************************************* LOCAL loCnv AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' -LOCAL lnResp, loEx as Exception +LOCAL lnResp, loEx AS EXCEPTION *SYS(2030,1) *SYS(2335,0) @@ -322,7 +323,7 @@ LOCAL lnResp, loEx as Exception loCnv = CREATEOBJECT("c_foxbin2prg") loEx = NULL lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ; - , '', NULL, @loEx, .F., tcOriginalFileName, tcRecompile ) + , '', NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ) ADDPROPERTY(_SCREEN, 'ExitCode', lnResp) *IF _VFP.STARTMODE <= 1 @@ -383,6 +384,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -411,6 +413,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM l_ShowErrors = .F. l_ShowProgress = .F. l_Recompile = .F. + l_UseTimestamps = .T. 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 @@ -464,7 +467,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * Using Win32 Functions in Visual FoxPro * example=103 * Changing file attributes - LPARAMETERS tcFilename, tcAttrib + LPARAMETERS tcFileName, tcAttrib tcAttrib = UPPER(tcAttrib) #DEFINE FILE_ATTRIBUTE_READONLY 1 @@ -480,7 +483,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DECLARE INTEGER GetFileAttributes IN kernel32 STRING tcFileName * read current attributes for this file - dwFileAttributes = GetFileAttributes(tcFilename) + dwFileAttributes = GetFileAttributes(tcFileName) IF dwFileAttributes = -1 * the file does not exist @@ -539,32 +542,32 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF * setting selected attributes - =SetFileAttributes(tcFilename, dwFileAttributes) + =SetFileAttributes(tcFileName, dwFileAttributes) ENDIF ENDPROC PROCEDURE compileFoxProBinary - LPARAMETERS tcFilename + LPARAMETERS tcFileName LOCAL lcType - tcFilename = EVL(tcFilename, THIS.c_OutputFile) - lcType = UPPER(JUSTEXT(tcFilename)) + tcFileName = EVL(tcFileName, THIS.c_OutputFile) + lcType = UPPER(JUSTEXT(tcFileName)) DO CASE CASE lcType = 'VCX' - COMPILE CLASSLIB (tcFilename) + COMPILE CLASSLIB (tcFileName) CASE lcType = 'SCX' - COMPILE FORM (tcFilename) + COMPILE FORM (tcFileName) CASE lcType = 'FRX' - COMPILE REPORT (tcFilename) + COMPILE REPORT (tcFileName) CASE lcType = 'LBX' - COMPILE LABEL (tcFilename) + COMPILE LABEL (tcFileName) CASE lcType = 'DBC' - COMPILE DATABASE (tcFilename) + COMPILE DATABASE (tcFileName) ENDCASE ENDPROC @@ -582,7 +585,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LPARAMETERS toEx, tlRelanzarError, tcBakFile_1, tcBakFile_2, tcBakFile_3 #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -681,9 +684,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * se hace desde el directorio del archivo, con lo que las referencias relativas pueden * generar errores de compilación, típicamente los #include. * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar + * tcNoTimestamps (v? IN ) Indica si se deben vacar ('1') o no ['0'] los timestamps de registro *-------------------------------------------------------------------------------------------------------------- LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ; - , toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName, tcRecompile + , toModulo, toEx AS EXCEPTION, tlRelanzarError, tcOriginalFileName, tcRecompile, tcNoTimestamps TRY LOCAL I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laConfig(1), lcConfigFile, lcExt ; @@ -691,8 +695,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM , loEx AS EXCEPTION ; , loFSO AS Scripting.FileSystemObject - lnCodError = 0 - tcRecompile = EVL(tcRecompile,'') + lnCodError = 0 + tcRecompile = EVL(tcRecompile,'1') + tcNoTimestamps = EVL(tcNoTimestamps,'0') *SET DELETED ON *SET DATE YMD @@ -722,8 +727,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- Ejecución normal THIS.l_ShowProgress = NOT (TRANSFORM(tcDontShowProgress)=='1') THIS.l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1') - *THIS.l_Recompile = (NOT EMPTY(tcRecompile) AND (TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile))) THIS.l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) + THIS.l_UseTimestamps = (EMPTY(tcNoTimestamps) OR TRANSFORM(tcNoTimestamps) == '0') THIS.l_Debug = (TRANSFORM(tcDebug)=='1' OR FILE(FORCEEXT(THIS.c_Foxbin2prg_FullPath,'LOG'))) IF THIS.l_ShowProgress @@ -813,7 +818,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM OTHERWISE lnCodError = -1 ENDCASE - + ELSE IF EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' @@ -856,7 +861,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE CATCH TO toEx - lnCodError = toEx.ErrorNo + lnCodError = toEx.ERRORNO lcErrorInfo = THIS.Exception2Str(toEx) + CR_LF + CR_LF + C_SOURCEFILE_LOC + THIS.c_InputFile ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO) @@ -1379,6 +1384,7 @@ DEFINE CLASS c_conversor_base AS SESSION SET CENTURY ON SET SAFETY OFF SET TABLEPROMPT OFF + SET BLOCKSIZE TO 0 PUBLIC C_FB2PRG_CODE C_FB2PRG_CODE = '' && Contendrá todo el código generado @@ -1557,11 +1563,11 @@ DEFINE CLASS c_conversor_base AS SESSION * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase correspondiente con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF THIS.writeLog( '' ) THIS.writeLog( C_CONVERTING_FILE_LOC + ' ' + THIS.c_OutputFile + '...' ) @@ -2467,11 +2473,11 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase correspondiente con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) ENDPROC @@ -2638,8 +2644,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Validación IF EMPTY(taBloquesExclusion(tnBloquesExclusion,2)) *ERROR 'No se ha encontrado el marcador de fin [' + ta_ID_Bloques(lnPrimerID,2) ; - + '] que cierra al marcador de inicio [' + ta_ID_Bloques(lnPrimerID,1) ; - + '] de la línea ' + TRANSFORM(taBloquesExclusion(tnBloquesExclusion,1)) + + '] que cierra al marcador de inicio [' + ta_ID_Bloques(lnPrimerID,1) ; + + '] de la línea ' + TRANSFORM(taBloquesExclusion(tnBloquesExclusion,1)) ERROR (TEXTMERGE(C_END_MARKER_NOT_FOUND_LOC)) ENDIF ENDIF @@ -3327,7 +3333,13 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ******************************************************************************************************************* PROCEDURE insert_Object - LPARAMETERS toClase, toObjeto + LPARAMETERS toClase, toObjeto, toFoxBin2Prg + + #IF .F. + LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' + #ENDIF IF NOT THIS.l_Test *-- Inserto el objeto @@ -3357,7 +3369,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base VALUES ; ( 'WINDOWS' ; , toObjeto._UniqueID ; - , toObjeto._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, toObjeto._TimeStamp, 0 ) ; , toObjeto._Class ; , toObjeto._ClassLib ; , toObjeto._BaseClass ; @@ -3386,10 +3398,11 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Recorro primero los objetos con ZOrder definido, y luego los demás *-- NOTA: Como consecuencia de una integración de código, puede que se hayan agregado objetos nuevos (desconocidos), *-- pero todo lo demás tiene un ZOrder definido, que es el número de registro original * 100. - LPARAMETERS toClase + LPARAMETERS toClase, toFoxBin2Prg #IF .F. LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -3419,7 +3432,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF loObjeto._WriteOrder = 0 AND loObjeto._Nombre == lcObjName N = N + 1 loObjeto._WriteOrder = N - THIS.insert_Object( toClase, loObjeto ) + THIS.insert_Object( toClase, loObjeto, toFoxBin2Prg ) EXIT ENDIF ENDFOR @@ -3429,7 +3442,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Recorro los objetos Desconocidos FOR EACH loObjeto IN toClase._AddObjects FOXOBJECT IF loObjeto._WriteOrder = 0 - THIS.insert_Object( toClase, loObjeto ) + THIS.insert_Object( toClase, loObjeto, toFoxBin2Prg ) ENDIF ENDFOR @@ -3491,13 +3504,13 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base CASE LEFT( tcLine + ' ', 10 ) == C_ENDDEFINE + ' ' && Fin de bloque (ENDDEFINE) encontrado IF llEsProcedureDeClase *ERROR 'Error de anidamiento de estructuras. Se esperaba ENDPROC y se encontró ENDDEFINE en la clase ' ; - + toClase._Nombre + ' (' + loProcedure._Nombre + ')' ; - + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile + + toClase._Nombre + ' (' + loProcedure._Nombre + ')' ; + + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile ERROR (TEXTMERGE(C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_LOC)) ELSE *ERROR 'Error de anidamiento de estructuras. Se esperaba ENDPROC y se encontró ENDDEFINE en la clase ' ; - + toClase._Nombre + ' (' + toObjeto._Nombre + '.' + loProcedure._Nombre + ')' ; - + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile + + toClase._Nombre + ' (' + toObjeto._Nombre + '.' + loProcedure._Nombre + ')' ; + + ', línea ' + TRANSFORM(I) + ' del archivo ' + THIS.c_InputFile ERROR (TEXTMERGE(C_STRUCTURE_NESTING_ERROR_ENDPROC_EXPECTED_2_LOC)) ENDIF ENDCASE @@ -3588,14 +3601,17 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base toObjeto._Ole2 = .get_ValueByName_FromListNamesWithValues( 'OLEObject', 'C', @laPropsAndValues ) toObjeto._ZOrder = .get_ValueByName_FromListNamesWithValues( 'ZOrder', 'I', @laPropsAndValues ) toObjeto._TimeStamp = INT( .RowTimeStamp( .get_ValueByName_FromListNamesWithValues( 'TimeStamp', 'T', @laPropsAndValues ) ) ) + toObjeto._Ole = STRCONV( .get_ValueByName_FromListNamesWithValues( 'Value', 'C', @laPropsAndValues ), 14 ) IF NOT EMPTY( toObjeto._Ole2 ) && Le agrego "OLEObject = " delante toObjeto._Ole2 = 'OLEObject = ' + toObjeto._Ole2 + CR_LF ENDIF *-- Ubico el objeto ole por su nombre (parent+objname), que no se repite. - IF toModulo.existeObjetoOLE( toObjeto._Nombre, @Z ) - toObjeto._Ole = toModulo._Ole_Objs(Z)._Value + IF EMPTY(toObjeto._Ole) && Si _Ole está vacío es porque el propio control no tiene la info y está en la cabecera (antiguo guardado) + IF toModulo.existeObjetoOLE( toObjeto._Nombre, @Z ) + toObjeto._Ole = toModulo._Ole_Objs(Z)._Value + ENDIF ENDIF EXIT @@ -3846,9 +3862,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Validación IF EMPTY( toClase._Fin ) *ERROR 'No se ha encontrado el marcador de fin [ENDDEFINE] ' ; - + 'que cierra al marcador de inicio [DEFINE CLASS] ' ; - + 'de la línea ' + TRANSFORM( toClase._Inicio ) + ' ' ; - + 'para el identificador [' + toClase._Nombre + ']' + + 'que cierra al marcador de inicio [DEFINE CLASS] ' ; + + 'de la línea ' + TRANSFORM( toClase._Inicio ) + ' ' ; + + 'para el identificador [' + toClase._Nombre + ']' ERROR (TEXTMERGE(C_ENDDEFINE_MARKER_NOT_FOUND_LOC)) ENDIF @@ -3975,6 +3991,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base toClase._ProjectClassIcon = .get_ValueByName_FromListNamesWithValues( 'ProjectClassIcon', 'C', @laPropsAndValues ) toClase._ClassIcon = .get_ValueByName_FromListNamesWithValues( 'ClassIcon', 'C', @laPropsAndValues ) toClase._Ole2 = .get_ValueByName_FromListNamesWithValues( 'OLEObject', 'C', @laPropsAndValues ) + toClase._Ole = STRCONV( .get_ValueByName_FromListNamesWithValues( 'Value', 'C', @laPropsAndValues ), 14 ) ENDWITH && THIS IF NOT EMPTY( toClase._Ole2 ) && Le agrego "OLEObject = " delante @@ -4274,11 +4291,11 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_MODULO con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -4292,7 +4309,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo la librería THIS.createClasslib() @@ -4303,7 +4320,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toModulo ) - THIS.escribirArchivoBin( @toModulo, toFoxbin2prg ) + THIS.escribirArchivoBin( @toModulo, toFoxBin2Prg ) CATCH TO toEx @@ -4323,7 +4340,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toModulo, toFoxbin2prg + LPARAMETERS toModulo, toFoxBin2Prg *-- Estructura del objeto toModulo generado: *-- ----------------------------------------------------------------------------------------------------------- *-- Version Versión usada para generar la versión PRG analizada @@ -4391,7 +4408,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toModulo AS CL_MODULO OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4413,8 +4430,8 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin loClase = toModulo._Clases(I) *-- El dataenvironment debe estar primero, luego lo demás. - IF X = 1 AND NOT loClase._baseclass == 'dataenvironment' ; - OR X = 2 AND loClase._baseclass == 'dataenvironment' + IF X = 1 AND NOT loClase._BaseClass == 'dataenvironment' ; + OR X = 2 AND loClase._BaseClass == 'dataenvironment' LOOP ENDIF @@ -4445,7 +4462,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin VALUES ; ( 'WINDOWS' ; , loClase._UniqueID ; - , loClase._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ; , loClase._Class ; , loClase._ClassLoc ; , loClase._BaseClass ; @@ -4467,7 +4484,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin , loClase._User ) - THIS.insert_AllObjects( @loClase ) + THIS.insert_AllObjects( @loClase, toFoxBin2Prg ) *-- Inserto el COMMENT @@ -4497,7 +4514,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin VALUES ; ( 'COMMENT' ; , 'RESERVED' ; - , loClase._TimeStamp ; + , 0 ; , '' ; , '' ; , '' ; @@ -4523,8 +4540,8 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin USE IN (SELECT("TABLABIN")) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -4563,11 +4580,11 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase CL_MODULO con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) @@ -4581,7 +4598,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo el form THIS.createForm() @@ -4592,7 +4609,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toModulo ) - THIS.escribirArchivoBin( @toModulo, toFoxbin2prg ) + THIS.escribirArchivoBin( @toModulo, toFoxBin2Prg ) CATCH TO toEx @@ -4612,7 +4629,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toModulo, toFoxbin2prg + LPARAMETERS toModulo, toFoxBin2Prg *-- Estructura del objeto toModulo generado: *-- ----------------------------------------------------------------------------------------------------------- *-- Version Versión usada para generar la versión PRG analizada @@ -4680,7 +4697,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toModulo AS CL_MODULO OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4702,10 +4719,10 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin FOR I = 1 TO toModulo._Clases_Count loClase = toModulo._Clases(I) - + *-- El dataenvironment debe estar primero, luego lo demás. - IF X = 1 AND NOT loClase._baseclass == 'dataenvironment' ; - OR X = 2 AND loClase._baseclass == 'dataenvironment' + IF X = 1 AND NOT loClase._BaseClass == 'dataenvironment' ; + OR X = 2 AND loClase._BaseClass == 'dataenvironment' LOOP ENDIF @@ -4736,7 +4753,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin VALUES ; ( 'WINDOWS' ; , loClase._UniqueID ; - , loClase._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ; , loClase._Class ; , loClase._ClassLoc ; , loClase._BaseClass ; @@ -4758,7 +4775,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin , loClase._User ) - THIS.insert_AllObjects( @loClase ) + THIS.insert_AllObjects( @loClase, toFoxBin2Prg ) ENDFOR && I = 1 TO toModulo._Clases_Count ENDFOR && X = 1 TO 2 @@ -4813,8 +4830,8 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin USE IN (SELECT("TABLABIN")) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -4860,14 +4877,14 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toProject (@! OUT) Objeto generado de clase CL_PROJECT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toProject, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toProject, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toProject, @toEx ) #IF .F. LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4880,7 +4897,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo solo la cabecera del proyecto THIS.createProject() @@ -4891,7 +4908,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toProject ) - THIS.escribirArchivoBin( @toProject ) + THIS.escribirArchivoBin( @toProject, toFoxBin2Prg ) CATCH TO toEx @@ -4911,10 +4928,11 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toProject + LPARAMETERS toProject, toFoxBin2Prg *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toProject AS CL_PROJECT OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -4986,7 +5004,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin , .T. ; , loFile._CPID ; , loFile._ID ; - , loFile._TimeStamp ; + , IIF( toFoxBin2Prg.l_UseTimestamps, loFile._TimeStamp, 0 ) ; , loFile._ObjRev ; , UPPER(JUSTSTEM(loFile._Name)) ) ENDFOR @@ -5583,14 +5601,14 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toReport (@! OUT) Objeto generado de clase CL_REPORT con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toReport, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toReport, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toReport, @toEx ) #IF .F. LOCAL toReport AS CL_REPORT OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -5603,7 +5621,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo el reporte THIS.createReport() @@ -5611,7 +5629,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toReport ) - THIS.escribirArchivoBin( @toReport, toFoxbin2prg ) + THIS.escribirArchivoBin( @toReport, toFoxBin2Prg ) CATCH TO loEx @@ -5633,11 +5651,11 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toReport, toFoxbin2prg + LPARAMETERS toReport, toFoxBin2Prg *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toReport AS CL_REPORT OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -5649,6 +5667,10 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin *-- Agrego los registros FOR EACH loReg IN toReport FOXOBJECT + IF NOT toFoxBin2Prg.l_UseTimestamps + loReg.TIMESTAMP = 0 + ENDIF + *-- Ajuste de los tipos de dato FOR I = 1 TO AMEMBERS(laProps, loReg, 0) lnNumCampo = ASCAN( laFieldTypes, laProps(I), 1, -1, 1, 1+2+4+8 ) @@ -5686,8 +5708,8 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin USE IN (SELECT("TABLABIN")) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -5981,14 +6003,14 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toTable (@! OUT) Objeto generado de clase CL_TABLE con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toTable, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toTable, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toTable, @toEx ) #IF .F. LOCAL toTable AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6001,7 +6023,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toTable ) @@ -6249,14 +6271,14 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toDatabase (@! OUT) Objeto generado de clase CL_DBC con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toDatabase, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toDatabase, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toDatabase, @toEx ) #IF .F. LOCAL toDatabase AS CL_DBC OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6269,7 +6291,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo la tabla *THIS.createTable() @@ -6277,7 +6299,7 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toDatabase ) - THIS.escribirArchivoBin( @toDatabase, toFoxbin2prg ) + THIS.escribirArchivoBin( @toDatabase, toFoxBin2Prg ) CATCH TO loEx @@ -6299,11 +6321,11 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE escribirArchivoBin - LPARAMETERS toDatabase, toFoxbin2prg + LPARAMETERS toDatabase, toFoxBin2Prg *-- ----------------------------------------------------------------------------------------------------------- #IF .F. LOCAL toDatabase AS CL_DBC OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6313,8 +6335,8 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin toDatabase.updateDBC( THIS.c_OutputFile ) - IF toFoxbin2prg.l_Recompile - toFoxbin2prg.compileFoxProBinary() + IF toFoxBin2Prg.l_Recompile + toFoxBin2Prg.compileFoxProBinary() ENDIF @@ -6419,14 +6441,14 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toMenu (@! OUT) Objeto generado de clase CL_DBC con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toMenu, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toMenu, toEx AS EXCEPTION, toFoxBin2Prg DODEFAULT( @toMenu, @toEx ) #IF .F. LOCAL toMenu AS CL_MENU OF 'FOXBIN2PRG.PRG' - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF TRY @@ -6439,7 +6461,7 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) - toFoxbin2prg.doBackup( .F., .T., '', '', '' ) + toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) *-- Creo la tabla THIS.createMenu() @@ -6624,11 +6646,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * toModulo (@! OUT) Objeto generado de clase correspondiente con la información leida del texto * toEx (@! OUT) Objeto con información del error - * toFoxbin2prg (v! IN ) Referencia al objeto principal + * toFoxBin2Prg (v! IN ) Referencia al objeto principal *--------------------------------------------------------------------------------------------------- - LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxbin2prg + LPARAMETERS toModulo, toEx AS EXCEPTION, toFoxBin2Prg #IF .F. - LOCAL toFoxbin2prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' #ENDIF DODEFAULT( @toModulo, @toEx ) ENDPROC @@ -7208,8 +7230,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- Agrego metainformación para objetos OLE IF toRegObj.BASECLASS == 'olecontrol' - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - OLEObject="<>" + Parent="<>" + ObjName="<>" + OLEObject="<>" + Parent="<>" + ObjName="<>" + OLEObject="<> ENDTEXT - TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+8 - <> - Nombre="<>" - Parent="<>" - ObjName="<>" - OLEObject="<