Changeset: 170 - Generación de VC2/SC2 con nuevo header metadata <OBJECTDATA> para centralizar uniqueid, timestamp y ZOrder y reducir bastante las diferencias en un diff/merge

This commit is contained in:
fernando
2014-02-21 01:08:04 +01:00
parent 4b9450a2a3
commit f61fbfa3e2

View File

@@ -1,6 +1,6 @@
*---------------------------------------------------------------------------------------------------
* M<>dulo.........: FOXBIN2PRG.PRG - PARA VISUAL FOXPRO 9.0
* Autor..........: Fernando D. Bozzo (mailto:fdbozzo@gmail.com)
* Autor..........: Fernando D. Bozzo (mailto:fdbozzo@gmail.com) - http://fdbozzo.blogspot.com
* Fecha creaci<63>n.: 04/11/2013
*
* LICENCIA:
@@ -121,9 +121,6 @@
*---------------------------------------------------------------------------------------------------
LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName, tcRecompile, tcNoTimestamps
*-- Internacionalizaci<63>n / Internationalization
*-- Fin / End
*-- NO modificar! / Do NOT change!
#DEFINE C_CMT_I '*--'
#DEFINE C_CMT_F '--*'
@@ -6935,6 +6932,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
+ [<memberdata name="write_add_objects_withproperties" display="write_ADD_OBJECTS_WithProperties"/>] ;
+ [<memberdata name="write_all_object_methods" display="write_ALL_OBJECT_METHODS"/>] ;
+ [<memberdata name="write_cabecera_reporte" display="write_CABECERA_REPORTE"/>] ;
+ [<memberdata name="write_classmetadata" display="write_CLASSMETADATA"/>] ;
+ [<memberdata name="write_class_methods" display="write_CLASS_METHODS"/>] ;
+ [<memberdata name="write_class_properties" display="write_CLASS_PROPERTIES"/>] ;
+ [<memberdata name="write_dataenvironment_reporte" display="write_DATAENVIRONMENT_REPORTE"/>] ;
@@ -6958,7 +6956,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
+ [<memberdata name="write_enddefine_sicorresponde" display="write_ENDDEFINE_SiCorresponde"/>] ;
+ [<memberdata name="write_hidden_properties" display="write_HIDDEN_Properties"/>] ;
+ [<memberdata name="write_include" display="write_INCLUDE"/>] ;
+ [<memberdata name="write_metadata" display="write_METADATA"/>] ;
+ [<memberdata name="write_objectmetadata" display="write_OBJECTMETADATA"/>] ;
+ [<memberdata name="write_protected_properties" display="write_PROTECTED_Properties"/>] ;
+ [</VFPData>]
@@ -7550,9 +7548,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT
ENDIF
*TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
* BaseClass="<<toRegObj.Baseclass>>" UniqueID="<<toRegObj.Uniqueid>>"
* Timestamp="<<THIS.getTimeStamp(toRegObj.Timestamp)>>" ZOrder="<<TRANSFORM(toRegObj._ZOrder)>>" <<>>
*ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
BaseClass="<<toRegObj.Baseclass>>" UniqueID="<<toRegObj.Uniqueid>>"
Timestamp="<<THIS.getTimeStamp(toRegObj.Timestamp)>>" ZOrder="<<TRANSFORM(toRegObj._ZOrder)>>" <<>>
BaseClass="<<toRegObj.Baseclass>>" <<>>
ENDTEXT
*-- Agrego metainformaci<63>n para objetos OLE
@@ -7890,7 +7891,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*******************************************************************************************************************
PROCEDURE write_METADATA
PROCEDURE write_CLASSMETADATA
LPARAMETERS toRegClass
*-- Agrego Metadatos de la clase (Baseclass, Timestamp, Scale, Uniqueid)
@@ -7901,7 +7902,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8
<<>> <<C_CLASSDATA_I>>
Baseclass="<<toRegClass.Baseclass>>"
Timestamp="<<THIS.getTimeStamp(toRegClass.Timestamp)>>"
Timestamp="<<ALLTRIM(THIS.getTimeStamp(toRegClass.Timestamp))>>"
Scale="<<toRegClass.Reserved6>>"
Uniqueid="<<toRegClass.Uniqueid>>"
ENDTEXT
@@ -7931,6 +7932,30 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8
<<C_CLASSDATA_F>>
ENDTEXT
ENDPROC
*******************************************************************************************************************
PROCEDURE write_OBJECTMETADATA
LPARAMETERS toRegObj
*-- Agrego Metadatos de los objetos (Timestamp, UniqueID)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>>
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<<>> <<C_OBJECTDATA_I>>
ObjName="<<toRegObj.objname>>" <<>>
UniqueID="<<toRegObj.Uniqueid>>"
Timestamp="<<ALLTRIM(THIS.getTimeStamp(toRegObj.Timestamp))>>"
ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8
<<C_OBJECTDATA_F>>
ENDTEXT
ENDPROC
@@ -8446,10 +8471,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1)
STORE 0 TO lnCodError, lnLastClass
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ;
, laObjs(1,3), I
STORE 0 TO lnCodError, lnLastClass, lnObjCount
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1), laObjs(1)
STORE NULL TO loRegClass, loRegObj
WITH THIS AS c_conversor_vcx_a_prg OF 'FOXBIN2PRG.PRG'
@@ -8483,6 +8509,8 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegClass.UNIQUEID = ''
ELSE
loRegClass.UNIQUEID = ALLTRIM(loRegClass.UNIQUEID)
ENDIF
lcObjName = ALLTRIM(loRegClass.OBJNAME)
@@ -8493,7 +8521,40 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
.write_DEFINE_CLASS_COMMENTS( @loRegClass )
.write_METADATA( @loRegClass )
.write_CLASSMETADATA( @loRegClass )
*-------------------------------------------------------------------------------
*-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICI<43>N
*-------------------------------------------------------------------------------
lnRecno = RECNO()
LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
lnObjCount = lnObjCount + 1
DIMENSION laObjs(lnObjCount,3)
SCATTER MEMO NAME loRegObj
laObjs(lnObjCount,1) = loRegObj
laObjs(lnObjCount,2) = RECNO() && ZOrder
laObjs(lnObjCount,3) = lnObjCount && Alphabetic order
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ELSE
loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID)
ENDIF
loRegObj = NULL
ENDSCAN
GOTO RECORD (lnRecno)
ASORT(laObjs, 2, -1, 0, 0) && Orden por ZOrder
FOR I = 1 TO lnObjCount
.write_OBJECTMETADATA( laObjs(I,1) )
ENDFOR
.write_INCLUDE( @loRegClass )
@@ -8503,24 +8564,29 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
*-------------------------------------------------------------------------------
*-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICI<43>N
*-------------------------------------------------------------------------------
lnRecno = RECNO()
LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
*lnRecno = RECNO()
*LOCATE FOR 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
*SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
* SCATTER MEMO NAME loRegObj
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
*IF NOT toFoxBin2Prg.l_UseTimestamps
* loRegObj.TIMESTAMP = 0
*ENDIF
*IF toFoxBin2Prg.l_ClearUniqueID
* loRegObj.UNIQUEID = ''
*ENDIF
ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
.write_ADD_OBJECTS_WithProperties( @loRegObj )
ENDSCAN
*ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
* .write_ADD_OBJECTS_WithProperties( @loRegObj )
*ENDSCAN
GOTO RECORD (lnRecno)
*GOTO RECORD (lnRecno)
ASORT(laObjs, 3, -1, 0, 0) && Orden Alfab<61>tico (del SCAN original)
FOR I = 1 TO lnObjCount
.write_ADD_OBJECTS_WithProperties( laObjs(I,1) )
ENDFOR
*-- OBTENGO LOS M<>TODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO
@@ -8548,6 +8614,8 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ELSE
loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID)
ENDIF
.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods )
@@ -8619,9 +8687,10 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
#ENDIF
TRY
LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1)
STORE 0 TO lnCodError, lnLastClass
LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ;
, laObjs(1,3), I
STORE 0 TO lnCodError, lnLastClass, lnObjCount
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
STORE NULL TO loRegClass, loRegObj
@@ -8670,6 +8739,15 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
*loRegClass = NULL
SCATTER MEMO NAME loRegClass
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegClass.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegClass.UNIQUEID = ''
ELSE
loRegClass.UNIQUEID = ALLTRIM(loRegClass.UNIQUEID)
ENDIF
lcObjName = ALLTRIM(loRegClass.OBJNAME)
.write_ENDDEFINE_SiCorresponde( lnLastClass )
@@ -8678,7 +8756,40 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
.write_DEFINE_CLASS_COMMENTS( @loRegClass )
.write_METADATA( @loRegClass )
.write_CLASSMETADATA( @loRegClass )
*-------------------------------------------------------------------------------
*-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICI<43>N
*-------------------------------------------------------------------------------
lnRecno = RECNO()
LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
lnObjCount = lnObjCount + 1
DIMENSION laObjs(lnObjCount,3)
SCATTER MEMO NAME loRegObj
laObjs(lnObjCount,1) = loRegObj
laObjs(lnObjCount,2) = RECNO() && ZOrder
laObjs(lnObjCount,3) = lnObjCount && Alphabetic order
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ELSE
loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID)
ENDIF
loRegObj = NULL
ENDSCAN
GOTO RECORD (lnRecno)
ASORT(laObjs, 2, -1, 0, 0) && Orden por ZOrder
FOR I = 1 TO lnObjCount
.write_OBJECTMETADATA( laObjs(I,1) )
ENDFOR
.write_INCLUDE( @loRegClass )
@@ -8688,24 +8799,29 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
*-------------------------------------------------------------------------------
*-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICI<43>N
*-------------------------------------------------------------------------------
lnRecno = RECNO()
LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
*lnRecno = RECNO()
*LOCATE FOR 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
*SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName
* SCATTER MEMO NAME loRegObj
IF NOT toFoxBin2Prg.l_UseTimestamps
loRegObj.TIMESTAMP = 0
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ENDIF
* IF NOT toFoxBin2Prg.l_UseTimestamps
* loRegObj.TIMESTAMP = 0
* ENDIF
* IF toFoxBin2Prg.l_ClearUniqueID
* loRegObj.UNIQUEID = ''
* ENDIF
ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
.write_ADD_OBJECTS_WithProperties( @loRegObj )
ENDSCAN
* ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios
* .write_ADD_OBJECTS_WithProperties( @loRegObj )
*ENDSCAN
GOTO RECORD (lnRecno)
*GOTO RECORD (lnRecno)
ASORT(laObjs, 3, -1, 0, 0) && Orden Alfab<61>tico (del SCAN original)
FOR I = 1 TO lnObjCount
.write_ADD_OBJECTS_WithProperties( laObjs(I,1) )
ENDFOR
*-- OBTENGO LOS M<>TODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO
@@ -8735,6 +8851,8 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
ENDIF
IF toFoxBin2Prg.l_ClearUniqueID
loRegObj.UNIQUEID = ''
ELSE
loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID)
ENDIF
.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods )