From 22021c64e99b06cb8413e064a0c32976a2b550d3 Mon Sep 17 00:00:00 2001 From: fernando Date: Wed, 18 Dec 2013 18:58:35 +0100 Subject: [PATCH] Changeset: 102 Inicio soporte MNX --- foxbin2prg.pjt | Bin 268950 -> 272844 bytes foxbin2prg.pjx | Bin 1713 -> 1582 bytes foxbin2prg.prg | 378 +++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 335 insertions(+), 43 deletions(-) diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 3799d9727e8cded28b345375adf79877f2f54999..25dda36bbc2ba19845c3c6b3bda99f0035b48073 100644 GIT binary patch delta 12461 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 delta 12023 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 Ud{j%Rn~(ZKbM+sV53m0FKaLK`{Qv*} diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 5eef802a8a169a733d96d568790d234956321775..2f1bf2bbd29928775b79735ca08221b79624cd54 100644 GIT binary patch delta 74 zcmdnUyN-v|fR{&zc_Zr%7FIKJGXvwvhgj?xgC=*dX-w8)6;%d_88ASBTZn>!n*tD+ RnwWrus(|=E!{j8^GXP4x4+a1L delta 149 zcmZ3-vyqq8fR{&zWh3hj7FH7@0~3SEhgj?xLngPdYEIT>6;U=Zw6HW}fC9G=1qC++ zATTvC0SVOrF(c#TB-S$y3c)~jh@qjek(s51iG=}(WnpS=U}*_b2m)Y@Ak9Dk;s=2U WAW$$gGBq=r{DxI-atEslqZ9!Ar5QN@ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 9111f14..2eb11d7 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -53,6 +53,7 @@ * 08/12/2013 FDBOZZO v1.13 Arreglo bug "Error 1924, TOREG is not an object" * 15/12/2013 FDBOZZO v1.14 Arreglo de bug AutoCenter y registro COMMENT en regeneración de forms * 08/12/2013 FDBOZZO v1.15 Agregado soporte preliminar de conversión de tablas, índices y bases de datos (DBF,CDX,DBC) +* 18/12/2013 FDBOZZO v1.16 Agregado soporte para menús (MNX) * * *--------------------------------------------------------------------------------------------------- @@ -117,7 +118,7 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro #DEFINE C_PROCEDURE 'PROCEDURE' #DEFINE C_ENDPROC 'ENDPROC' #DEFINE C_WITH 'WITH' -#DEFINE C_WNDWITH 'ENDWITH' +#DEFINE C_ENDWITH 'ENDWITH' #DEFINE C_SRV_HEAD_I '*' #DEFINE C_SRV_HEAD_F '*' #DEFINE C_SRV_DATA_I '*' @@ -270,11 +271,20 @@ LOCAL lnResp goCnv = CREATEOBJECT("c_foxbin2prg") lnResp = goCnv.ejecutar( tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErrors, tcDebug, tcDontShowProgress ) -IF _VFP.STARTMODE > 0 - QUIT +IF _VFP.STARTMODE = 0 + RETURN ENDIF -RETURN lnResp +*-- Muy útil para procesos batch que capturan el código de error +DECLARE ExitProcess in Win32API INTEGER ExitCode +IF EMPTY(lnResp) + ExitProcess(0) +ELSE + ExitProcess(1) +ENDIF + +QUIT + ******************************************************************************************************************* @@ -289,7 +299,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; - + [] ; + [] ; + [] ; + [] ; @@ -333,15 +342,14 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM nClassTimeStamp = '' o_Conversor = NULL o_Frm_Avance = NULL - c_VC2 = 'VC2' - c_SC2 = 'SC2' - c_PJ2 = 'PJ2' - c_MN2 = 'MN2' - c_FR2 = 'FR2' - c_LB2 = 'LB2' - c_DB2 = 'DB2' - c_CD2 = 'CD2' - c_DC2 = 'DC2' + c_VC2 = 'VC2' && VCX + c_SC2 = 'SC2' && SCX + c_PJ2 = 'PJ2' && PJX + c_FR2 = 'FR2' && FRX + c_LB2 = 'LB2' && LBX + c_DB2 = 'DB2' && DBF + c_DC2 = 'DC2' && DBC + c_MN2 = 'MN2' && MNX PROCEDURE INIT @@ -584,6 +592,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, THIS.c_DC2 ) THIS.o_Conversor = CREATEOBJECT( 'c_conversor_dbc_a_prg' ) + CASE JUSTEXT(THIS.c_InputFile) = 'MNX' + THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, THIS.c_MN2 ) + THIS.o_Conversor = CREATEOBJECT( 'c_conversor_mnx_a_prg' ) + CASE JUSTEXT(THIS.c_InputFile) = THIS.c_VC2 THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'VCX' ) THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' ) @@ -612,6 +624,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'DBC' ) THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_dbc' ) + CASE JUSTEXT(THIS.c_InputFile) = THIS.c_MN2 + THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'MNX' ) + THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_mnx' ) + OTHERWISE ERROR 'El archivo [' + THIS.c_InputFile + '] no está soportado' @@ -988,8 +1004,12 @@ DEFINE CLASS c_conversor_base AS SESSION ENDFUNC - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION THIS.writeLog( '' ) THIS.writeLog( C_CONVERTING_FILE_LOC + THIS.c_OutputFile + '...' ) @@ -2125,6 +2145,11 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) ENDPROC @@ -3856,8 +3881,12 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin + [] - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) @@ -4120,8 +4149,12 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin + [] - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) @@ -4396,6 +4429,11 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toProject, toEx AS EXCEPTION DODEFAULT( @toProject, @toEx ) @@ -5103,8 +5141,12 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin + [] - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toReport, toEx AS EXCEPTION DODEFAULT( @toReport, @toEx ) @@ -5492,8 +5534,12 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin + [] - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toTable, toEx AS EXCEPTION DODEFAULT( @toTable, @toEx ) @@ -5730,8 +5776,12 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin + [] - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toDatabase, toEx AS EXCEPTION DODEFAULT( @toDatabase, @toEx ) @@ -5873,6 +5923,170 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin ENDDEFINE && CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin +******************************************************************************************************************* +DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin + #IF .F. + LOCAL THIS AS c_conversor_prg_a_mnx OF 'FOXBIN2PRG.PRG' + #ENDIF + _MEMBERDATA = [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] ; + + [] + + + ******************************************************************************************************************* + PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- + LPARAMETERS toMenu, toEx AS EXCEPTION + DODEFAULT( @toMenu, @toEx ) + + #IF .F. + LOCAL toMenu AS CL_MENU OF 'FOXBIN2PRG.PRG' + #ENDIF + + TRY + LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; + , laBloquesExclusion(1,2), lnBloquesExclusion, I + STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version + STORE '' TO lcLine, lcSourceFile + STORE NULL TO loReg, toModulo + + C_FB2PRG_CODE = FILETOSTR( THIS.c_InputFile ) + lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) + + THIS.doBackup( .F., .T. ) + + *-- Creo la tabla + *THIS.createTable() + + *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte + THIS.identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laBloquesExclusion, lnBloquesExclusion, @toMenu ) + + THIS.escribirArchivoBin( @toMenu ) + + + CATCH TO loEx + lnCodError = loEx.ERRORNO + + IF THIS.l_Debug AND _VFP.STARTMODE = 0 + SET STEP ON + ENDIF + + THROW + + ENDTRY + + RETURN lnCodError + ENDPROC + + + ******************************************************************************************************************* + PROCEDURE escribirArchivoBin + LPARAMETERS toDatabase + *-- ----------------------------------------------------------------------------------------------------------- + #IF .F. + LOCAL toMenu AS CL_MENU OF 'FOXBIN2PRG.PRG' + #ENDIF + + TRY + LOCAL lnCodError, lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate + lnCodError = 0 + STORE '' TO lcIndex, lcFieldDef + + toMenu.updateDBC( THIS.c_OutputFile ) + + *USE IN (SELECT(JUSTSTEM(THIS.c_OutputFile))) + + + CATCH TO loEx + lnCodError = loEx.ERRORNO + + IF THIS.l_Debug AND _VFP.STARTMODE = 0 + SET STEP ON + ENDIF + + THROW + + ENDTRY + + RETURN lnCodError + ENDPROC + + + ******************************************************************************************************************* + PROCEDURE identificarBloquesDeCodigo + *-------------------------------------------------------------------------------------------------------------- + * taCodeLines (!@ IN ) El array con las líneas del código donde buscar + * tnCodeLines (!@ IN ) Cantidad de líneas de código + * taBloquesExclusion (?@ IN ) Sin uso + * tnBloquesExclusion (?@ IN ) Sin uso + * toMenu (?@ OUT) Objeto con toda la información del menú analizado + * + * NOTA: + * Como identificador se usa el nombre de clase o de procedimiento, según corresponda. + *-------------------------------------------------------------------------------------------------------------- + LPARAMETERS taCodeLines, tnCodeLines, taBloquesExclusion, tnBloquesExclusion, toMenu + EXTERNAL ARRAY taCodeLines, taBloquesExclusion + + #IF .F. + LOCAL toMenu AS CL_MENU OF 'FOXBIN2PRG.PRG' + #ENDIF + + TRY + LOCAL I, lc_Comentario, lcLine, llFoxBin2Prg_Completed, llBloqueDatabase_Completed + STORE 0 TO I + + THIS.c_Type = UPPER(JUSTEXT(THIS.c_OutputFile)) + + IF tnCodeLines > 1 + toDatabase = NULL + toDatabase = CREATEOBJECT('CL_DBC') + + WITH THIS + FOR I = 1 TO tnCodeLines + .set_Line( @lcLine, @taCodeLines, I ) + + IF .lineIsOnlyCommentAndNoMetadata( @lcLine, @lc_Comentario ) && Vacía o solo Comentarios + LOOP + ENDIF + + DO CASE + CASE NOT llFoxBin2Prg_Completed AND .analizarBloque_FoxBin2Prg( toDatabase, @lcLine, @taCodeLines, @I, tnCodeLines ) + llFoxBin2Prg_Completed = .T. + + CASE NOT llBloqueDatabase_Completed AND toDatabase.analizarBloque( @lcLine, @taCodeLines, @I, tnCodeLines ) + llBloqueDatabase_Completed = .T. + + ENDCASE + ENDFOR + ENDWITH && THIS + ENDIF + + CATCH TO loEx + IF THIS.l_Debug AND _VFP.STARTMODE = 0 + SET STEP ON + ENDIF + + THROW + + ENDTRY + + RETURN + ENDPROC + + +ENDDEFINE && CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin + + ******************************************************************************************************************* DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base #IF .F. @@ -5925,6 +6139,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) ENDPROC @@ -6888,7 +7107,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base * (ES) AUTOGENERADO - ˇˇATENCIÓN!! - ˇˇNO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! *-------------------------------------------------------------------------------------------------------------------------------------------------------- - <> Version="<>" SourceFile="<>" Generated="<>" <> (Para uso con Visual FoxPro 9.0) + <> Version="<>" SourceFile="<>" Generated="<>" <> (Para binarios Visual FoxPro 9.0 solamente) * ENDTEXT ENDPROC @@ -7382,12 +7601,14 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg #IF .F. LOCAL THIS AS c_conversor_vcx_a_prg OF 'FOXBIN2PRG.PRG' #ENDIF - *_MEMBERDATA = [] ; - + [] ; - + [] - ******************************************************************************************************************* + PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) @@ -7511,13 +7732,14 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg #IF .F. LOCAL THIS AS c_conversor_scx_a_prg OF 'FOXBIN2PRG.PRG' #ENDIF - *_MEMBERDATA = [] ; - + [] ; - + [] - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) @@ -7669,12 +7891,8 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg #IF .F. LOCAL THIS AS c_conversor_pjx_a_prg OF 'FOXBIN2PRG.PRG' #ENDIF - *_MEMBERDATA = [] ; - * + [] ; - * + [] - ******************************************************************************************************************* PROCEDURE write_PROGRAM_HEADER *-- Cabecera del PRG e inicio de DEF_CLASS TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 @@ -7682,14 +7900,18 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg * (ES) AUTOGENERADO - PARA MANTENER INFORMACIÓN DE SERVIDORES DLL USAR "FOXBIN2PRG", SI NO IMPORTAN, EJECUTAR DIRECTAMENTE PARA REGENERAR EL PROYECTO. * (EN) AUTOGENERATED - TO KEEP DLL SERVER INFORMATION USE "FOXBIN2PRG", OTHERWISE YOU CAN EXECUTE DIRECTLY TO REGENERATE PROJECT. *-------------------------------------------------------------------------------------------------------------------------------------------------------- - <> Version="<>" SourceFile="<>" Generated="<>" <> (Para uso con Visual FoxPro 9.0) + <> Version="<>" SourceFile="<>" Generated="<>" <> (Para binarios Visual FoxPro 9.0 solamente) * ENDTEXT ENDPROC - ******************************************************************************************************************* PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT) + * toModulo (@! OUT) Objeto generado de clase CL_PROJECT con la información leida del texto + * toEx (@! OUT) Objeto con información del error + *--------------------------------------------------------------------------------------------------- LPARAMETERS toModulo, toEx AS EXCEPTION DODEFAULT( @toModulo, @toEx ) @@ -8214,6 +8436,71 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg ENDDEFINE +******************************************************************************************************************* +DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg + #IF .F. + LOCAL THIS AS c_conversor_mnx_a_prg OF 'FOXBIN2PRG.PRG' + #ENDIF + + + PROCEDURE Convertir + *--------------------------------------------------------------------------------------------------- + * 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 + *--------------------------------------------------------------------------------------------------- + LPARAMETERS toDatabase, toEx AS EXCEPTION + DODEFAULT( @toDatabase, @toEx ) + + #IF .F. + LOCAL toDatabase AS CL_DBC OF 'FOXBIN2PRG.PRG' + #ENDIF + + TRY + LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1) ; + , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name + STORE 0 TO lnCodError + + lnDatabases_Count = ADATABASES(laDatabases) + THIS.getDBFmetadata( THIS.c_InputFile, @ln_HexFileType, @ll_FileHasCDX, @ll_FileHasMemo, @ll_FileIsDBC, @lc_DBC_Name ) + USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN + OPEN DATABASE (THIS.c_InputFile) SHARED NOUPDATE + + THIS.write_PROGRAM_HEADER() + + *-- Header + toDatabase = CREATEOBJECT('CL_DBC') + C_FB2PRG_CODE = C_FB2PRG_CODE + toDatabase.toText() + + + *-- Genero el DC2 + IF THIS.l_Test + toModulo = C_FB2PRG_CODE + ELSE + IF STRTOFILE( C_FB2PRG_CODE, THIS.c_OutputFile ) = 0 + ERROR 'No se puede generar el archivo [' + THIS.c_OutputFile + '] porque es ReadOnly' + ENDIF + ENDIF + + + CATCH TO toEx + IF THIS.l_Debug AND _VFP.STARTMODE = 0 + SET STEP ON + ENDIF + + THROW + + FINALLY + USE IN (SELECT("TABLABIN")) + CLOSE DATABASES + + ENDTRY + + RETURN + ENDPROC +ENDDEFINE + + ******************************************************************************************************************* DEFINE CLASS CL_CUS_BASE AS CUSTOM *-- Propiedades (Se preservan: CONTROLCOUNT, CONTROLS, OBJECTS, PARENT, CLASS) @@ -8236,7 +8523,6 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM l_Debug = .F. - ******************************************************************************************************************* PROCEDURE INIT SET DELETED ON SET DATE YMD @@ -8249,12 +8535,10 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM ENDPROC - ******************************************************************************************************************* PROCEDURE analizarBloque ENDPROC - ******************************************************************************************************************* PROCEDURE fileTypeDescription *--------------------------------------------------------------------------------------------------- * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT) @@ -8296,7 +8580,6 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM ENDPROC - ******************************************************************************************************************* PROCEDURE set_Line *--------------------------------------------------------------------------------------------------- * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT) @@ -8309,8 +8592,12 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM ENDPROC - ******************************************************************************************************************* PROCEDURE toText + *--------------------------------------------------------------------------------------------------- + * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT) + * taConnections (@? OUT) Array de conexiones + * tnConnection_Count (@? OUT) Cantidad de conexiones + *--------------------------------------------------------------------------------------------------- ENDPROC @@ -8330,13 +8617,13 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION _MEMBERDATA = [] ; + [] ; + [] ; + + [] ; + [] ; + [] l_Debug = .F. - ************************************************************************************************ PROCEDURE INIT SET DELETED ON SET DATE YMD @@ -8349,12 +8636,10 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION ENDPROC - ******************************************************************************************************************* PROCEDURE analizarBloque ENDPROC - ******************************************************************************************************************* PROCEDURE set_Line *--------------------------------------------------------------------------------------------------- * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT) @@ -8367,6 +8652,13 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION ENDPROC + PROCEDURE toText + *--------------------------------------------------------------------------------------------------- + * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT) + * taConnections (@? OUT) Array de conexiones + * tnConnection_Count (@? OUT) Cantidad de conexiones + *--------------------------------------------------------------------------------------------------- + ENDPROC ENDDEFINE