- Aplicado ClassPerFile a los miembros del DBC :-)

This commit is contained in:
fdbozzo
2015-03-20 00:58:38 +01:00
parent 9c4d3e9d6f
commit 1341a67d5c

View File

@@ -10805,6 +10805,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
+ [<memberdata name="write_definicionobjetosole" display="write_DefinicionObjetosOLE"/>] ; + [<memberdata name="write_definicionobjetosole" display="write_DefinicionObjetosOLE"/>] ;
+ [<memberdata name="write_enddefine_sicorresponde" display="write_ENDDEFINE_SiCorresponde"/>] ; + [<memberdata name="write_enddefine_sicorresponde" display="write_ENDDEFINE_SiCorresponde"/>] ;
+ [<memberdata name="write_external_class_header" display="write_EXTERNAL_CLASS_HEADER"/>] ; + [<memberdata name="write_external_class_header" display="write_EXTERNAL_CLASS_HEADER"/>] ;
+ [<memberdata name="write_external_member_header" display="write_EXTERNAL_MEMBER_HEADER"/>] ;
+ [<memberdata name="write_hidden_properties" display="write_HIDDEN_Properties"/>] ; + [<memberdata name="write_hidden_properties" display="write_HIDDEN_Properties"/>] ;
+ [<memberdata name="write_include" display="write_INCLUDE"/>] ; + [<memberdata name="write_include" display="write_INCLUDE"/>] ;
+ [<memberdata name="write_objectmetadata" display="write_OBJECTMETADATA"/>] ; + [<memberdata name="write_objectmetadata" display="write_OBJECTMETADATA"/>] ;
@@ -12124,6 +12125,30 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
PROCEDURE write_EXTERNAL_MEMBER_HEADER
LPARAMETERS toFoxBin2Prg, tcMemberName, tcMemberType, tcCodigo
*-- < EXTERNAL_MEMBER Name = "member-name" Type="member-type" />
#IF .F.
LOCAL toFoxBin2Prg AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
#ENDIF
IF EMPTY(tcCodigo) THEN
TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
*-- EXTERNAL_MEMBER identify external member names / EXTERNAL_MEMBER identifica los nombres de los miembros externos
ENDTEXT
ENDIF
IF NOT EMPTY(tcMemberName) AND NOT EMPTY(tcMemberType) THEN
TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_EXTERNAL_MEMBER_I>> Name="<<tcMemberName>>" Type="<<tcMemberType>>" <<C_EXTERNAL_MEMBER_F>>
ENDTEXT
ENDIF
RETURN
ENDPROC
PROCEDURE write_INCLUDE PROCEDURE write_INCLUDE
LPARAMETERS toReg, tcCodigo LPARAMETERS toReg, tcCodigo
*-- #INCLUDE *-- #INCLUDE
@@ -14301,10 +14326,15 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg
#ENDIF #ENDIF
TRY TRY
LOCAL lnCodError, laDatabases(1), lnDatabases_Count, lcEventsFile, laClasses(1,2), lnClasses_Count LOCAL lnCodError, laDatabases(1), lnDatabases_Count, lcEventsFile, lcExternalHeader, lcCodigo ;
, lnClassCount, laClasses(1,3) ;
, loConnection AS CL_DBC_CONNECTION OF 'FOXBIN2PRG.PRG' ;
, loTable AS CL_DBC_TABLE OF 'FOXBIN2PRG.PRG' ;
, loView AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG'
STORE 0 TO lnCodError, lnClasses_Count STORE NULL TO loRelation, loView, loTable
STORE '' TO laClasses STORE 0 TO lnCodError, lnDatabases_Count, lnClassCount
STORE '' TO laDatabases, lcEventsFile, lcExternalHeader, laClasses, lcCodigo, C_FB2PRG_CODE
WITH THIS AS c_conversor_dbc_a_prg OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_dbc_a_prg OF 'FOXBIN2PRG.PRG'
lnDatabases_Count = ADATABASES(laDatabases) lnDatabases_Count = ADATABASES(laDatabases)
@@ -14333,18 +14363,90 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg
.AvanceDelProceso( 'Analyzing DBC metadata...', 1, 2, 1 ) .AvanceDelProceso( 'Analyzing DBC metadata...', 1, 2, 1 )
C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() *C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER()
*-- Header
C_FB2PRG_CODE = C_FB2PRG_CODE + toDatabase.toText(@toFoxBin2Prg) C_FB2PRG_CODE = C_FB2PRG_CODE + toDatabase.toText(@toFoxBin2Prg)
*-- Header
*fdb*
IF toFoxBin2Prg.l_UseClassPerFile
.write_EXTERNAL_MEMBER_HEADER( @toFoxBin2Prg, .F., .F., @lcExternalHeader )
*-- Connections
FOR EACH loConnection IN toDatabase._Connections FOXOBJECT
lnClassCount = lnClassCount + 1
DIMENSION laClasses(lnClassCount,3)
laClasses(lnClassCount,1) = LOWER( loConnection._Name )
laClasses(lnClassCount,2) = loConnection._ToText
laClasses(lnClassCount,3) = 'connection'
.write_EXTERNAL_MEMBER_HEADER( @toFoxBin2Prg, laClasses(lnClassCount,1), laClasses(lnClassCount,3), @lcExternalHeader )
ENDFOR
*-- Tables
FOR EACH loTable IN toDatabase._Tables FOXOBJECT
lnClassCount = lnClassCount + 1
DIMENSION laClasses(lnClassCount,3)
laClasses(lnClassCount,1) = LOWER( loTable._Name )
laClasses(lnClassCount,2) = loTable._ToText
laClasses(lnClassCount,3) = 'table'
.write_EXTERNAL_MEMBER_HEADER( @toFoxBin2Prg, laClasses(lnClassCount,1), laClasses(lnClassCount,3), @lcExternalHeader )
ENDFOR
*-- Views
FOR EACH loView IN toDatabase._Views FOXOBJECT
lnClassCount = lnClassCount + 1
DIMENSION laClasses(lnClassCount,3)
laClasses(lnClassCount,1) = LOWER( loView._Name )
laClasses(lnClassCount,2) = loView._ToText
laClasses(lnClassCount,3) = 'view'
.write_EXTERNAL_MEMBER_HEADER( @toFoxBin2Prg, laClasses(lnClassCount,1), laClasses(lnClassCount,3), @lcExternalHeader )
ENDFOR
*-- Stored Procedures
IF NOT EMPTY(toDatabase._StoredProcedures) THEN
lnClassCount = lnClassCount + 1
DIMENSION laClasses(lnClassCount,3)
laClasses(lnClassCount,1) = LOWER( 'sp' )
laClasses(lnClassCount,2) = toDatabase._StoredProcedures
laClasses(lnClassCount,3) = 'storedprocedures'
.write_EXTERNAL_MEMBER_HEADER( @toFoxBin2Prg, laClasses(lnClassCount,1), laClasses(lnClassCount,3), @lcExternalHeader )
ENDIF
lcExternalHeader = lcExternalHeader + CR_LF
ENDIF
*-- Genero el DC2 *-- Genero el DC2
.AvanceDelProceso( 'Writing DC2...', 2, 2, 1 ) .AvanceDelProceso( 'Writing DC2...', 2, 2, 1 )
*IF .l_Test
* toModulo = C_FB2PRG_CODE
*ELSE
* .write_OutputFile( (C_FB2PRG_CODE), .c_OutputFile, @toFoxBin2Prg )
*ENDIF
lcOutputFile = .c_OutputFile
lcCodigo = toFoxBin2Prg.get_PROGRAM_HEADER() + lcExternalHeader + C_FB2PRG_CODE
IF .l_Test IF .l_Test
toModulo = C_FB2PRG_CODE *FOR I = 1 TO lnClassCount
* lcCodigo = lcCodigo + laClasses(I,2)
*ENDFOR
*toDatabase = lcCodigo
ELSE ELSE
.write_OutputFile( (C_FB2PRG_CODE), .c_OutputFile, @toFoxBin2Prg ) IF toFoxBin2Prg.l_UseClassPerFile
.write_OutputFile( @lcCodigo, lcOutputFile, @toFoxBin2Prg )
FOR I = 1 TO lnClassCount
* lcOutputFile = '<path>DBCName' + '.' + 'MemberType' + '.' + 'MemberName' + '.' + 'dc2'
lcOutputFile = ADDBS( JUSTPATH( .c_OutputFile ) ) + JUSTSTEM( .c_OutputFile ) + '.' + laClasses(I,3) + '.' + laClasses(I,1) + '.' + JUSTEXT( .c_OutputFile )
lcCodigo = toFoxBin2Prg.get_PROGRAM_HEADER() + laClasses(I,2)
.write_OutputFile( @lcCodigo, lcOutputFile, @toFoxBin2Prg )
ENDFOR
ELSE
FOR I = 1 TO lnClassCount
lcCodigo = lcCodigo + laClasses(I,2)
ENDFOR
.write_OutputFile( @lcCodigo, lcOutputFile, @toFoxBin2Prg )
ENDIF
ENDIF ENDIF
ENDWITH && THIS ENDWITH && THIS
@@ -16678,17 +16780,19 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE
FROM TABLABIN ; FROM TABLABIN ;
WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128) ; WHERE STR(ParentID) + ObjectType + LOWER(objectName) = STR(1) + PADR('Database',10) + PADR(LOWER('StoredProceduresSource'),128) ;
INTO ARRAY laCode INTO ARRAY laCode
._StoredProcedures = laCode(1,1) TEXT TO ._StoredProcedures TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<C_STORED_PROC_I>>
<<laCode(1,1)>>
<<>> <<C_STORED_PROC_F>>
ENDTEXT
IF NOT toFoxBin2Prg.l_UseClassPerFile THEN IF NOT toFoxBin2Prg.l_UseClassPerFile THEN
TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>><<lcConnections>> <<lcConnections>>
<<>><<lcTables>> <<lcTables>>
<<>><<lcViews>> <<lcViews>>
<<>> <<>>
<<>> <<C_STORED_PROC_I>>
<<._StoredProcedures>> <<._StoredProcedures>>
<<>> <<C_STORED_PROC_F>>
ENDTEXT ENDTEXT
ENDIF ENDIF
@@ -17787,7 +17891,7 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE
<<>> <FIELDS> <<>> <FIELDS>
ENDTEXT ENDTEXT
*.KeySort = 2 && Comento para forzar modo LEGACY .KeySort = 2 && Comento para forzar modo LEGACY
FOR EACH loField IN THIS &&FOXOBJECT FOR EACH loField IN THIS &&FOXOBJECT
lcText = lcText + loField.toText( tcTable, loField._Name ) lcText = lcText + loField.toText( tcTable, loField._Name )
ENDFOR ENDFOR
@@ -18171,7 +18275,7 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE
<<>> <INDEXES> <<>> <INDEXES>
ENDTEXT ENDTEXT
*.KeySort = 2 && Comento para forzar modo LEGACY .KeySort = 2 && Comento para forzar modo LEGACY
FOR EACH loIndex IN THIS &&FOXOBJECT FOR EACH loIndex IN THIS &&FOXOBJECT
lcText = lcText + loIndex.toText( tcTable + '.' + loIndex._Name ) lcText = lcText + loIndex.toText( tcTable + '.' + loIndex._Name )
ENDFOR ENDFOR
@@ -19183,7 +19287,7 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE
<<>> <FIELDS> <<>> <FIELDS>
ENDTEXT ENDTEXT
*.KeySort = 2 && Comento para forzar modo LEGACY .KeySort = 2 && Comento para forzar modo LEGACY
FOR EACH loField IN THIS &&FOXOBJECT FOR EACH loField IN THIS &&FOXOBJECT
lcText = lcText + loField.toText( tcView, loField._Name ) lcText = lcText + loField.toText( tcView, loField._Name )
ENDFOR ENDFOR