Changeset: 8 Changeset: 8 Renombrado de métodos y refactorización del ZOrder de los objetos
This commit is contained in:
691
foxbin2prg.prg
691
foxbin2prg.prg
@@ -59,8 +59,6 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro
|
|||||||
#DEFINE C_CMT_F '--*'
|
#DEFINE C_CMT_F '--*'
|
||||||
#DEFINE C_METADATA_I '*< CLASSDATA:'
|
#DEFINE C_METADATA_I '*< CLASSDATA:'
|
||||||
#DEFINE C_METADATA_F '/>'
|
#DEFINE C_METADATA_F '/>'
|
||||||
#DEFINE C_OBJZORDER_I '*< OBJZORDER:'
|
|
||||||
#DEFINE C_OBJZORDER_F '/>'
|
|
||||||
#DEFINE C_OLE_I '*< OLE:'
|
#DEFINE C_OLE_I '*< OLE:'
|
||||||
#DEFINE C_OLE_F '/>'
|
#DEFINE C_OLE_F '/>'
|
||||||
#DEFINE C_DEFINED_PEM_I '*< DEFINED_PEM:'
|
#DEFINE C_DEFINED_PEM_I '*< DEFINED_PEM:'
|
||||||
@@ -401,9 +399,14 @@ DEFINE CLASS c_conversor_base AS SESSION
|
|||||||
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, ' ', CHR(9) ) && Quito comentarios. Ej: '#IF .F.&&cmt' ==> '#IF .F.'
|
tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, ' ', CHR(9) ) && Quito comentarios. Ej: '#IF .F.&&cmt' ==> '#IF .F.'
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF EMPTY(tcLine) OR ( LEFT(tcLine, 1) == '*' AND LEFT(tcLine, 2) # '*<' ) OR LEFT(tcLine + ' ', 5) == 'NOTE ' && Vac<61>a o Comentarios
|
DO CASE
|
||||||
|
CASE LEFT(tcLine,2) == '*<'
|
||||||
|
tcComment = tcLine
|
||||||
|
|
||||||
|
CASE EMPTY(tcLine) OR LEFT(tcLine, 1) == '*' OR LEFT(tcLine + ' ', 5) == 'NOTE ' && Vac<61>a o Comentarios
|
||||||
llLineIsOnlyComment = .T.
|
llLineIsOnlyComment = .T.
|
||||||
ENDIF
|
|
||||||
|
ENDCASE
|
||||||
|
|
||||||
RETURN llLineIsOnlyComment
|
RETURN llLineIsOnlyComment
|
||||||
ENDPROC
|
ENDPROC
|
||||||
@@ -553,196 +556,6 @@ DEFINE CLASS c_conversor_base AS SESSION
|
|||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
|
||||||
PROCEDURE evaluarDefinicionDeProcedure
|
|
||||||
LPARAMETERS toClase, tnX, tcProcedureAbierto, tcAddobjectAbierto ;
|
|
||||||
, tc_Comentario, tcProcName, tcProcType, toObjeto
|
|
||||||
*--------------------------------------------------------------------------------------------------------------
|
|
||||||
#IF .F.
|
|
||||||
LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ;
|
|
||||||
, toObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
|
||||||
#ENDIF
|
|
||||||
|
|
||||||
TRY
|
|
||||||
LOCAL I, lcNombreObjeto, lnObjProc ;
|
|
||||||
, loProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG'
|
|
||||||
|
|
||||||
IF EMPTY(toClase._Fin_Cab)
|
|
||||||
toClase._Fin_Cab = tnX-1
|
|
||||||
toClase._Ini_Cuerpo = tnX
|
|
||||||
ENDIF
|
|
||||||
IF NOT EMPTY(tcAddobjectAbierto)
|
|
||||||
ERROR 'Se ha encontrado "PROCEDURE" en la l<>nea ' + TRANSFORM(tnX) ;
|
|
||||||
+ ' cuando se esperaba encontrar el metatag "END OBJECT"'
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
loProcedure = CREATEOBJECT("CL_PROCEDURE")
|
|
||||||
loProcedure._Nombre = tcProcName
|
|
||||||
loProcedure._ProcType = tcProcType
|
|
||||||
loProcedure._Comentario = tc_Comentario
|
|
||||||
tcProcedureAbierto = loProcedure._Nombre
|
|
||||||
|
|
||||||
*-- Anoto en HiddenMethods y ProtectedMethods seg<65>n corresponda
|
|
||||||
DO CASE
|
|
||||||
CASE loProcedure._ProcType == 'hidden'
|
|
||||||
toClase._HiddenMethods = toClase._HiddenMethods + ',' + tcProcName
|
|
||||||
|
|
||||||
CASE loProcedure._ProcType == 'protected'
|
|
||||||
toClase._ProtectedMethods = toClase._ProtectedMethods + ',' + tcProcName
|
|
||||||
|
|
||||||
ENDCASE
|
|
||||||
|
|
||||||
*-- Agrego el objeto Procedimiento a la clase, o a un objeto de la clase.
|
|
||||||
IF '.' $ tcProcName
|
|
||||||
*-- Procedimiento de objeto
|
|
||||||
lcNombreObjeto = LOWER( JUSTSTEM( tcProcName ) )
|
|
||||||
|
|
||||||
*-- Busco el objeto al que corresponde el m<>todo
|
|
||||||
lnObjProc = THIS.buscarObjetoDelMetodoPorNombre( lcNombreObjeto, toClase )
|
|
||||||
|
|
||||||
IF lnObjProc = 0
|
|
||||||
*-- Procedimiento de clase
|
|
||||||
toClase.add_Procedure( loProcedure )
|
|
||||||
ELSE
|
|
||||||
*-- Procedimiento de objeto
|
|
||||||
toObjeto = toClase._AddObjects( lnObjProc )
|
|
||||||
toObjeto.add_Procedure( loProcedure )
|
|
||||||
ENDIF
|
|
||||||
ELSE
|
|
||||||
*-- Procedimiento de clase
|
|
||||||
toClase.add_Procedure( loProcedure )
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CATCH TO loEx
|
|
||||||
lnCodError = loEx.ERRORNO
|
|
||||||
|
|
||||||
IF THIS.l_Debug
|
|
||||||
SET STEP ON
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
THROW
|
|
||||||
|
|
||||||
FINALLY
|
|
||||||
STORE NULL TO loProcedure
|
|
||||||
|
|
||||||
ENDTRY
|
|
||||||
|
|
||||||
RELEASE loProcedure
|
|
||||||
ENDPROC
|
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
|
||||||
PROCEDURE evaluarLineaDeProcedure
|
|
||||||
LPARAMETERS tcLine, tcLine_Orig, toProcedure, tcProcedureAbierto
|
|
||||||
*--------------------------------------------------------------------------------------------------------------
|
|
||||||
* ta_Lineas (!@ IN ) El array con las l<>neas del bloque de texto donde buscar
|
|
||||||
* ta_ID_Bloques (?@ IN ) Array de pares de identificadores (2 cols). Ej: '#IF .F.','#ENDI' ; 'TEXT','ENDTEXT' ; etc
|
|
||||||
* ta_Ubicacion_Bloques (?@ OUT) Array con las posiciones de los bloques (2 cols). Ej: 3,14 ; 23,58 ; etc
|
|
||||||
*--------------------------------------------------------------------------------------------------------------
|
|
||||||
EXTERNAL ARRAY toProcedure
|
|
||||||
#IF .F.
|
|
||||||
LOCAL toProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG'
|
|
||||||
#ENDIF
|
|
||||||
|
|
||||||
IF LEFT( tcLine, 8 ) + ' ' == C_ENDPROC + ' ' && Fin del PROCEDURE
|
|
||||||
tcProcedureAbierto = ''
|
|
||||||
ELSE
|
|
||||||
*-- Quito 2 TABS de la izquierda (si se puede y si el integrador/desarrollador no la li<6C> quit<69>ndolos)
|
|
||||||
DO CASE
|
|
||||||
CASE LEFT( tcLine_Orig,2 ) = C_TAB + C_TAB
|
|
||||||
toProcedure.add_Line( SUBSTR(tcLine_Orig, 3) )
|
|
||||||
CASE LEFT( tcLine_Orig,1 ) = C_TAB
|
|
||||||
toProcedure.add_Line( SUBSTR(tcLine_Orig, 2) )
|
|
||||||
OTHERWISE
|
|
||||||
toProcedure.add_Line( tcLine_Orig )
|
|
||||||
ENDCASE
|
|
||||||
ENDIF
|
|
||||||
ENDPROC
|
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
|
||||||
PROCEDURE identificarBloquesDeExclusion
|
|
||||||
LPARAMETERS ta_Lineas, ta_ID_Bloques, ta_Ubicacion_Bloques
|
|
||||||
*--------------------------------------------------------------------------------------------------------------
|
|
||||||
* ta_Lineas (!@ IN ) El array con las l<>neas del bloque de texto donde buscar
|
|
||||||
* ta_ID_Bloques (?@ IN ) Array de pares de identificadores (2 cols). Ej: '#IF .F.','#ENDI' ; 'TEXT','ENDTEXT' ; etc
|
|
||||||
* ta_Ubicacion_Bloques (?@ OUT) Array con las posiciones de los bloques (2 cols). Ej: 3,14 ; 23,58 ; etc
|
|
||||||
*--------------------------------------------------------------------------------------------------------------
|
|
||||||
EXTERNAL ARRAY ta_ID_Bloques, ta_Ubicacion_Bloques
|
|
||||||
|
|
||||||
TRY
|
|
||||||
LOCAL lnBloques, I, X, lnPrimerID, lnLineas, lnLen_IDFinBQ
|
|
||||||
DIMENSION ta_Ubicacion_Bloques(1,2)
|
|
||||||
STORE 0 TO lnBloques, lnPrimerID, I, X, lnLen_IDFinBQ
|
|
||||||
|
|
||||||
lnLineas = ALEN(ta_Lineas,1)
|
|
||||||
|
|
||||||
IF lnLineas > 1
|
|
||||||
IF EMPTY(ta_ID_Bloques)
|
|
||||||
DIMENSION ta_ID_Bloques(2,2)
|
|
||||||
ta_ID_Bloques(1,1) = '#IF .F.'
|
|
||||||
ta_ID_Bloques(1,2) = '#ENDI'
|
|
||||||
ta_ID_Bloques(2,1) = C_TEXT
|
|
||||||
ta_ID_Bloques(2,2) = C_ENDTEXT
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
*-- B<>squeda del ID de inicio de bloque
|
|
||||||
FOR I = 1 TO lnLineas
|
|
||||||
lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( ta_Lineas(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) && Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt'
|
|
||||||
|
|
||||||
IF THIS.lineIsOnlyComment( @lcLine, '' )
|
|
||||||
LOOP
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
lnPrimerID = ASCAN( ta_ID_Bloques, lcLine, 1, 0, 1, 1+8 )
|
|
||||||
|
|
||||||
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
|
||||||
lnBloques = lnBloques + 1
|
|
||||||
lnLen_IDFinBQ = LEN( ta_ID_Bloques(lnPrimerID,2) )
|
|
||||||
DIMENSION ta_Ubicacion_Bloques(lnBloques,2)
|
|
||||||
ta_Ubicacion_Bloques(lnBloques,1) = I
|
|
||||||
|
|
||||||
* B<>squeda del ID de fin de bloque
|
|
||||||
FOR X = ta_Ubicacion_Bloques(lnBloques,1) + 1 TO lnLineas
|
|
||||||
lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( ta_Lineas(X), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) && Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt'
|
|
||||||
|
|
||||||
IF THIS.lineIsOnlyComment( @lcLine, '' )
|
|
||||||
LOOP
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
IF LEFT( lcLine, lnLen_IDFinBQ ) == ta_ID_Bloques(lnPrimerID,2) && Fin de bloque encontrado (#ENDI, ENDTEXT, etc)
|
|
||||||
ta_Ubicacion_Bloques(lnBloques,2) = X
|
|
||||||
EXIT
|
|
||||||
ENDIF
|
|
||||||
ENDFOR
|
|
||||||
|
|
||||||
I = X
|
|
||||||
|
|
||||||
*-- Validaci<63>n
|
|
||||||
IF EMPTY(ta_Ubicacion_Bloques(lnBloques,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(ta_Ubicacion_Bloques(lnBloques,1))
|
|
||||||
ENDIF
|
|
||||||
ENDIF
|
|
||||||
ENDFOR
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
CATCH TO loEx
|
|
||||||
lnCodError = loEx.ERRORNO
|
|
||||||
|
|
||||||
IF THIS.l_Debug
|
|
||||||
SET STEP ON
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
THROW
|
|
||||||
|
|
||||||
ENDTRY
|
|
||||||
|
|
||||||
RETURN
|
|
||||||
ENDPROC
|
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
*******************************************************************************************************************
|
||||||
* Generate a FoxPro 3.0-style row timestamp
|
* Generate a FoxPro 3.0-style row timestamp
|
||||||
FUNCTION RowTimeStamp(tDateTime)
|
FUNCTION RowTimeStamp(tDateTime)
|
||||||
@@ -951,7 +764,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
+ [<memberdata name="evaluate_pem" type="method" display="Evaluate_PEM"/>] ;
|
+ [<memberdata name="evaluate_pem" type="method" display="Evaluate_PEM"/>] ;
|
||||||
+ [<memberdata name="hiddenandprotected_pem" type="method" display="hiddenAndProtected_PEM"/>] ;
|
+ [<memberdata name="hiddenandprotected_pem" type="method" display="hiddenAndProtected_PEM"/>] ;
|
||||||
+ [<memberdata name="identificarbloquesdeexclusion" type="method" display="identificarBloquesDeExclusion"/>] ;
|
+ [<memberdata name="identificarbloquesdeexclusion" type="method" display="identificarBloquesDeExclusion"/>] ;
|
||||||
+ [<memberdata name="insertarobjeto" type="method" display="insertarObjeto"/>] ;
|
+ [<memberdata name="insert_allobjects" type="method" display="insert_AllObjects"/>] ;
|
||||||
|
+ [<memberdata name="insert_object" type="method" display="insert_Object"/>] ;
|
||||||
+ [<memberdata name="objectmethods2memo" type="method" display="objectMethods2Memo"/>] ;
|
+ [<memberdata name="objectmethods2memo" type="method" display="objectMethods2Memo"/>] ;
|
||||||
+ [</VFPData>]
|
+ [</VFPData>]
|
||||||
|
|
||||||
@@ -975,6 +789,196 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************
|
||||||
|
PROCEDURE evaluarDefinicionDeProcedure
|
||||||
|
LPARAMETERS toClase, tnX, tcProcedureAbierto, tcAddobjectAbierto ;
|
||||||
|
, tc_Comentario, tcProcName, tcProcType, toObjeto
|
||||||
|
*--------------------------------------------------------------------------------------------------------------
|
||||||
|
#IF .F.
|
||||||
|
LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ;
|
||||||
|
, toObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
TRY
|
||||||
|
LOCAL I, lcNombreObjeto, lnObjProc ;
|
||||||
|
, loProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG'
|
||||||
|
|
||||||
|
IF EMPTY(toClase._Fin_Cab)
|
||||||
|
toClase._Fin_Cab = tnX-1
|
||||||
|
toClase._Ini_Cuerpo = tnX
|
||||||
|
ENDIF
|
||||||
|
IF NOT EMPTY(tcAddobjectAbierto)
|
||||||
|
ERROR 'Se ha encontrado "PROCEDURE" en la l<>nea ' + TRANSFORM(tnX) ;
|
||||||
|
+ ' cuando se esperaba encontrar el metatag "END OBJECT"'
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
loProcedure = CREATEOBJECT("CL_PROCEDURE")
|
||||||
|
loProcedure._Nombre = tcProcName
|
||||||
|
loProcedure._ProcType = tcProcType
|
||||||
|
loProcedure._Comentario = tc_Comentario
|
||||||
|
tcProcedureAbierto = loProcedure._Nombre
|
||||||
|
|
||||||
|
*-- Anoto en HiddenMethods y ProtectedMethods seg<65>n corresponda
|
||||||
|
DO CASE
|
||||||
|
CASE loProcedure._ProcType == 'hidden'
|
||||||
|
toClase._HiddenMethods = toClase._HiddenMethods + ',' + tcProcName
|
||||||
|
|
||||||
|
CASE loProcedure._ProcType == 'protected'
|
||||||
|
toClase._ProtectedMethods = toClase._ProtectedMethods + ',' + tcProcName
|
||||||
|
|
||||||
|
ENDCASE
|
||||||
|
|
||||||
|
*-- Agrego el objeto Procedimiento a la clase, o a un objeto de la clase.
|
||||||
|
IF '.' $ tcProcName
|
||||||
|
*-- Procedimiento de objeto
|
||||||
|
lcNombreObjeto = LOWER( JUSTSTEM( tcProcName ) )
|
||||||
|
|
||||||
|
*-- Busco el objeto al que corresponde el m<>todo
|
||||||
|
lnObjProc = THIS.buscarObjetoDelMetodoPorNombre( lcNombreObjeto, toClase )
|
||||||
|
|
||||||
|
IF lnObjProc = 0
|
||||||
|
*-- Procedimiento de clase
|
||||||
|
toClase.add_Procedure( loProcedure )
|
||||||
|
ELSE
|
||||||
|
*-- Procedimiento de objeto
|
||||||
|
toObjeto = toClase._AddObjects( lnObjProc )
|
||||||
|
toObjeto.add_Procedure( loProcedure )
|
||||||
|
ENDIF
|
||||||
|
ELSE
|
||||||
|
*-- Procedimiento de clase
|
||||||
|
toClase.add_Procedure( loProcedure )
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CATCH TO loEx
|
||||||
|
lnCodError = loEx.ERRORNO
|
||||||
|
|
||||||
|
IF THIS.l_Debug
|
||||||
|
SET STEP ON
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
THROW
|
||||||
|
|
||||||
|
FINALLY
|
||||||
|
STORE NULL TO loProcedure
|
||||||
|
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
RELEASE loProcedure
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************
|
||||||
|
PROCEDURE evaluarLineaDeProcedure
|
||||||
|
LPARAMETERS tcLine, tcLine_Orig, toProcedure, tcProcedureAbierto
|
||||||
|
*--------------------------------------------------------------------------------------------------------------
|
||||||
|
* ta_Lineas (!@ IN ) El array con las l<>neas del bloque de texto donde buscar
|
||||||
|
* ta_ID_Bloques (?@ IN ) Array de pares de identificadores (2 cols). Ej: '#IF .F.','#ENDI' ; 'TEXT','ENDTEXT' ; etc
|
||||||
|
* ta_Ubicacion_Bloques (?@ OUT) Array con las posiciones de los bloques (2 cols). Ej: 3,14 ; 23,58 ; etc
|
||||||
|
*--------------------------------------------------------------------------------------------------------------
|
||||||
|
EXTERNAL ARRAY toProcedure
|
||||||
|
#IF .F.
|
||||||
|
LOCAL toProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
IF LEFT( tcLine, 8 ) + ' ' == C_ENDPROC + ' ' && Fin del PROCEDURE
|
||||||
|
tcProcedureAbierto = ''
|
||||||
|
ELSE
|
||||||
|
*-- Quito 2 TABS de la izquierda (si se puede y si el integrador/desarrollador no la li<6C> quit<69>ndolos)
|
||||||
|
DO CASE
|
||||||
|
CASE LEFT( tcLine_Orig,2 ) = C_TAB + C_TAB
|
||||||
|
toProcedure.add_Line( SUBSTR(tcLine_Orig, 3) )
|
||||||
|
CASE LEFT( tcLine_Orig,1 ) = C_TAB
|
||||||
|
toProcedure.add_Line( SUBSTR(tcLine_Orig, 2) )
|
||||||
|
OTHERWISE
|
||||||
|
toProcedure.add_Line( tcLine_Orig )
|
||||||
|
ENDCASE
|
||||||
|
ENDIF
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************
|
||||||
|
PROCEDURE identificarBloquesDeExclusion
|
||||||
|
LPARAMETERS ta_Lineas, ta_ID_Bloques, ta_Ubicacion_Bloques
|
||||||
|
*--------------------------------------------------------------------------------------------------------------
|
||||||
|
* ta_Lineas (!@ IN ) El array con las l<>neas del bloque de texto donde buscar
|
||||||
|
* ta_ID_Bloques (?@ IN ) Array de pares de identificadores (2 cols). Ej: '#IF .F.','#ENDI' ; 'TEXT','ENDTEXT' ; etc
|
||||||
|
* ta_Ubicacion_Bloques (?@ OUT) Array con las posiciones de los bloques (2 cols). Ej: 3,14 ; 23,58 ; etc
|
||||||
|
*--------------------------------------------------------------------------------------------------------------
|
||||||
|
EXTERNAL ARRAY ta_ID_Bloques, ta_Ubicacion_Bloques
|
||||||
|
|
||||||
|
TRY
|
||||||
|
LOCAL lnBloques, I, X, lnPrimerID, lnLineas, lnLen_IDFinBQ
|
||||||
|
DIMENSION ta_Ubicacion_Bloques(1,2)
|
||||||
|
STORE 0 TO lnBloques, lnPrimerID, I, X, lnLen_IDFinBQ
|
||||||
|
|
||||||
|
lnLineas = ALEN(ta_Lineas,1)
|
||||||
|
|
||||||
|
IF lnLineas > 1
|
||||||
|
IF EMPTY(ta_ID_Bloques)
|
||||||
|
DIMENSION ta_ID_Bloques(2,2)
|
||||||
|
ta_ID_Bloques(1,1) = '#IF .F.'
|
||||||
|
ta_ID_Bloques(1,2) = '#ENDI'
|
||||||
|
ta_ID_Bloques(2,1) = C_TEXT
|
||||||
|
ta_ID_Bloques(2,2) = C_ENDTEXT
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
*-- B<>squeda del ID de inicio de bloque
|
||||||
|
FOR I = 1 TO lnLineas
|
||||||
|
lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( ta_Lineas(I), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) && Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt'
|
||||||
|
|
||||||
|
IF THIS.lineIsOnlyComment( @lcLine )
|
||||||
|
LOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
lnPrimerID = ASCAN( ta_ID_Bloques, lcLine, 1, 0, 1, 1+8 )
|
||||||
|
|
||||||
|
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
||||||
|
lnBloques = lnBloques + 1
|
||||||
|
lnLen_IDFinBQ = LEN( ta_ID_Bloques(lnPrimerID,2) )
|
||||||
|
DIMENSION ta_Ubicacion_Bloques(lnBloques,2)
|
||||||
|
ta_Ubicacion_Bloques(lnBloques,1) = I
|
||||||
|
|
||||||
|
* B<>squeda del ID de fin de bloque
|
||||||
|
FOR X = ta_Ubicacion_Bloques(lnBloques,1) + 1 TO lnLineas
|
||||||
|
lcLine = LTRIM( STRTRAN( STRTRAN( CHRTRAN( ta_Lineas(X), CHR(9), ' ' ), ' ', ' ' ), ' ', ' ' ) ) && Reduzco los espacios. Ej: '#IF .F. && cmt' ==> '#IF .F.&&cmt'
|
||||||
|
|
||||||
|
IF THIS.lineIsOnlyComment( @lcLine )
|
||||||
|
LOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF LEFT( lcLine, lnLen_IDFinBQ ) == ta_ID_Bloques(lnPrimerID,2) && Fin de bloque encontrado (#ENDI, ENDTEXT, etc)
|
||||||
|
ta_Ubicacion_Bloques(lnBloques,2) = X
|
||||||
|
EXIT
|
||||||
|
ENDIF
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
I = X
|
||||||
|
|
||||||
|
*-- Validaci<63>n
|
||||||
|
IF EMPTY(ta_Ubicacion_Bloques(lnBloques,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(ta_Ubicacion_Bloques(lnBloques,1))
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
ENDFOR
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CATCH TO loEx
|
||||||
|
lnCodError = loEx.ERRORNO
|
||||||
|
|
||||||
|
IF THIS.l_Debug
|
||||||
|
SET STEP ON
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
THROW
|
||||||
|
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
*******************************************************************************************************************
|
||||||
PROCEDURE analizarBloque_FoxBin2Prg
|
PROCEDURE analizarBloque_FoxBin2Prg
|
||||||
*------------------------------------------------------
|
*------------------------------------------------------
|
||||||
@@ -1324,7 +1328,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
*******************************************************************************************************************
|
||||||
PROCEDURE insertarObjeto
|
PROCEDURE insert_Object
|
||||||
LPARAMETERS toClase, toObjeto
|
LPARAMETERS toClase, toObjeto
|
||||||
|
|
||||||
*-- Inserto el objeto
|
*-- Inserto el objeto
|
||||||
@@ -1377,6 +1381,70 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************
|
||||||
|
PROCEDURE insert_AllObjects
|
||||||
|
*-- Recorro primero los objetos con ZOrder definido, y luego los dem<65>s
|
||||||
|
*-- NOTA: Como consecuencia de una integraci<63>n de c<>digo, puede que se hayan agregado objetos nuevos (desconocidos).
|
||||||
|
LPARAMETERS toClase
|
||||||
|
|
||||||
|
#IF .F.
|
||||||
|
LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
TRY
|
||||||
|
LOCAL loObjeto, X, lcObjName
|
||||||
|
|
||||||
|
IF toClase._AddObject_Count > 0
|
||||||
|
|
||||||
|
*-- Armo array con el orden Z de los objetos
|
||||||
|
DIMENSION laObjNames( toClase._AddObject_Count, 2 )
|
||||||
|
|
||||||
|
FOR X = 1 TO toClase._AddObject_Count
|
||||||
|
loObjeto = toClase._AddObjects( X )
|
||||||
|
laObjNames( X, 1 ) = JUSTEXT( loObjeto._Nombre )
|
||||||
|
laObjNames( X, 2 ) = loObjeto._ZOrder
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
ASORT( laObjNames, 2, -1, 0, 1 )
|
||||||
|
|
||||||
|
|
||||||
|
*-- Escribo los objetos en el orden Z
|
||||||
|
FOR X = 1 TO toClase._AddObject_Count
|
||||||
|
lcObjName = laObjNames( X, 1 )
|
||||||
|
|
||||||
|
FOR EACH loObjeto IN toClase._AddObjects FOXOBJECT
|
||||||
|
*-- Verifico que sea el objeto que corresponde
|
||||||
|
IF loObjeto._Pendiente AND loObjeto._ObjName == lcObjName
|
||||||
|
loObjeto._Pendiente = .F.
|
||||||
|
THIS.insert_Object( toClase, loObjeto )
|
||||||
|
EXIT
|
||||||
|
ENDIF
|
||||||
|
ENDFOR
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
|
||||||
|
*-- Recorro los objetos Desconocidos
|
||||||
|
FOR EACH loObjeto IN toClase._AddObjects FOXOBJECT
|
||||||
|
IF loObjeto._Pendiente
|
||||||
|
THIS.insert_Object( toClase, loObjeto )
|
||||||
|
ENDIF
|
||||||
|
ENDFOR
|
||||||
|
|
||||||
|
ENDIF && toClase._AddObject_Count > 0
|
||||||
|
|
||||||
|
CATCH TO loEx
|
||||||
|
IF THIS.l_Debug
|
||||||
|
SET STEP ON
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
THROW
|
||||||
|
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
*******************************************************************************************************************
|
||||||
PROCEDURE identificarBloquesDeCodigo
|
PROCEDURE identificarBloquesDeCodigo
|
||||||
LPARAMETERS ta_Lineas, ta_Pos_BloquesExclusion, toModulo
|
LPARAMETERS ta_Lineas, ta_Pos_BloquesExclusion, toModulo
|
||||||
@@ -1465,10 +1533,10 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
loOle = NULL
|
loOle = NULL
|
||||||
loOle = CREATEOBJECT('CL_OLE')
|
loOle = CREATEOBJECT('CL_OLE')
|
||||||
|
|
||||||
loOle._Nombre = ALLTRIM( STREXTRACT( lcLine, ' nombre = "', '"', 1, 1 ) )
|
loOle._Nombre = ALLTRIM( STREXTRACT( lcLine, ' Nombre = "', '"', 1, 1 ) )
|
||||||
loOle._Parent = ALLTRIM( STREXTRACT( lcLine, ' parent = "', '"', 1, 1 ) )
|
loOle._Parent = ALLTRIM( STREXTRACT( lcLine, ' Parent = "', '"', 1, 1 ) )
|
||||||
loOle._ObjName = ALLTRIM( STREXTRACT( lcLine, ' objname = "', '"', 1, 1 ) )
|
loOle._ObjName = ALLTRIM( STREXTRACT( lcLine, ' ObjName = "', '"', 1, 1 ) )
|
||||||
loOle._CheckSum = ALLTRIM( STREXTRACT( lcLine, ' checksum = "', '"', 1, 1 ) )
|
loOle._CheckSum = ALLTRIM( STREXTRACT( lcLine, ' CheckSum = "', '"', 1, 1 ) )
|
||||||
loOle._Value = STRCONV( ALLTRIM( STREXTRACT( lcLine, ' value = "', '"', 1, 1 ) ), 14 )
|
loOle._Value = STRCONV( ALLTRIM( STREXTRACT( lcLine, ' value = "', '"', 1, 1 ) ), 14 )
|
||||||
toModulo.add_OLE( loOle )
|
toModulo.add_OLE( loOle )
|
||||||
|
|
||||||
@@ -1533,10 +1601,6 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
LOOP
|
LOOP
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF LEFT(lcLine,2) == '*<'
|
|
||||||
lc_Comentario = lcLine
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
lnLine_Len = LEN(lcLine)
|
lnLine_Len = LEN(lcLine)
|
||||||
|
|
||||||
|
|
||||||
@@ -1570,12 +1634,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
CASE LEFT(lcLine, LEN(C_METADATA_I)) == C_METADATA_I && METADATA de la CLASE
|
CASE LEFT(lcLine, LEN(C_METADATA_I)) == C_METADATA_I && METADATA de la CLASE
|
||||||
lcLine = CHRTRAN( lcLine, ['], ["] )
|
lcLine = CHRTRAN( lcLine, ['], ["] )
|
||||||
loClase._MetaData = STREXTRACT( lcLine, C_METADATA_I, C_METADATA_F, 1, 1 )
|
loClase._MetaData = STREXTRACT( lcLine, C_METADATA_I, C_METADATA_F, 1, 1 )
|
||||||
loClase._BaseClass = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' baseclass = "', '"', 1, 1 ) )
|
loClase._BaseClass = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' BaseClass = "', '"', 1, 1 ) )
|
||||||
loClase._TimeStamp = INT( .RowTimeStamp( EVALUATE( '{^' + ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' timestamp = "', '"', 1, 1 ) ) + '}') ) )
|
loClase._TimeStamp = INT( .RowTimeStamp( EVALUATE( '{^' + ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' Timestamp = "', '"', 1, 1 ) ) + '}') ) )
|
||||||
loClase._Scale = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' scale = "', '"', 1, 1 ) )
|
loClase._Scale = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' Scale = "', '"', 1, 1 ) )
|
||||||
loClase._UniqueID = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' uniqueid = "', '"', 1, 1 ) )
|
loClase._UniqueID = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' UniqueID = "', '"', 1, 1 ) )
|
||||||
loClase._ProjectClassIcon = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' projectclassicon = "', '"', 1, 1 ) )
|
loClase._ProjectClassIcon = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' ProjectClassIcon = "', '"', 1, 1 ) )
|
||||||
loClase._ClassIcon = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' classicon = "', '"', 1, 1 ) )
|
loClase._ClassIcon = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' ClassIcon = "', '"', 1, 1 ) )
|
||||||
loClase._Ole2 = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' OLEObject = "', '"', 1, 1 ) )
|
loClase._Ole2 = ALLTRIM( STREXTRACT( loClase._MetaData + ',', ' OLEObject = "', '"', 1, 1 ) )
|
||||||
|
|
||||||
IF NOT EMPTY( loClase._Ole2 ) && Le agrego "OLEObject = " delante
|
IF NOT EMPTY( loClase._Ole2 ) && Le agrego "OLEObject = " delante
|
||||||
@@ -1583,10 +1647,6 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
CASE LEFT(lcLine, LEN(C_OBJZORDER_I)) == C_OBJZORDER_I && Orden de los objetos
|
|
||||||
lcLine = CHRTRAN( lcLine, ['], ["] )
|
|
||||||
loClase._ObjZOrder = ALLTRIM( STREXTRACT( lcLine, C_OBJZORDER_I, C_OBJZORDER_F, 1, 1 ) )
|
|
||||||
|
|
||||||
CASE LEFT(lcLine, LEN(C_DEFINED_PEM_I)) == C_DEFINED_PEM_I
|
CASE LEFT(lcLine, LEN(C_DEFINED_PEM_I)) == C_DEFINED_PEM_I
|
||||||
loClase._Defined_PEM = ALLTRIM( STREXTRACT( lcLine, C_DEFINED_PEM_I, C_DEFINED_PEM_F, 1, 1) )
|
loClase._Defined_PEM = ALLTRIM( STREXTRACT( lcLine, C_DEFINED_PEM_I, C_DEFINED_PEM_F, 1, 1) )
|
||||||
|
|
||||||
@@ -1643,15 +1703,18 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
|
|
||||||
CASE EMPTY( loClase._Fin_Cab ) && Propiedades del DEFINE CLASS
|
CASE EMPTY( loClase._Fin_Cab ) && Propiedades del DEFINE CLASS
|
||||||
loClase.add_Property( THIS.desnormalizarAsignacion( RTRIM(lcLine) ), RTRIM(lc_Comentario) )
|
*loClase.add_Property( THIS.desnormalizarAsignacion( RTRIM(lcLine) ), RTRIM(lc_Comentario) )
|
||||||
|
loClase.add_Property( RTRIM(lcLine), RTRIM(lc_Comentario) )
|
||||||
|
|
||||||
|
|
||||||
CASE NOT EMPTY(lcAddobjectAbierto) && Propiedades del ADD OBJECT
|
CASE NOT EMPTY(lcAddobjectAbierto) && Propiedades del ADD OBJECT
|
||||||
IF NOT LEFT(lcLine,2) == '*<'
|
IF NOT LEFT(lcLine,2) == '*<'
|
||||||
IF RIGHT(lcLine, 3) == ', ;'
|
IF RIGHT(lcLine, 3) == ', ;'
|
||||||
loObjeto.add_Property( .desnormalizarAsignacion( LEFT(lcLine, lnLine_Len - 3) ) )
|
*loObjeto.add_Property( .desnormalizarAsignacion( LEFT(lcLine, lnLine_Len - 3) ) )
|
||||||
|
loObjeto.add_Property( LEFT(lcLine, lnLine_Len - 3) )
|
||||||
ELSE
|
ELSE
|
||||||
loObjeto.add_Property( .desnormalizarAsignacion( RTRIM(lcLine) ) )
|
*loObjeto.add_Property( .desnormalizarAsignacion( RTRIM(lcLine) ) )
|
||||||
|
loObjeto.add_Property( RTRIM(lcLine) )
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -1659,11 +1722,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
*< END OBJECT: baseclass = "olecontrol" Uniqueid = "_3X50L3I7V" OLEObject = "C:\WINDOWS\system32\FOXTLIB.OCX" checksum = "4101493921" />
|
*< END OBJECT: baseclass = "olecontrol" Uniqueid = "_3X50L3I7V" OLEObject = "C:\WINDOWS\system32\FOXTLIB.OCX" checksum = "4101493921" />
|
||||||
lc_Comentario = ALLTRIM( STREXTRACT( lc_Comentario, C_END_OBJECT_I, C_END_OBJECT_F, 1, 1 ) ) + ','
|
lc_Comentario = ALLTRIM( STREXTRACT( lc_Comentario, C_END_OBJECT_I, C_END_OBJECT_F, 1, 1 ) ) + ','
|
||||||
lc_Comentario = CHRTRAN( lc_Comentario, ['], ["] )
|
lc_Comentario = CHRTRAN( lc_Comentario, ['], ["] )
|
||||||
loObjeto._ClassLib = ALLTRIM( STREXTRACT( lc_Comentario, 'classlib = "', '"', 1, 1 ) )
|
loObjeto._ClassLib = ALLTRIM( STREXTRACT( lc_Comentario, 'ClassLib = "', '"', 1, 1 ) )
|
||||||
loObjeto._BaseClass = ALLTRIM( STREXTRACT( lc_Comentario, 'baseclass = "', '"', 1, 1 ) )
|
loObjeto._BaseClass = ALLTRIM( STREXTRACT( lc_Comentario, 'BaseClass = "', '"', 1, 1 ) )
|
||||||
loObjeto._UniqueID = ALLTRIM( STREXTRACT( lc_Comentario, 'uniqueid = "', '"', 1, 1 ) )
|
loObjeto._UniqueID = ALLTRIM( STREXTRACT( lc_Comentario, 'UniqueID = "', '"', 1, 1 ) )
|
||||||
loObjeto._Ole2 = ALLTRIM( STREXTRACT( lc_Comentario, 'OLEObject = "', '"', 1, 1 ) )
|
loObjeto._Ole2 = ALLTRIM( STREXTRACT( lc_Comentario, 'OLEObject = "', '"', 1, 1 ) )
|
||||||
loObjeto._TimeStamp = INT( .RowTimeStamp( EVALUATE( '{^' + ALLTRIM( STREXTRACT( lc_Comentario + ',', 'timestamp = "', '"', 1, 1 ) ) + '}' ) ) )
|
loObjeto._ZOrder = INT( VAL( ALLTRIM( STREXTRACT( lc_Comentario, 'ZOrder = "', '"', 1, 1 ) ) ) )
|
||||||
|
loObjeto._TimeStamp = INT( .RowTimeStamp( EVALUATE( '{^' + ALLTRIM( STREXTRACT( lc_Comentario + ',', 'Timestamp = "', '"', 1, 1 ) ) + '}' ) ) )
|
||||||
|
|
||||||
IF NOT EMPTY( loObjeto._Ole2 ) && Le agrego "OLEObject = " delante
|
IF NOT EMPTY( loObjeto._Ole2 ) && Le agrego "OLEObject = " delante
|
||||||
loObjeto._Ole2 = 'OLEObject = ' + loObjeto._Ole2 + CR_LF
|
loObjeto._Ole2 = 'OLEObject = ' + loObjeto._Ole2 + CR_LF
|
||||||
@@ -1708,7 +1772,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
CATCH TO loEx
|
CATCH TO loEx
|
||||||
lnCodError = loEx.ERRORNO
|
lnCodError = loEx.ERRORNO
|
||||||
loEx.UserValue = 'ATENCION: EL ERROR PODRIA SER DEL PROGRAMA FUENTE' + CR_LF + CR_LF ;
|
*loEx.UserValue = 'ATENCION: EL ERROR PODRIA SER DEL PROGRAMA FUENTE' + CR_LF + CR_LF ;
|
||||||
+ JUSTEXT(THIS.c_inputFile) + ' Line ' + TRANSFORM(I) + ':' + ta_Lineas(I)
|
+ JUSTEXT(THIS.c_inputFile) + ' Line ' + TRANSFORM(I) + ':' + ta_Lineas(I)
|
||||||
|
|
||||||
IF THIS.l_Debug
|
IF THIS.l_Debug
|
||||||
@@ -1838,6 +1902,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
*-- Uniqueid ID <20>nico
|
*-- Uniqueid ID <20>nico
|
||||||
*-- Ole Informaci<63>n campo ole
|
*-- Ole Informaci<63>n campo ole
|
||||||
*-- Ole2 Informaci<63>n campo ole2
|
*-- Ole2 Informaci<63>n campo ole2
|
||||||
|
*-- ZOrder Orden Z del objeto
|
||||||
*-- Props_Count Cantidad de propiedades del objeto
|
*-- Props_Count Cantidad de propiedades del objeto
|
||||||
*-- Props[1] Array con todas las propiedades del objeto y sus valores
|
*-- Props[1] Array con todas las propiedades del objeto y sus valores
|
||||||
*-- Procedure_count Cantidad de procedimientos definidos en el array procedures[]
|
*-- Procedure_count Cantidad de procedimientos definidos en el array procedures[]
|
||||||
@@ -1860,7 +1925,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
#ENDIF
|
#ENDIF
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
LOCAL lcObjName, lnCodError, loEx AS EXCEPTION ;
|
LOCAL lcObjName, lnCodError, I, X, loEx AS EXCEPTION ;
|
||||||
, loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ;
|
, loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ;
|
||||||
, loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
, loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
||||||
|
|
||||||
@@ -1922,34 +1987,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin
|
|||||||
, loClase._User )
|
, loClase._User )
|
||||||
|
|
||||||
|
|
||||||
*-- Recorro los objetos CONOCIDOS primero
|
THIS.insert_AllObjects( @loClase )
|
||||||
*-- NOTA: Como consecuencia de una integraci<63>n de c<>digo, puede que se hayan agregado objetos nuevos (desconocidos).
|
|
||||||
IF loClase._AddObject_Count > 0
|
|
||||||
|
|
||||||
IF NOT EMPTY(loClase._ObjZOrder)
|
|
||||||
FOR lnOrden = 1 TO OCCURS(',', loClase._ObjZOrder) + 1
|
|
||||||
lcObjName = GETWORDNUM(loClase._ObjZOrder, lnOrden, ',')
|
|
||||||
|
|
||||||
FOR EACH loObjeto IN loClase._AddObjects FOXOBJECT
|
|
||||||
*-- Verifico que sea el objeto que corresponde
|
|
||||||
IF loObjeto._Pendiente AND loObjeto._ObjName == lcObjName
|
|
||||||
loObjeto._Pendiente = .F.
|
|
||||||
THIS.insertarObjeto( loClase, loObjeto )
|
|
||||||
EXIT
|
|
||||||
ENDIF
|
|
||||||
ENDFOR
|
|
||||||
ENDFOR
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
|
|
||||||
*-- Recorro los objetos DESCONOCIDOS
|
|
||||||
FOR EACH loObjeto IN loClase._AddObjects FOXOBJECT
|
|
||||||
IF loObjeto._Pendiente
|
|
||||||
THIS.insertarObjeto( loClase, loObjeto )
|
|
||||||
ENDIF
|
|
||||||
ENDFOR
|
|
||||||
|
|
||||||
ENDIF && loClase._AddObject_Count > 0
|
|
||||||
|
|
||||||
|
|
||||||
*-- Inserto el COMMENT
|
*-- Inserto el COMMENT
|
||||||
@@ -2135,6 +2173,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
|
|||||||
*-- Uniqueid ID <20>nico
|
*-- Uniqueid ID <20>nico
|
||||||
*-- Ole Informaci<63>n campo ole
|
*-- Ole Informaci<63>n campo ole
|
||||||
*-- Ole2 Informaci<63>n campo ole2
|
*-- Ole2 Informaci<63>n campo ole2
|
||||||
|
*-- ZOrder Orden Z del objeto
|
||||||
*-- Props_Count Cantidad de propiedades del objeto
|
*-- Props_Count Cantidad de propiedades del objeto
|
||||||
*-- Props[1] Array con todas las propiedades del objeto y sus valores
|
*-- Props[1] Array con todas las propiedades del objeto y sus valores
|
||||||
*-- Procedure_count Cantidad de procedimientos definidos en el array procedures[]
|
*-- Procedure_count Cantidad de procedimientos definidos en el array procedures[]
|
||||||
@@ -2224,34 +2263,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin
|
|||||||
, loClase._User )
|
, loClase._User )
|
||||||
|
|
||||||
|
|
||||||
*-- Recorro los objetos CONOCIDOS primero
|
THIS.insert_AllObjects( @loClase )
|
||||||
*-- NOTA: Como consecuencia de una integraci<63>n de c<>digo, puede que se hayan agregado objetos nuevos (desconocidos).
|
|
||||||
IF loClase._AddObject_Count > 0
|
|
||||||
|
|
||||||
IF NOT EMPTY(loClase._ObjZOrder)
|
|
||||||
FOR lnOrden = 1 TO OCCURS(',', loClase._ObjZOrder) + 1
|
|
||||||
lcObjName = GETWORDNUM(loClase._ObjZOrder, lnOrden, ',')
|
|
||||||
|
|
||||||
FOR EACH loObjeto IN loClase._AddObjects FOXOBJECT
|
|
||||||
*-- Verifico que sea el objeto que corresponde
|
|
||||||
IF loObjeto._Pendiente AND loObjeto._ObjName == lcObjName
|
|
||||||
loObjeto._Pendiente = .F.
|
|
||||||
THIS.insertarObjeto( loClase, loObjeto )
|
|
||||||
EXIT
|
|
||||||
ENDIF
|
|
||||||
ENDFOR
|
|
||||||
ENDFOR
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
|
|
||||||
*-- Recorro los objetos DESCONOCIDOS
|
|
||||||
FOR EACH loObjeto IN loClase._AddObjects FOXOBJECT
|
|
||||||
IF loObjeto._Pendiente
|
|
||||||
THIS.insertarObjeto( loClase, loObjeto )
|
|
||||||
ENDIF
|
|
||||||
ENDFOR
|
|
||||||
|
|
||||||
ENDIF && loClase._AddObject_Count > 0
|
|
||||||
|
|
||||||
|
|
||||||
IF NOT loClase._BaseClass == 'dataenvironment'
|
IF NOT loClase._BaseClass == 'dataenvironment'
|
||||||
@@ -3124,8 +3136,6 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
|
|||||||
|
|
||||||
THIS.write_METADATA( @loRegClass )
|
THIS.write_METADATA( @loRegClass )
|
||||||
|
|
||||||
THIS.OBJ_ZORDER_List( @loRegClass )
|
|
||||||
|
|
||||||
THIS.write_INCLUDE( @loRegClass )
|
THIS.write_INCLUDE( @loRegClass )
|
||||||
|
|
||||||
THIS.write_CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments, @laProtected )
|
THIS.write_CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments, @laProtected )
|
||||||
@@ -3139,7 +3149,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
|
|||||||
|
|
||||||
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
|
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
|
||||||
SCATTER MEMO NAME loRegObj
|
SCATTER MEMO NAME loRegObj
|
||||||
|
ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
|
||||||
THIS.write_ADD_OBJECTS_WithProperties( @loRegObj )
|
THIS.write_ADD_OBJECTS_WithProperties( @loRegObj )
|
||||||
ENDSCAN
|
ENDSCAN
|
||||||
|
|
||||||
@@ -3276,8 +3286,6 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
|
|||||||
|
|
||||||
THIS.write_METADATA( @loRegClass )
|
THIS.write_METADATA( @loRegClass )
|
||||||
|
|
||||||
THIS.OBJ_ZORDER_List( @loRegClass )
|
|
||||||
|
|
||||||
THIS.write_INCLUDE( @loRegClass )
|
THIS.write_INCLUDE( @loRegClass )
|
||||||
|
|
||||||
THIS.write_CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments, @laProtected )
|
THIS.write_CLASS_PROPERTIES( @loRegClass, @laProps, @laPropsWithComments, @laProtected )
|
||||||
@@ -3291,7 +3299,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
|
|||||||
|
|
||||||
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
|
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
|
||||||
SCATTER MEMO NAME loRegObj
|
SCATTER MEMO NAME loRegObj
|
||||||
|
ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
|
||||||
THIS.write_ADD_OBJECTS_WithProperties( @loRegObj )
|
THIS.write_ADD_OBJECTS_WithProperties( @loRegObj )
|
||||||
ENDSCAN
|
ENDSCAN
|
||||||
|
|
||||||
@@ -3413,8 +3421,6 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
|
|||||||
|
|
||||||
IF FOUND()
|
IF FOUND()
|
||||||
loProject._MainProg = ALLTRIM( NAME, 0, ' ', CHR(0) )
|
loProject._MainProg = ALLTRIM( NAME, 0, ' ', CHR(0) )
|
||||||
*ELSE
|
|
||||||
* ERROR '<27>El proyecto no tiene programa principal!'
|
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
@@ -3651,14 +3657,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
+ [<memberdata name="write_define_class" type="method" display="write_DEFINE_CLASS"/>] ;
|
+ [<memberdata name="write_define_class" type="method" display="write_DEFINE_CLASS"/>] ;
|
||||||
+ [<memberdata name="write_metadata" type="method" display="write_METADATA"/>] ;
|
+ [<memberdata name="write_metadata" type="method" display="write_METADATA"/>] ;
|
||||||
+ [<memberdata name="write_include" type="method" display="write_INCLUDE"/>] ;
|
+ [<memberdata name="write_include" type="method" display="write_INCLUDE"/>] ;
|
||||||
+ [<memberdata name="obj_zorder_list" type="method" display="OBJ_ZORDER_List"/>] ;
|
|
||||||
+ [<memberdata name="write_class_properties" type="method" display="write_CLASS_PROPERTIES"/>] ;
|
+ [<memberdata name="write_class_properties" type="method" display="write_CLASS_PROPERTIES"/>] ;
|
||||||
+ [<memberdata name="write_program_header" type="method" display="write_PROGRAM_HEADER"/>] ;
|
+ [<memberdata name="write_program_header" type="method" display="write_PROGRAM_HEADER"/>] ;
|
||||||
+ [<memberdata name="exception2str" type="method" display="Exception2Str"/>] ;
|
+ [<memberdata name="exception2str" type="method" display="Exception2Str"/>] ;
|
||||||
+ [<memberdata name="get_propswithcomments" type="method" display="Get_PropsWithComments"/>] ;
|
+ [<memberdata name="get_propswithcomments" type="method" display="Get_PropsWithComments"/>] ;
|
||||||
+ [<memberdata name="indentarmemo" type="method" display="IndentarMemo"/>] ;
|
+ [<memberdata name="indentarmemo" type="method" display="IndentarMemo"/>] ;
|
||||||
+ [<memberdata name="memoinoneline" type="method" display="MemoInOneLine"/>] ;
|
+ [<memberdata name="memoinoneline" type="method" display="MemoInOneLine"/>] ;
|
||||||
+ [<memberdata name="memowithmultiplelines" type="method" display="MemoWithMultipleLines"/>] ;
|
+ [<memberdata name="set_multilinememowithaddobjectproperties" type="method" display="set_MultilineMemoWithAddObjectProperties"/>] ;
|
||||||
+ [<memberdata name="normalizarasignacion" type="method" display="normalizarAsignacion"/>] ;
|
+ [<memberdata name="normalizarasignacion" type="method" display="normalizarAsignacion"/>] ;
|
||||||
+ [<memberdata name="get_nombresobjetosolepublic" type="method" display="get_NombresObjetosOLEPublic"/>] ;
|
+ [<memberdata name="get_nombresobjetosolepublic" type="method" display="get_NombresObjetosOLEPublic"/>] ;
|
||||||
+ [<memberdata name="sortnames" type="method" display="SortNames"/>] ;
|
+ [<memberdata name="sortnames" type="method" display="SortNames"/>] ;
|
||||||
@@ -3764,12 +3769,16 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
PROCEDURE write_ADD_OBJECTS_WithProperties
|
PROCEDURE write_ADD_OBJECTS_WithProperties
|
||||||
LPARAMETERS toRegObj
|
LPARAMETERS toRegObj
|
||||||
|
|
||||||
|
#IF .F.
|
||||||
|
LOCAL toRegObj AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
LOCAL lcMemo
|
LOCAL lcMemo
|
||||||
|
|
||||||
*-- Defino los objetos a cargar
|
*-- Defino los objetos a cargar
|
||||||
THIS.SortNames( toRegObj.PROPERTIES, '', '', @lcMemo )
|
THIS.SortNames( toRegObj.PROPERTIES, '', '', @lcMemo )
|
||||||
lcMemo = THIS.MemoWithMultipleLines( lcMemo, C_TAB + C_TAB, .T. )
|
lcMemo = THIS.set_MultilineMemoWithAddObjectProperties( lcMemo, C_TAB + C_TAB, .T. )
|
||||||
|
|
||||||
IF '.' $ toRegObj.PARENT
|
IF '.' $ toRegObj.PARENT
|
||||||
*-- Este caso: clase.objeto.objeto ==> se quita clase
|
*-- Este caso: clase.objeto.objeto ==> se quita clase
|
||||||
@@ -3796,12 +3805,16 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
|
|
||||||
IF NOT EMPTY(toRegObj.CLASSLOC)
|
IF NOT EMPTY(toRegObj.CLASSLOC)
|
||||||
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
classlib = "<<toRegObj.ClassLoc>>" <<>>
|
ClassLib = "<<toRegObj.ClassLoc>>" <<>>
|
||||||
ENDTEXT
|
ENDTEXT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
baseclass = "<<toRegObj.Baseclass>>" Uniqueid = "<<toRegObj.Uniqueid>>" Timestamp = "<<THIS.getTimeStamp(toRegObj.Timestamp)>>" <<>>
|
BaseClass = "<<toRegObj.Baseclass>>" Uniqueid = "<<toRegObj.Uniqueid>>" <<>>
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
|
Timestamp = "<<THIS.getTimeStamp(toRegObj.Timestamp)>>" ZOrder = "<<TRANSFORM(toRegObj._ZOrder)>>" <<>>
|
||||||
ENDTEXT
|
ENDTEXT
|
||||||
|
|
||||||
*-- Agrego metainformaci<63>n para objetos OLE
|
*-- Agrego metainformaci<63>n para objetos OLE
|
||||||
@@ -3935,12 +3948,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
lnProtectedItem = ASCAN(taProtected, lcPropName, 1, 0, 0, 0)
|
lnProtectedItem = ASCAN(taProtected, lcPropName, 1, 0, 0, 0)
|
||||||
|
|
||||||
*-- Ajustes de algunos casos especiales
|
*-- Ajustes de algunos casos especiales
|
||||||
taProps(I) = THIS.normalizarAsignacion( taProps(I), @lcComentarios )
|
*taProps(I) = THIS.normalizarAsignacion( taProps(I), @lcComentarios )
|
||||||
|
|
||||||
*-- Estos comentarios solo son los generados como metadados por los autoajustes especiales
|
*-- Estos comentarios solo son los generados como metadados por los autoajustes especiales
|
||||||
IF NOT EMPTY( lcComentarios )
|
*IF NOT EMPTY( lcComentarios )
|
||||||
taProps(I) = taProps(I) + C_TAB + C_TAB + lcComentarios
|
* taProps(I) = taProps(I) + C_TAB + C_TAB + lcComentarios
|
||||||
ENDIF
|
*ENDIF
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE lnProtectedItem = 0
|
CASE lnProtectedItem = 0
|
||||||
@@ -4029,34 +4042,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
|
||||||
PROCEDURE OBJ_ZORDER_List
|
|
||||||
LPARAMETERS toReg
|
|
||||||
|
|
||||||
LOCAL lcObjectOrder, lnRecno
|
|
||||||
*-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA OBTENER SU ORDEN
|
|
||||||
lnRecno = RECNO()
|
|
||||||
lcObjectOrder = ''
|
|
||||||
SET ORDER TO 0
|
|
||||||
LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == toReg.OBJNAME
|
|
||||||
|
|
||||||
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == toReg.OBJNAME
|
|
||||||
lcObjectOrder = lcObjectOrder + ',' + TABLABIN.OBJNAME
|
|
||||||
ENDSCAN
|
|
||||||
|
|
||||||
lcObjectOrder = SUBSTR(lcObjectOrder, 2) && Quito la primera coma ','
|
|
||||||
SET ORDER TO PARENT_OBJ
|
|
||||||
GOTO RECORD (lnRecno)
|
|
||||||
|
|
||||||
*-- Object ZOrder
|
|
||||||
IF NOT EMPTY(lcObjectOrder) THEN
|
|
||||||
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
|
||||||
<<C_TAB>><<C_OBJZORDER_I>> <<lcObjectOrder>> <<C_OBJZORDER_F>>
|
|
||||||
ENDTEXT
|
|
||||||
ENDIF
|
|
||||||
ENDPROC
|
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
*******************************************************************************************************************
|
||||||
PROCEDURE write_METADATA
|
PROCEDURE write_METADATA
|
||||||
LPARAMETERS toRegClass
|
LPARAMETERS toRegClass
|
||||||
@@ -4261,53 +4246,51 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
*******************************************************************************************************************
|
||||||
PROCEDURE MemoWithMultipleLines( tcMethod, tcLeftIndentation, tlNormalizeLine )
|
PROCEDURE set_MultilineMemoWithAddObjectProperties( tcMethod, tcLeftIndentation, tlNormalizeLine )
|
||||||
TRY
|
TRY
|
||||||
LOCAL lcLine, I, lcComentarios, laLines(1)
|
LOCAL lcLine, I, lcComentarios, laLines(1), lcFinDeLinea_Coma_PuntoComa_CR
|
||||||
lcLine = ''
|
lcLine = ''
|
||||||
|
lcFinDeLinea = ', ;' + CR_LF
|
||||||
|
|
||||||
IF NOT EMPTY(tcMethod)
|
IF NOT EMPTY(tcMethod)
|
||||||
FOR I = 1 TO ALINES(laLines, m.tcMethod, 0)
|
IF VARTYPE(tcLeftIndentation) # 'C'
|
||||||
lcComentarios = ''
|
tcLeftIndentation = ''
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF VARTYPE(tcLeftIndentation) = 'C' AND LEN(tcLeftIndentation) > 0
|
FOR I = 1 TO ALINES(laLines, m.tcMethod, 0)
|
||||||
lcLine = lcLine + tcLeftIndentation
|
*lcComentarios = ''
|
||||||
ENDIF
|
*lcLine = lcLine + tcLeftIndentation
|
||||||
|
|
||||||
*-- Ajustes de algunos casos especiales
|
*-- Ajustes de algunos casos especiales
|
||||||
laLines(I) = THIS.normalizarAsignacion( laLines(I), @lcComentarios )
|
*laLines(I) = THIS.normalizarAsignacion( laLines(I), @lcComentarios )
|
||||||
lcLine = lcLine + laLines(I) + ', ;'
|
*lcLine = lcLine + laLines(I) + ', ;'
|
||||||
|
|
||||||
*-- Estos comentarios solo con los metadatos autogenerados por los ajustes especiales
|
*-- Estos comentarios solo con los metadatos autogenerados por los ajustes especiales
|
||||||
IF NOT EMPTY( lcComentarios )
|
*IF NOT EMPTY( lcComentarios )
|
||||||
lcLine = lcLine + C_TAB + C_TAB + lcComentarios
|
* lcLine = lcLine + C_TAB + C_TAB + lcComentarios
|
||||||
ENDIF
|
*ENDIF
|
||||||
|
|
||||||
lcLine = lcLine + CR_LF
|
*lcLine = lcLine + CR_LF
|
||||||
|
|
||||||
|
lcLine = lcLine + tcLeftIndentation + laLines(I) + lcFinDeLinea
|
||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
*-- Si la <20>ltima propiedad tiene comentarios, los quito temporalmente
|
*-- Si la <20>ltima propiedad tiene comentarios, los quito temporalmente
|
||||||
IF NOT EMPTY(lcComentarios)
|
*IF NOT EMPTY(lcComentarios)
|
||||||
*lcLine = SUBSTR( lcLine, 1, LEN(lcLine) - LEN(lcComentarios) - 2 - 2 )
|
* lcLine = STUFF( lcLine, LEN(lcLine) - LEN(lcComentarios) - 2 - 2 + 1, LEN(lcComentarios) + 2, '' )
|
||||||
lcLine = STUFF( lcLine, LEN(lcLine) - LEN(lcComentarios) - 2 - 2 + 1, LEN(lcComentarios) + 2, '' )
|
*ENDIF
|
||||||
ENDIF
|
|
||||||
|
|
||||||
*-- Quito el ", ;" final. Como quitarlo depende de si tiene indentaci<63>n.
|
*-- Quito el ", ;<CRLF>" final
|
||||||
IF VARTYPE(tcLeftIndentation) = 'C' AND LEN(tcLeftIndentation) > 0
|
lcLine = tcLeftIndentation + SUBSTR(lcLine, 1 + LEN(tcLeftIndentation), LEN(lcLine) - LEN(tcLeftIndentation) - LEN(lcFinDeLinea))
|
||||||
lcLine = tcLeftIndentation + SUBSTR(lcLine, 1 + LEN(tcLeftIndentation), LEN(lcLine) - LEN(tcLeftIndentation) - 5)
|
|
||||||
ELSE
|
|
||||||
*lcLine = SUBSTR(lcLine, 1, LEN(lcLine) - 6)
|
|
||||||
lcLine = SUBSTR(lcLine, 1, LEN(lcLine) - 5)
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
*-- Si la <20>ltima l<>nea tiene comentarios, los restablezco
|
*-- Si la <20>ltima l<>nea tiene comentarios, los restablezco
|
||||||
IF NOT EMPTY(lcComentarios)
|
*IF NOT EMPTY(lcComentarios)
|
||||||
lcLine = lcLine + C_TAB + C_TAB + lcComentarios
|
* lcLine = lcLine + C_TAB + C_TAB + lcComentarios
|
||||||
ENDIF
|
*ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
CATCH TO loEx
|
CATCH TO loEx
|
||||||
loEx.UserValue = 'ATENCION: EL ERROR PODRIA SER DEL PROGRAMA FUENTE' + CR_LF + CR_LF ;
|
*loEx.UserValue = 'ATENCION: EL ERROR PODRIA SER DEL PROGRAMA FUENTE' + CR_LF + CR_LF ;
|
||||||
+ JUSTEXT(THIS.c_inputFile) + ' MEMO Line ' + TRANSFORM(I) + ':' + laLines(I) + CR_LF + CR_LF ;
|
+ JUSTEXT(THIS.c_inputFile) + ' MEMO Line ' + TRANSFORM(I) + ':' + laLines(I) + CR_LF + CR_LF ;
|
||||||
+ 'Analyzed memo content:' + CR_LF + tcMethod
|
+ 'Analyzed memo content:' + CR_LF + tcMethod
|
||||||
IF THIS.l_Debug
|
IF THIS.l_Debug
|
||||||
@@ -4752,7 +4735,6 @@ DEFINE CLASS CL_CLASE AS CUSTOM
|
|||||||
+ [<memberdata name="_metadata" type="property" display="_MetaData"/>] ;
|
+ [<memberdata name="_metadata" type="property" display="_MetaData"/>] ;
|
||||||
+ [<memberdata name="_nombre" type="property" display="_Nombre"/>] ;
|
+ [<memberdata name="_nombre" type="property" display="_Nombre"/>] ;
|
||||||
+ [<memberdata name="_objname" type="property" display="_ObjName"/>] ;
|
+ [<memberdata name="_objname" type="property" display="_ObjName"/>] ;
|
||||||
+ [<memberdata name="_objzorder" type="property" display="_ObjZOrder"/>] ;
|
|
||||||
+ [<memberdata name="_ole" type="property" display="_Ole"/>] ;
|
+ [<memberdata name="_ole" type="property" display="_Ole"/>] ;
|
||||||
+ [<memberdata name="_ole2" type="property" display="_Ole2"/>] ;
|
+ [<memberdata name="_ole2" type="property" display="_Ole2"/>] ;
|
||||||
+ [<memberdata name="_olepublic" type="property" display="_OlePublic"/>] ;
|
+ [<memberdata name="_olepublic" type="property" display="_OlePublic"/>] ;
|
||||||
@@ -4804,7 +4786,6 @@ DEFINE CLASS CL_CLASE AS CUSTOM
|
|||||||
_AddObject_Count = 0
|
_AddObject_Count = 0
|
||||||
_Procedure_Count = 0
|
_Procedure_Count = 0
|
||||||
_User = ''
|
_User = ''
|
||||||
_ObjZOrder = ''
|
|
||||||
|
|
||||||
|
|
||||||
************************************************************************************************
|
************************************************************************************************
|
||||||
|
|||||||
Reference in New Issue
Block a user