From 1198d6a73c771e94aca6d9902cb63a2cb6a05053 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Tue, 29 Apr 2014 20:02:28 +0200 Subject: [PATCH 1/8] =?UTF-8?q?Changeset:=20227=20fdbozzo=20-=2029/04/2014?= =?UTF-8?q?=2020:00:35:=20Actualizaci=C3=B3n=20de=20valores=20del=20FoxBin?= =?UTF-8?q?2Prg.cfg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/foxbin2prg.cfg b/foxbin2prg.cfg index 1385bc8..dfc2de4 100644 --- a/foxbin2prg.cfg +++ b/foxbin2prg.cfg @@ -11,9 +11,9 @@ * 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 .Log by default / Activar .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 +* Debug: 0 && Don't Activate individual .Log by default / No Activar .Log por defecto +* ExtraBackupLevels: 0 && By default 1 BAK is created. With this you can make more .N.BAK, or none / Por defecto 1 BAK es creado. Con esto puede crear más .N.BAK, o ninguno +* ClearUniqueID: 1 && 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 @@ -67,4 +67,4 @@ ClearUniqueID: 1 *LBX_Conversion_Support: 2 *MNX_Conversion_Support: 2 *DBC_Conversion_Support: 2 -*DBF_Conversion_Support: 1 +*DBF_Conversion_Support: 2 From 17954bcc269d6f8a481347eb5588fb7867aa3344 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Tue, 29 Apr 2014 22:43:44 +0200 Subject: [PATCH 2/8] Changeset: 228 fdbozzo - 29/04/2014 20:02:29: - Agregado soporte para convertir a texto todos los archivos de un proyecto desde pjx (Matt Slay) --- foxbin2prg.prg | 74 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 10 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index b085e03..acdc4c7 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -82,6 +82,7 @@ * 22/03/2014 FDBOZZO v1.19.18 Arreglo bug vcx/scx: Las imágenes no mantienen sus dimensiones programadas y asumen sus dimensiones reales // El comentario a nivel de librería se pierde * 29/03/2014 FDBOZZO v1.19.19 Nueva característica: Hooks al regenerar DBF para poder realizar procesos intermedios, como la carga de datos del DBF regenerado desde una fuente externa * 17/04/2014 FDBOZZO v1.19.20 Relativización de directorios de CDX dentro de los DB2 para minimizar diferencias +* 29/04/2014 FDBOZZO v1.19.21 Agregada posibilidad de convertir un proyecto entero a tx2 * * *--------------------------------------------------------------------------------------------------- @@ -106,6 +107,7 @@ * 10/03/2014 Ryan Harris REPORTE BUG mnx v1.19.16: Al usar comentarios multilínea en las opciones, se corrompe el MN2 y el MNX regenerado (solucionado en v1.19.17) * 20/03/2014 Arturo Ramos REPORTE BUG vcx/scx v1.19.17: Las imágenes no mantienen sus dimensiones programadas y asumen sus dimensiones reales (Solucionado en v1.19.18) * 24/03/2014 Ryan Harris REPORTE BUG vcx/scx v1.19.17: El comentario a nivel de librería se pierde (Solucionado en v1.19.18) +* 29/04/2014 Matt Slay MEJORA v1.19.20: Posibilidad de convertir un proyecto entero a tx2 (Agregado en v1.19.21) * * *--------------------------------------------------------------------------------------------------- @@ -117,9 +119,9 @@ *--------------------------------------------------------------------------------------------------- * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir -* tcType ( ) Tipo de archivo de entrada. SIN USO. Compatibilidad con SCCTEXT.PRG -* tcTextName ( ) Nombre del archivo texto. Compatibilidad con SCCTEXT.PRG -* tlGenText ( ) .T.=Genera Texto, .F.=Genera Binario. Compatibilidad con SCCTEXT.PRG +* tcType (v? IN ) Tipo de archivo de entrada. SIN USO. Compatibilidad con SCCTEXT.PRG // Si se indica "*" y tc_InputFile es un PJX, se procesa todo el proyecto +* tcTextName (v? IN ) Nombre del archivo texto. Compatibilidad con SCCTEXT.PRG +* tlGenText (v? IN ) .T.=Genera Texto, .F.=Genera Binario. Compatibilidad con SCCTEXT.PRG * tcDontShowErrors (v? IN ) '1' para NO mostrar errores con MESSAGEBOX * tcDebug (v? IN ) '1' para depurar en el sitio donde ocurre el error (solo modo desarrollo) * tcDontShowProgress (v? IN ) '1' para NO mostrar la ventana de progreso @@ -272,6 +274,7 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb #DEFINE FILETYPE_LABEL "B" && Label (.LBX) #DEFINE FILETYPE_CLASSLIB "V" && Class Library (.VCX) #DEFINE FILETYPE_PROGRAM "P" && Program (.PRG) +#DEFINE FILETYPE_PROJECT "J" && Project (.PJX) [NON STANDARD!] #DEFINE FILETYPE_APILIB "L" && API Library (.FLL) #DEFINE FILETYPE_APPLICATION "Z" && Application (.APP) #DEFINE FILETYPE_MENU "M" && Menu (.MNX) @@ -887,9 +890,9 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-------------------------------------------------------------------------------------------------------------- * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * tc_InputFile (!v IN ) Nombre del archivo de entrada - * tcType ( ) Tipo de archivo de entrada. SIN USO. Compatibilidad con SCCTEXT.PRG - * tcTextName ( ) Nombre del archivo texto. Compatibilidad con SCCTEXT.PRG - * tlGenText ( ) .T.=Genera Texto, .F.=Genera Binario. Compatibilidad con SCCTEXT.PRG + * tcType (v? IN ) Tipo de archivo de entrada. SIN USO. Compatibilidad con SCCTEXT.PRG // Si se indica "*" y tc_InputFile es un PJX, se procesa todo el proyecto + * tcTextName (v? IN ) Nombre del archivo texto. Compatibilidad con SCCTEXT.PRG + * tlGenText (v? IN ) .T.=Genera Texto, .F.=Genera Binario. Compatibilidad con SCCTEXT.PRG * tcDontShowErrors (?v IN ) '1' para no mostrar mensajes de error (MESSAGEBOX) * tcDebug (?v IN ) '1' para habilitar modo debug (SOLO DESARROLLO) * tcDontShowProgress (?v IN ) '1' para inhabilitar la barra de progreso @@ -1015,7 +1018,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM OTHERWISE *-- UN ARCHIVO INDIVIDUAL O CONSULTA DE SOPORTE DE ARCHIVO - IF LEN(NVL(tc_InputFile,'')) = 1 + IF LEN(EVL(tc_InputFile,'')) = 1 *-- Consulta de soporte de conversió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. @@ -1042,7 +1045,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CASE tc_InputFile == FILETYPE_CLASSLIB lnCodError = .VCX_Conversion_Support - CASE tc_InputFile $ 'J' && PJX (J no exite en FoxPro, es un valor inventado para evitar conflicto con los tipos existentes) + CASE tc_InputFile $ FILETYPE_PROJECT && PJX (J no exite en FoxPro, es un valor inventado para evitar conflicto con los tipos existentes) lnCodError = .PJX_Conversion_Support OTHERWISE @@ -1051,7 +1054,57 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ELSE - IF EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' + DO CASE + CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJX' AND EVL(tcType,'0') == '*' + *-- SE QUIEREN CONVERTIR A TEXTO TODOS LOS ARCHIVOS DE UN PROYECTO + lcFileSpec = FULLPATH( tc_InputFile ) + + DO CASE + CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + CD (tcRecompile) + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE + + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + IF FILE( .c_LogFile ) + ERASE ( .c_LogFile ) + ENDIF + ENDIF + + SELECT 0 + USE (tc_InputFile) SHARED NOUPDATE ALIAS TABLABIN + lnFileCount = 0 + + SCAN FOR NOT DELETED() + lnFileCount = lnFileCount + 1 + DIMENSION laFiles(lnFileCount,1) + laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) ) + ENDSCAN + + USE IN (SELECT("TABLABIN")) + + IF .l_ShowProgress + .o_Frm_Avance.nMAX_VALUE = lnFileCount + ENDIF + + FOR I = 1 TO lnFileCount + lcFile = laFiles(I,1) + .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' + .o_Frm_Avance.nVALUE = I + + IF .l_ShowProgress + .o_Frm_Avance.SHOW() + ENDIF + + IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + ENDIF + ENDFOR + + CASE EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' *-- Compatibilidad con SourceSafe IF NOT tlGenText @@ -1063,7 +1116,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM tc_InputFile = tcTextName .l_Recompile = .T. ENDIF - ENDIF + ENDCASE IF FILE(tc_InputFile) ERASE ( tc_InputFile + '.ERR' ) @@ -1110,6 +1163,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF FINALLY + USE IN (SELECT("TABLABIN")) THIS.writeLog_Flush() IF THIS.l_ShowProgress AND VARTYPE(THIS.o_Frm_Avance) = "O" THIS.o_Frm_Avance.HIDE() From 47436e90cfa30c30cdcc7856abda4739fb00f5b6 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Tue, 29 Apr 2014 22:56:37 +0200 Subject: [PATCH 3/8] =?UTF-8?q?Changeset:=20229=20fdbozzo=20-=2029/04/2014?= =?UTF-8?q?=2022:43:44:=20-=20Optimizaci=C3=B3n=20de=20b=C3=BAsqueda=20del?= =?UTF-8?q?=20programa=20de=20capitalizaci=C3=B3n=20al=20procesar=20proyec?= =?UTF-8?q?tos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index acdc4c7..7f2bf1e 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -424,6 +424,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -458,6 +459,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM c_OutputFile = '' c_Type = '' lFileMode = .F. + n_ExisteCapitalizacion = -1 l_ConfigEvaluated = .F. l_Debug = .F. l_Test = .F. @@ -1480,15 +1482,29 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM lcEXE_CAPS = FORCEPATH( 'filename_caps.exe', lcPath ) loFSO = .o_FSO - IF FILE(lcEXE_CAPS) - *.writeLog( '* Se ha encontrado el programa de capitalización de nombres [' + lcEXE_CAPS + ']' ) - .writeLog( TEXTMERGE(C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC) ) - ELSE - *-- No existe el programa de capitalización, así que no se capitalizan los nombres. - *.writeLog( '* No se ha encontrado el programa de capitalización de nombres [' + lcEXE_CAPS + ']' ) - .writeLog( TEXTMERGE(C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC) ) + DO CASE + CASE .n_ExisteCapitalizacion = -1 + *-- La primera vez vale -1, hace la verificación por única vez y cachea la respuesta + IF FILE(lcEXE_CAPS) + *.writeLog( '* Se ha encontrado el programa de capitalización de nombres [' + lcEXE_CAPS + ']' ) + .writeLog( TEXTMERGE(C_NAMES_CAPITALIZATION_PROGRAM_FOUND_LOC) ) + .n_ExisteCapitalizacion = 1 + ELSE + *-- No existe el programa de capitalización, así que no se capitalizan los nombres. + *.writeLog( '* No se ha encontrado el programa de capitalización de nombres [' + lcEXE_CAPS + ']' ) + .writeLog( TEXTMERGE(C_NAMES_CAPITALIZATION_PROGRAM_NOT_FOUND_LOC) ) + .n_ExisteCapitalizacion = 0 + EXIT + ENDIF + + CASE .n_ExisteCapitalizacion = 0 + *-- Segunda pasada en adelante: No hay programa de capitalización EXIT - ENDIF + + OTHERWISE + *-- Segunda pasada en adelante: Hay programa de capitalización + + ENDCASE .RenameFile( .c_OutputFile, lcEXE_CAPS, loFSO ) From d219d0d01010b562ea8967c88624b4007fea8b44 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Wed, 30 Apr 2014 00:25:20 +0200 Subject: [PATCH 4/8] Changeset: 230 fdbozzo - 29/04/2014 22:56:38: - Agregado soporte para convertir a binario todos los tx2 de un proyecto (Matt Slay) - Arreglo de defectos --- foxbin2prg.prg | 161 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 121 insertions(+), 40 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 7f2bf1e..77ce743 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -408,6 +408,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -852,6 +853,24 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE Get_Ext2FromExt + LPARAMETERS tcExt + LOCAL lcExt2 + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + lcExt2 = ICASE( tcExt == 'PJX', .c_PJ2 ; + , tcExt == 'VCX', .c_VC2 ; + , tcExt == 'SCX', .c_SC2 ; + , tcExt == 'FRX', .c_FR2 ; + , tcExt == 'LBX', .c_LB2 ; + , tcExt == 'MNX', .c_MN2 ; + , tcExt == 'DBF', .c_DB2 ; + , tcExt == 'DBC', .c_DC2 ; + , 'XXX' ) + ENDWITH && THIS + RETURN lcExt2 + ENDPROC + + PROCEDURE TieneSoporte_Bin2Prg LPARAMETERS tcExt LOCAL llTieneSoporte @@ -1014,7 +1033,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF IF FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) ENDIF ENDFOR @@ -1085,13 +1104,19 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DIMENSION laFiles(lnFileCount,1) laFiles(lnFileCount,1) = ADDBS( JUSTPATH( lcFileSpec ) ) + ALLTRIM( NAME, 0, ' ', CHR(0) ) ENDSCAN - + USE IN (SELECT("TABLABIN")) IF .l_ShowProgress .o_Frm_Avance.nMAX_VALUE = lnFileCount ENDIF + *-- Primero convierto el proyecto + *IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(tc_InputFile)) ) + * lnCodError = .Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + *ENDIF + + *-- Luego convierto los archivos incluidos FOR I = 1 TO lnFileCount lcFile = laFiles(I,1) .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' @@ -1102,10 +1127,66 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) - lnCodError = .Convertir( lcFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) ENDIF ENDFOR - + + CASE UPPER( JUSTEXT( EVL(tc_InputFile,'') ) ) == 'PJ2' AND EVL(tcType,'0') == '*' + *-- SE QUIEREN CONVERTIR A BINARIO TODOS LOS ARCHIVOS DE UN PROYECTO + lcFileSpec = FULLPATH( tc_InputFile ) + + DO CASE + CASE .l_Recompile AND LEN(tcRecompile) > 3 AND DIRECTORY(tcRecompile) + CD (tcRecompile) + CASE tcRecompile == '1' + CD (JUSTPATH(lcFileSpec)) + ENDCASE + + .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' + + IF .l_Debug + IF FILE( .c_LogFile ) + ERASE ( .c_LogFile ) + ENDIF + ENDIF + + lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 ) + + FOR I = lnFileCount TO 1 STEP -1 + IF '.ADD(' $ laFiles(I) + laFiles(I) = ADDBS( JUSTPATH( lcFileSpec ) ) + STREXTRACT( laFiles(I), ".ADD('", "')" ) + laFiles(I) = FORCEEXT( laFiles(I), .Get_Ext2FromExt( UPPER(JUSTEXT(laFiles(I))) ) ) + ELSE + lnFileCount = lnFileCount - 1 + ADEL( laFiles, I ) + DIMENSION laFiles(lnFileCount) + ENDIF + ENDFOR + + IF .l_ShowProgress + .o_Frm_Avance.nMAX_VALUE = lnFileCount + ENDIF + + *-- Primero convierto el proyecto + *IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(tc_InputFile)) ) + * lnCodError = .Convertir( tc_InputFile, toModulo, toEx, tlRelanzarError, tcOriginalFileName ) + *ENDIF + + *-- Luego convierto los archivos incluidos + FOR I = 1 TO lnFileCount + lcFile = laFiles(I) + .o_Frm_Avance.lbl_TAREA.CAPTION = C_PROCESSING_LOC + ' ' + lcFile + '...' + .o_Frm_Avance.nVALUE = I + + IF .l_ShowProgress + .o_Frm_Avance.SHOW() + ENDIF + + IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) + lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + ENDIF + ENDFOR + CASE EVL(tcType,'0') <> '0' AND EVL(tcTextName,'0') <> '0' *-- Compatibilidad con SourceSafe @@ -1496,7 +1577,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .n_ExisteCapitalizacion = 0 EXIT ENDIF - + CASE .n_ExisteCapitalizacion = 0 *-- Segunda pasada en adelante: No hay programa de capitalización EXIT @@ -1742,7 +1823,7 @@ DEFINE CLASS c_conversor_base AS SESSION C_FB2PRG_CODE = '' && Contendrá todo el código generado THIS.c_CurDir = SYS(5) + CURDIR() THIS.oFSO = CREATEOBJECT( "Scripting.FileSystemObject") - + THIS.SortSpecialProps() ENDPROC @@ -2383,10 +2464,10 @@ DEFINE CLASS c_conversor_base AS SESSION LPARAMETERS tcOperation, tcPropName TRY - LOCAL lcPropName, lnPos, loEx as Exception + LOCAL lcPropName, lnPos, loEx AS EXCEPTION lcPropName = tcPropName tcOperation = UPPER(EVL(tcOperation,'')) - + DO CASE CASE tcOperation == 'GETNAME' lcPropName = SUBSTR(tcPropName,5) @@ -2540,18 +2621,18 @@ DEFINE CLASS c_conversor_base AS SESSION RETURN ENDPROC - - - + + + PROTECTED PROCEDURE SortSpecialProps_Add LPARAMETERS tcPropName, I I = I + 1 DIMENSION THIS.a_SpecialProps(I) THIS.a_SpecialProps(I) = tcPropName ENDPROC - - - + + + PROCEDURE SortSpecialProps LOCAL I I = 0 @@ -2584,7 +2665,7 @@ DEFINE CLASS c_conversor_base AS SESSION .SortSpecialProps_Add( 'Picture', @I ) && Image: Debe estar antes que Stretch y después de DefTop/DefLeft .SortSpecialProps_Add( 'Stretch', @I ) && Image: Debe estar antes que BackStyle .SortSpecialProps_Add( 'BackStyle', @I ) && Image: Debe estar antes que BorderStyle - .SortSpecialProps_Add( 'BorderStyle', @I ) && + .SortSpecialProps_Add( 'BorderStyle', @I ) && .SortSpecialProps_Add( 'BorderWidth', @I ) .SortSpecialProps_Add( 'Enabled', @I ) .SortSpecialProps_Add( 'Top', @I ) @@ -4430,7 +4511,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ENDWITH && THIS I = I - 1 - + IF NOT EMPTY(toClase._Comentario) toClase._Comentario = SUBSTR( toClase._Comentario, 3 ) + CR_LF && Quito el primer CR+LF ENDIF @@ -6628,7 +6709,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin STORE 0 TO lnCodError STORE '' TO lcIndex, lcFieldDef - lnDataSessionID = .DataSessionId + lnDataSessionID = .DATASESSIONID ERASE (FORCEEXT(.c_OutputFile, 'DBF')) ERASE (FORCEEXT(.c_OutputFile, 'FPT')) @@ -6688,7 +6769,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin lcCreateTable = lcCreateTable + SUBSTR(lcFieldDef,3) + ')' &lcCreateTable. - + IF NOT EMPTY(toFoxBin2Prg.run_AfterCreateTable) lnSelect = SELECT() DO (toFoxBin2Prg.run_AfterCreateTable) WITH (lnDataSessionID), (.c_OutputFile), (toTable) @@ -8401,15 +8482,15 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base supgroup="<>" supvalchng="<>" <<>> ENDTEXT - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + " " - C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + "