diff --git a/foxbin2prg.prg b/foxbin2prg.prg
index 9b02d75..7ed3d4f 100644
--- a/foxbin2prg.prg
+++ b/foxbin2prg.prg
@@ -5641,7 +5641,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
+ [] ;
+ [] ;
+ [] ;
+ + [] ;
+ + [] ;
+ [] ;
+ + [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -6981,564 +6985,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDPROC
- *******************************************************************************************************************
- PROCEDURE write_DBF_HEADER
- LPARAMETERS tn_HexFileType, tl_FileHasCDX, tl_FileHasMemo, tl_FileIsDBC, tc_DBC_Name
- TRY
- LOCAL laFields(1,18), loEx AS EXCEPTION
-
- *FOR I = 1 TO AFIELDS(laFields)
- * IF INLIST( laFields(I,2), 'M', 'Q', 'V', 'W' )
- * ll_FileHasMemo = .T.
- * EXIT
- * ENDIF
- *ENDFOR
-
- 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+2 PRETEXT 1+2
- <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- ENDTEXT
-
- *-- Fields
- THIS.write_DBF_FIELDS()
-
- *-- Indexes
- THIS.write_DBF_INDEXES()
-
- 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+2 PRETEXT 1+2
- <<>>
- ENDTEXT
-
- CATCH TO loEx
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBF_FIELDS
- TRY
- LOCAL I, laFields(1,18), loEx AS EXCEPTION
-
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- ENDTEXT
-
- FOR I = 1 TO AFIELDS(laFields)
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- ENDTEXT
- ENDFOR
-
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>> <>
- <<>>
- ENDTEXT
-
- CATCH TO loEx
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBF_INDEXES
- TRY
- LOCAL I, laTagInfo(1,6), loEx AS EXCEPTION
-
- IF TAGCOUNT() > 0
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <><><>
- <<>>
- <<>> <>
- ENDTEXT
-
- FOR I = 1 TO ATAGINFO( laTagInfo )
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>> <>
- <<>>
- ENDTEXT
- ENDIF
-
- CATCH TO loEx
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBC_HEADER
- TRY
- LOCAL I, lcText, lcDBC, loEx AS EXCEPTION
- lcText = ''
- lcDBC = JUSTSTEM(DBC())
-
- TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
-
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- ENDTEXT
-
- *-- Connections
- THIS.write_DBC_CONNECTIONS()
-
- *-- Tables
- THIS.write_DBC_TABLES()
-
- *-- Views
- THIS.write_DBC_VIEWS()
-
- *-- Relations
- THIS.write_DBC_RELATIONS()
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
-
- <<>>
- ENDTEXT
-
- C_FB2PRG_CODE = C_FB2PRG_CODE + lcText
-
- CATCH TO loEx
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBC_CONNECTIONS
- LPARAMETERS taConnections, tnConnection_Count
-
- EXTERNAL ARRAY taConnections
-
- TRY
- LOCAL I, lcText, lcDBC, loEx AS EXCEPTION
- lcText = ''
- lcDBC = JUSTSTEM(DBC())
-
- DIMENSION taConnections(1)
- tnConnection_Count = ADBOBJECTS( taConnections,"CONNECTION" )
-
- IF tnConnection_Count > 0
- ASORT( taConnections, 1, -1, 0, 1 )
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- FOR I = 1 TO tnConnection_Count
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- C_FB2PRG_CODE = C_FB2PRG_CODE + lcText
- ENDIF
-
- CATCH TO loEx
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBC_TABLES
- LPARAMETERS taTables, tnTable_Count
-
- EXTERNAL ARRAY taTables
-
- TRY
- LOCAL I, X, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION
- STORE 0 TO I, X, tnTable_Count, lnField_Count
- lcText = ''
- lcDBC = JUSTSTEM(DBC())
-
- DIMENSION taTables(1)
- tnTable_Count = ADBOBJECTS( taTables,"TABLE" )
-
- IF tnTable_Count > 0
- ASORT( taTables, 1, -1, 0, 1 )
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- FOR I = 1 TO tnTable_Count
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- ENDTEXT
-
- _TALLY = 0
- SELECT LOWER(TB.objectname) FROM TABLABIN TB ;
- INNER JOIN TABLABIN TB2 ON STR(TB.parentid)+TB.objecttype = STR(TB2.objectid)+PADR('Field',10) ;
- AND TB2.objectname = PADR(LOWER(taTables(I)),128) ;
- INTO ARRAY laFields
- lnField_Count = _TALLY
-
- IF lnField_Count > 0
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- FOR X = 1 TO lnField_Count
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- ENDTEXT
- ENDIF
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- C_FB2PRG_CODE = C_FB2PRG_CODE + lcText
- ENDIF
-
- CATCH TO loEx
- IF BETWEEN(I, 1, tnTable_Count)
- loEx.USERVALUE = loEx.USERVALUE + CR_LF + "taTables(" + TRANSFORM(I) + ") = " + RTRIM(taTables(I))
- ENDIF
- IF BETWEEN(X, 1, lnField_Count)
- loEx.USERVALUE = loEx.USERVALUE + CR_LF + "laFields(" + TRANSFORM(X) + ") = " + RTRIM(laFields(X))
- ENDIF
-
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- FINALLY
- USE IN (SELECT("TB"))
- USE IN (SELECT("TB2"))
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBC_VIEWS
- LPARAMETERS taViews, tnView_Count
-
- EXTERNAL ARRAY taViews
-
- TRY
- LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION
- STORE 0 TO I, X, tnView_Count, lnField_Count
- lcText = ''
- lcDBC = JUSTSTEM(DBC())
-
- DIMENSION taViews(1)
- tnView_Count = ADBOBJECTS( taViews,"VIEW" )
-
- IF tnView_Count > 0
- ASORT( taViews, 1, -1, 0, 1 )
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- FOR I = 1 TO tnView_Count
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- ENDTEXT
-
- _TALLY = 0
- _TALLY = 0
- SELECT LOWER(TB.objectname) FROM TABLABIN TB ;
- INNER JOIN TABLABIN TB2 ON STR(TB.parentid)+TB.objecttype = STR(TB2.objectid)+PADR('Field',10) ;
- AND TB2.objectname = PADR(LOWER(taViews(I)),128) ;
- INTO ARRAY laFields
- lnField_Count = _TALLY
-
- IF lnField_Count > 0
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- FOR X = 1 TO lnField_Count
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- ENDTEXT
- ENDIF
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- C_FB2PRG_CODE = C_FB2PRG_CODE + lcText
- ENDIF
-
- CATCH TO loEx
- IF BETWEEN(I, 1, tnTable_Count)
- loEx.USERVALUE = loEx.USERVALUE + CR_LF + "taViews(" + TRANSFORM(I) + ") = " + RTRIM(taViews(I))
- ENDIF
- IF BETWEEN(X, 1, lnField_Count)
- loEx.USERVALUE = loEx.USERVALUE + CR_LF + "laFields(" + TRANSFORM(X) + ") = " + RTRIM(laFields(X))
- ENDIF
-
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
- *******************************************************************************************************************
- PROCEDURE write_DBC_RELATIONS
- LPARAMETERS taRelations, tnRelation_Count
-
- EXTERNAL ARRAY taRelations
-
- TRY
- LOCAL I, lcText, lcDBC, loEx AS EXCEPTION
- lcText = ''
- lcDBC = JUSTSTEM(DBC())
-
- DIMENSION taRelations(1,5)
- tnRelation_Count = ADBOBJECTS( taRelations,"RELATION" )
-
- IF tnRelation_Count > 0
- ASORT( taRelations, 2, -1, 0, 1 )
- ASORT( taRelations, 1, -1, 0, 1 )
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- FOR I = 1 TO tnRelation_Count
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>> <>
- <<>>
- ENDTEXT
- ENDFOR
-
- TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
- <<>>
- <<>>
- ENDTEXT
-
- C_FB2PRG_CODE = C_FB2PRG_CODE + lcText
- ENDIF
-
- CATCH TO loEx
- IF THIS.l_Debug AND _VFP.STARTMODE = 0
- SET STEP ON
- ENDIF
-
- THROW
-
- ENDTRY
-
- RETURN
- ENDPROC
-
-
*******************************************************************************************************************
PROCEDURE write_DefinicionObjetosOLE
*-- Crea la definición del tag *< OLE: /> con la información de todos los objetos OLE
@@ -8393,6 +7839,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg
TRY
LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1) ;
, ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name
+ LOCAL loTable AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG'
STORE 0 TO lnCodError
lnDatabases_Count = ADATABASES(laDatabases)
@@ -8402,7 +7849,8 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg
THIS.write_PROGRAM_HEADER()
*-- Header
- THIS.write_DBF_HEADER( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name )
+ loTable = CREATEOBJECT('CL_DBF_TABLE')
+ C_FB2PRG_CODE = C_FB2PRG_CODE + loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name )
*-- Genero el DB2
@@ -8459,6 +7907,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg
TRY
LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1) ;
, ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name
+ LOCAL loDatabase AS CL_DATABASE OF 'FOXBIN2PRG.PRG'
STORE 0 TO lnCodError
lnDatabases_Count = ADATABASES(laDatabases)
@@ -8469,7 +7918,8 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg
THIS.write_PROGRAM_HEADER()
*-- Header
- THIS.write_DBC_HEADER()
+ loDatabase = CREATEOBJECT('CL_DATABASE')
+ C_FB2PRG_CODE = C_FB2PRG_CODE + loDatabase.toText()
*-- Genero el DC2
@@ -8514,6 +7964,8 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM
_MEMBERDATA = [] ;
+ [] ;
+ [] ;
+ + [] ;
+ + [] ;
+ []
l_Debug = .F.
@@ -8534,11 +7986,27 @@ DEFINE CLASS CL_CUS_BASE AS CUSTOM
*******************************************************************************************************************
PROCEDURE set_Line
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (v! IN ) Número de línea en análisis
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I
tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) )
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE analizarBloque
+ ENDPROC
+
+
+ *******************************************************************************************************************
+ PROCEDURE toText
+ ENDPROC
+
+
ENDDEFINE
@@ -8555,6 +8023,7 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION
_MEMBERDATA = [] ;
+ [] ;
+ [] ;
+ + [] ;
+ []
l_Debug = .F.
@@ -8580,6 +8049,12 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION
*******************************************************************************************************************
PROCEDURE set_Line
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (v! IN ) Número de línea en análisis
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I
tcLine = LTRIM( taCodeLines(I), 0, ' ', CHR(9) )
ENDPROC
@@ -9242,7 +8717,6 @@ DEFINE CLASS CL_DATABASE AS CL_CUS_BASE
#ENDIF
_MEMBERDATA = [] ;
- + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -9289,6 +8763,13 @@ DEFINE CLASS CL_DATABASE AS CL_CUS_BASE
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9366,6 +8847,68 @@ DEFINE CLASS CL_DATABASE AS CL_CUS_BASE
PROCEDURE DBWriteObjects
LPARAMETERS tc_OutputFile
+ LOCAL loTable AS CL_DBC_TABLE ;
+ , loConnection AS CL_DBC_CONNECTION ;
+ , loView AS CL_DBC_VIEW ;
+ , loRelation AS CL_DBC_RELATION
+
+
+ ENDPROC
+
+
+ *******************************************************************************************************************
+ PROCEDURE toText
+ TRY
+ LOCAL I, lcText, lcDBC, loEx AS EXCEPTION
+ LOCAL loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG'
+ LOCAL loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG'
+ LOCAL loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG'
+ LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+ lcDBC = JUSTSTEM(DBC())
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ ENDTEXT
+
+ *-- Connections
+ loConnections = THIS._Connections
+ lcText = lcText + loConnections.toText()
+
+ *-- Tables
+ loTables = THIS._Tables
+ lcText = lcText + loTables.toText()
+
+ *-- Views
+ loViews = THIS._Views
+ lcText = lcText + loViews.toText()
+
+ *-- Relations
+ loRelations = THIS._Relations
+ lcText = lcText + loRelations.toText()
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
ENDPROC
@@ -9378,13 +8921,16 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_COL_BASE
LOCAL THIS AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9433,6 +8979,56 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_COL_BASE
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taConnections (@? OUT) Array de conexiones
+ * tnConnection_Count (@? OUT) Cantidad de conexiones
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taConnections, tnConnection_Count
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ LOCAL loConnection AS CL_DBC_CONNECTION OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ DIMENSION taConnections(1)
+ tnConnection_Count = ADBOBJECTS( taConnections,"CONNECTION" )
+
+ IF tnConnection_Count > 0
+ ASORT( taConnections, 1, -1, 0, 1 )
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loConnection = CREATEOBJECT('CL_DBC_CONNECTION')
+
+ FOR I = 1 TO tnConnection_Count
+ lcText = lcText + loConnection.toText( taConnections(I) )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+ ENDIF
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -9461,7 +9057,6 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ []
@@ -9488,6 +9083,13 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_CUS_BASE
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9534,6 +9136,53 @@ DEFINE CLASS CL_DBC_CONNECTION AS CL_CUS_BASE
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcConnection (v! IN ) Nombre de la Conexión
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcConnection
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+
+ TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -9543,13 +9192,16 @@ DEFINE CLASS CL_DBC_TABLES AS CL_COL_BASE
LOCAL THIS AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9598,6 +9250,64 @@ DEFINE CLASS CL_DBC_TABLES AS CL_COL_BASE
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taTables (@? OUT) Array de conexiones
+ * lnTable_Count (@? OUT) Cantidad de conexiones
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taTables, tnTable_Count
+
+ EXTERNAL ARRAY taTables
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ LOCAL loTable AS CL_DBC_TABLE OF 'FOXBIN2PRG.PRG'
+ STORE 0 TO I, tnTable_Count
+ lcText = ''
+
+ DIMENSION taTables(1)
+ tnTable_Count = ADBOBJECTS( taTables,"TABLE" )
+
+ IF tnTable_Count > 0
+ ASORT( taTables, 1, -1, 0, 1 )
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loTable = CREATEOBJECT('CL_DBC_TABLE')
+
+ FOR I = 1 TO tnTable_Count
+ lcText = lcText + loTable.toText( taTables(I) )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+ ENDIF
+
+
+ CATCH TO loEx
+ IF BETWEEN(I, 1, tnTable_Count)
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "taTables(" + TRANSFORM(I) + ") = " + RTRIM(TRANSFORM(taTables(I)))
+ ENDIF
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -9617,7 +9327,6 @@ DEFINE CLASS CL_DBC_TABLE AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ []
@@ -9646,6 +9355,13 @@ DEFINE CLASS CL_DBC_TABLE AS CL_CUS_BASE
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9697,6 +9413,60 @@ DEFINE CLASS CL_DBC_TABLE AS CL_CUS_BASE
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcTable (v! IN ) Nombre de la Tabla
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcTable
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+ LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG'
+ LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ ENDTEXT
+
+ loFields = CREATEOBJECT('CL_DBC_FIELDS_DB')
+ lcText = lcText + loFields.toText( tcTable )
+
+ loIndexes = CREATEOBJECT('CL_DBC_INDEXES_DB')
+ lcText = lcText + loIndexes.toText( tcTable )
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcTable = " + RTRIM(TRANSFORM(tcTable))
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -9706,13 +9476,16 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_COL_BASE
LOCAL THIS AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9762,6 +9535,64 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_COL_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcTable (v! IN ) Nombre de la Tabla
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcTable
+
+ TRY
+ LOCAL X, lcText, lnField_Count, laFields(1), loEx AS EXCEPTION
+ LOCAL loField AS CL_DBC_FIELD_DB OF 'FOXBIN2PRG.PRG'
+ STORE 0 TO X, lnField_Count
+ lcText = ''
+
+ _TALLY = 0
+ SELECT LOWER(TB.objectname) FROM TABLABIN TB ;
+ INNER JOIN TABLABIN TB2 ON STR(TB.parentid)+TB.objecttype = STR(TB2.objectid)+PADR('Field',10) ;
+ AND TB2.objectname = PADR(LOWER(tcTable),128) ;
+ INTO ARRAY laFields
+ lnField_Count = _TALLY
+
+ IF lnField_Count > 0
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loField = CREATEOBJECT('CL_DBC_FIELD_DB')
+
+ FOR X = 1 TO lnField_Count
+ lcText = lcText + loField.toText( tcTable, laFields(X) )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ ENDTEXT
+ ENDIF
+
+
+ CATCH TO loEx
+ IF BETWEEN(X, 1, lnField_Count)
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcTable = " + RTRIM(TRANSFORM(tcTable)) + ", laFields(" + TRANSFORM(X) + ") = " + RTRIM(TRANSFORM(laFields(X)))
+ ENDIF
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ FINALLY
+ USE IN (SELECT("TB"))
+ USE IN (SELECT("TB2"))
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -9782,7 +9613,6 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ []
@@ -9801,6 +9631,13 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_CUS_BASE
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9847,6 +9684,200 @@ DEFINE CLASS CL_DBC_FIELD_DB AS CL_CUS_BASE
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcTable (v! IN ) Nombre de la Tabla
+ * tcField (v! IN ) Nombre del campo
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcTable, tcField
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+ lcText = ''
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcTable = " + RTRIM(TRANSFORM(tcTable)) + ", tcField = " + RTRIM(TRANSFORM(tcField))
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
+ENDDEFINE
+
+
+*******************************************************************************************************************
+DEFINE CLASS CL_DBC_INDEXES_DB AS CL_COL_BASE
+ #IF .F.
+ LOCAL THIS AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG'
+ #ENDIF
+
+
+ *-- Info
+ _Name = ''
+ _IsUnique = ''
+ _Comment = ''
+
+
+ *******************************************************************************************************************
+ PROCEDURE analizarBloque
+ ENDPROC
+
+
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcTable (v! IN ) Nombre de la Tabla
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcTable
+
+ TRY
+ LOCAL X, lcText, lnIndex_Count, laIndexes(1), loEx AS EXCEPTION
+ LOCAL loIndex AS CL_DBC_INDEX_DB OF 'FOXBIN2PRG.PRG'
+ STORE 0 TO X, lnIndex_Count
+ lcText = ''
+
+ _TALLY = 0
+ SELECT LOWER(TB.objectname) FROM TABLABIN TB ;
+ INNER JOIN TABLABIN TB2 ON STR(TB.parentid)+TB.objecttype = STR(TB2.objectid)+PADR('Index',10) ;
+ AND TB2.objectname = PADR(LOWER(tcTable),128) ;
+ INTO ARRAY laIndexes
+ lnIndex_Count = _TALLY
+
+ IF lnIndex_Count > 0
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loIndex = CREATEOBJECT('CL_DBC_INDEX_DB')
+
+ FOR X = 1 TO lnIndex_Count
+ lcText = lcText + loIndex.toText( laIndexes(X) )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ ENDTEXT
+ ENDIF
+
+
+ CATCH TO loEx
+ IF BETWEEN(X, 1, lnField_Count)
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "laIndexes(" + TRANSFORM(X) + ") = " + RTRIM(laIndexes(X))
+ ENDIF
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ FINALLY
+ USE IN (SELECT("TB"))
+ USE IN (SELECT("TB2"))
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
+ENDDEFINE
+
+
+*******************************************************************************************************************
+DEFINE CLASS CL_DBC_INDEX_DB AS CL_CUS_BASE
+ #IF .F.
+ LOCAL THIS AS CL_DBC_INDEX_DB OF 'FOXBIN2PRG.PRG'
+ #ENDIF
+
+ _MEMBERDATA = [] ;
+ + [] ;
+ + [] ;
+ + [] ;
+ + []
+
+
+ *-- Info
+ _Name = ''
+ _IsUnique = ''
+ _Comment = ''
+
+
+ *******************************************************************************************************************
+ PROCEDURE analizarBloque
+ ENDPROC
+
+
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcIndex (v! IN ) Nombre del índice
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcIndex
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+ lcText = ''
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+ CATCH TO loEx
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcIndex = " + RTRIM(TRANSFORM(tcIndex))
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
+ENDDEFINE
+
+
+*******************************************************************************************************************
+DEFINE CLASS CL_DBC_INDEXES_VW AS CL_DBC_INDEXES_DB
+ENDDEFINE
+
+
+*******************************************************************************************************************
+DEFINE CLASS CL_DBC_INDEX_VW AS CL_DBC_INDEX_DB
ENDDEFINE
@@ -9856,13 +9887,15 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_COL_BASE
LOCAL THIS AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
- *******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -9911,6 +9944,64 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_COL_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taViews (@? OUT) Array de vistas
+ * tnView_Count (@? OUT) Cantidad de vistas
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taViews, tnView_Count
+
+ EXTERNAL ARRAY taViews
+
+ TRY
+ LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION
+ LOCAL loView AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG'
+ STORE 0 TO I, X, tnView_Count, lnField_Count
+ lcText = ''
+ lcDBC = JUSTSTEM(DBC())
+
+ DIMENSION taViews(1)
+ tnView_Count = ADBOBJECTS( taViews,"VIEW" )
+
+ IF tnView_Count > 0
+ ASORT( taViews, 1, -1, 0, 1 )
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loView = CREATEOBJECT('CL_DBC_VIEW')
+
+ FOR I = 1 TO tnView_Count
+ lcText = lcText + loView.toText( taViews(I) )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+ ENDIF
+
+
+ CATCH TO loEx
+ IF BETWEEN(I, 1, tnTable_Count)
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "taViews(" + TRANSFORM(I) + ") = " + RTRIM(taViews(I))
+ ENDIF
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -9926,7 +10017,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -9935,7 +10026,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -9944,7 +10035,8 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ + [] ;
+ + [] ;
+ []
@@ -9975,6 +10067,7 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
*-- Sub-objects
_Fields = NULL
+ _Indexes = NULL
************************************************************************************************
@@ -9982,16 +10075,25 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
DODEFAULT()
*--
THIS._Fields = CREATEOBJECT("CL_DBC_FIELDS_VW")
+ THIS._Indexes = CREATEOBJECT("CL_DBC_INDEXES_VW")
ENDPROC
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION
LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG'
+ LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG'
STORE '' TO lcPropName, lcValue
IF LEFT(tcLine, LEN(C_VIEW_I)) == C_VIEW_I
@@ -10011,6 +10113,10 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
loFields = THIS._Fields
loFields.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
+ *CASE C_INDEXES_I $ tcLine
+ * loIndexes = THIS._Indexes
+ * loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
+
OTHERWISE && Propiedad de VIEW
*-- Estructura a reconocer:
* NOMBRE
@@ -10038,6 +10144,73 @@ DEFINE CLASS CL_DBC_VIEW AS CL_CUS_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcView (v! IN ) Vista en evaluación
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcView
+
+ TRY
+ LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION
+ LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG'
+ LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ ENDTEXT
+
+ loFields = THIS._Fields
+ lcText = lcText + loFields.toText( tcView )
+
+ loIndexes = THIS._Indexes
+ lcText = lcText + loIndexes.toText( tcView )
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcView = " + RTRIM(TRANSFORM(tcView))
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10047,18 +10220,20 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_COL_BASE
LOCAL THIS AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
LOCAL loField AS CL_DBC_FIELD_VW OF 'FOXBIN2PRG.PRG'
- *LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG'
LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION
STORE '' TO lcPropName, lcValue
@@ -10103,6 +10278,65 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_COL_BASE
ENDPROC
+ *******************************************************************************************************************
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcView (v! IN ) Nombre de la Vista
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcView
+
+ TRY
+ LOCAL X, lcText, lnField_Count, laFields(1), loEx AS EXCEPTION
+ LOCAL loField AS CL_DBC_FIELD_VW OF 'FOXBIN2PRG.PRG'
+ STORE 0 TO X, tnTable_Count, lnField_Count
+ lcText = ''
+
+ _TALLY = 0
+ SELECT LOWER(TB.objectname) FROM TABLABIN TB ;
+ INNER JOIN TABLABIN TB2 ON STR(TB.parentid)+TB.objecttype = STR(TB2.objectid)+PADR('Field',10) ;
+ AND TB2.objectname = PADR(LOWER(tcView),128) ;
+ INTO ARRAY laFields
+ lnField_Count = _TALLY
+
+ IF lnField_Count > 0
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loField = CREATEOBJECT("CL_DBC_FIELD_VW")
+
+ FOR X = 1 TO lnField_Count
+ lcText = lcText + loField.toText( tcView, laFields(X) )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ ENDTEXT
+ ENDIF
+
+
+ CATCH TO loEx
+ IF BETWEEN(X, 1, lnField_Count)
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "laFields(" + TRANSFORM(X) + ") = " + RTRIM(laFields(X))
+ ENDIF
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ FINALLY
+ USE IN (SELECT("TB"))
+ USE IN (SELECT("TB2"))
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10127,7 +10361,6 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ []
@@ -10148,8 +10381,14 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_CUS_BASE
_UpdateName = ''
- *******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10179,6 +10418,7 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_CUS_BASE
ENDFOR
ENDIF
+
CATCH TO loEx
IF loEx.ERRORNO = 1470 && Incorrect property name.
loEx.USERVALUE = 'I=' + TRANSFORM(I) + ', tcLine=' + TRANSFORM(tcLine) + ', PropName=[' + TRANSFORM(lcPropName) + '], Value=[' + TRANSFORM(lcValue) + ']'
@@ -10196,6 +10436,51 @@ DEFINE CLASS CL_DBC_FIELD_VW AS CL_CUS_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcView (v! IN ) Nombre de la Vista
+ * tcField (v! IN ) Nombre del campo
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tcView, tcField
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+ lcText = ''
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ loEx.USERVALUE = loEx.USERVALUE + CR_LF + "tcField = " + RTRIM(TRANSFORM(tcField))
+
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10205,18 +10490,19 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_COL_BASE
LOCAL THIS AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
- *******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
LOCAL loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG'
- *LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG'
LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION
STORE '' TO lcPropName, lcValue
@@ -10261,6 +10547,58 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_COL_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taRelations (@? OUT) Array de relaciones
+ * tnRelation_Count (@? OUT) Cantidad de relaciones
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taRelations, tnRelation_Count
+
+ EXTERNAL ARRAY taRelations
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ LOCAL loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ DIMENSION taRelations(1,5)
+ tnRelation_Count = ADBOBJECTS( taRelations,"RELATION" )
+
+ IF tnRelation_Count > 0
+ ASORT( taRelations, 2, -1, 0, 1 )
+ ASORT( taRelations, 1, -1, 0, 1 )
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+
+ loRelation = CREATEOBJECT('CL_DBC_RELATION')
+
+ FOR I = 1 TO tnRelation_Count
+ lcText = lcText + loRelation.toText( @taRelations, I )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>>
+ ENDTEXT
+ ENDIF
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10276,7 +10614,6 @@ DEFINE CLASS CL_DBC_RELATION AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ []
@@ -10290,6 +10627,13 @@ DEFINE CLASS CL_DBC_RELATION AS CL_CUS_BASE
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10336,6 +10680,42 @@ DEFINE CLASS CL_DBC_RELATION AS CL_CUS_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taRelations (@! IN ) Array de relaciones
+ * I (@! IN ) Número de relación evaluado
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taRelations, I
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+ lcText = ''
+
+ TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10346,7 +10726,6 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
#ENDIF
_MEMBERDATA = [] ;
- + [] ;
+ [] ;
+ [] ;
+ [] ;
@@ -10379,7 +10758,6 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
_Indexes = NULL
- ************************************************************************************************
PROCEDURE INIT
DODEFAULT()
*--
@@ -10388,8 +10766,14 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
ENDPROC
- *******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10446,6 +10830,70 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tn_HexFileType (v! IN ) Tipo de archivo (en Hex)
+ * tl_FileHasCDX (v! IN ) Indica si el archivo tiene CDX asociado
+ * tl_FileHasMemo (v! IN ) Indica si el archivo tiene MEMO (FPT) asociado
+ * tl_FileIsDBC (v! IN ) Indica si el archivo es un DBC
+ * tc_DBC_Name (v! IN ) Nombre del DBC (si tiene)
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS tn_HexFileType, tl_FileHasCDX, tl_FileHasMemo, tl_FileIsDBC, tc_DBC_Name
+
+ EXTERNAL ARRAY taFields
+
+ TRY
+ LOCAL lcText, loEx AS EXCEPTION
+ LOCAL loFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG'
+ LOCAL loIndexes AS CL_DBF_INDEXES OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ *FOR I = 1 TO AFIELDS(laFields)
+ * IF INLIST( laFields(I,2), 'M', 'Q', 'V', 'W' )
+ * ll_FileHasMemo = .T.
+ * EXIT
+ * ENDIF
+ *ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ ENDTEXT
+
+ *-- Fields
+ loFields = THIS._Fields
+ lcText = lcText + loFields.toText()
+
+ *-- Indexes
+ loIndexes = THIS._Indexes
+ lcText = lcText + loIndexes.toText()
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <>
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10455,13 +10903,16 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE
LOCAL THIS AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10511,13 +10962,59 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taFields (@? OUT) Array de información de campos
+ * tnField_Count (@? OUT) Cantidad de campos
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taFields, tnField_Count
+
+ EXTERNAL ARRAY taFields
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ LOCAL loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ ENDTEXT
+
+ tnField_Count = AFIELDS(taFields)
+ loField = CREATEOBJECT('CL_DBF_FIELD')
+
+ FOR I = 1 TO tnField_Count
+ lcText = lcText + loField.toText( @taFields, I )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
*******************************************************************************************************************
DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE
#IF .F.
- LOCAL THIS AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG'
+ LOCAL THIS AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG'
#ENDIF
_MEMBERDATA = [] ;
@@ -10539,7 +11036,6 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE
+ [] ;
+ [] ;
+ [] ;
- + [] ;
+ []
@@ -10566,6 +11062,13 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE
*******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10612,6 +11115,57 @@ DEFINE CLASS CL_DBF_FIELD AS CL_CUS_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taFields (@! IN ) Array de información de campos
+ * I (@! IN ) Campo en evaluación
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taFields, I
+
+ EXTERNAL ARRAY taFields
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ lcText = ''
+
+ TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10621,13 +11175,15 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE
LOCAL THIS AS CL_DBF_INDEXES OF 'FOXBIN2PRG.PRG'
#ENDIF
- *_MEMBERDATA = [] ;
- * + [] ;
- * + []
-
- *******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10676,6 +11232,56 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taTagInfo (@? OUT) Array de información de indices
+ * tnTagInfo_Count (@? OUT) Cantidad de índices
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taTagInfo, tnTagInfo_Count
+
+ EXTERNAL ARRAY taTagInfo
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG'
+ lcText = ''
+
+ IF TAGCOUNT() > 0
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <><><>
+ <<>>
+ <<>> <>
+ ENDTEXT
+
+ tnTagInfo_Count = ATAGINFO( taTagInfo )
+ loIndex = CREATEOBJECT("CL_DBF_INDEX")
+
+ FOR I = 1 TO tnTagInfo_Count
+ lcText = lcText + loIndex.toText( @taTagInfo, I )
+ ENDFOR
+
+ TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>> <>
+ <<>>
+ ENDTEXT
+ ENDIF
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE
@@ -10704,8 +11310,14 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE
_Collate = ''
- *******************************************************************************************************************
PROCEDURE analizarBloque
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * tcLine (@! IN/OUT) Contenido de la línea en análisis
+ * taCodeLines (@! IN ) Array de líneas del programa analizado
+ * I (@! IN/OUT) Número de línea en análisis
+ * tnCodeLines (@! IN ) Cantidad de líneas del programa analizado
+ *---------------------------------------------------------------------------------------------------
LPARAMETERS tcLine, taCodeLines, I, tnCodeLines
TRY
@@ -10752,6 +11364,45 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE
ENDPROC
+ PROCEDURE toText
+ *---------------------------------------------------------------------------------------------------
+ * PARÁMETROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
+ * taTagInfo (@? IN ) Array de información de indices
+ * I (@? IN ) Indice en evaluación
+ *---------------------------------------------------------------------------------------------------
+ LPARAMETERS taTagInfo, I
+
+ EXTERNAL ARRAY taTagInfo
+
+ TRY
+ LOCAL I, lcText, loEx AS EXCEPTION
+ lcText = ''
+
+ TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
+ <<>>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>> <>
+ <<>>
+ ENDTEXT
+
+
+ CATCH TO loEx
+ IF THIS.l_Debug AND _VFP.STARTMODE = 0
+ SET STEP ON
+ ENDIF
+
+ THROW
+
+ ENDTRY
+
+ RETURN lcText
+ ENDPROC
+
+
ENDDEFINE