Changeset: 77 Changeset: 77 Soporte DBF mejorado

This commit is contained in:
fernando
2013-12-11 23:29:00 +01:00
parent 2803bb93de
commit 399439e0fc
3 changed files with 302 additions and 192 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -111,6 +111,8 @@ LPARAMETERS tc_InputFile, tcType_na, tcTextName_na, tlGenText_na, tcDontShowErro
#DEFINE C_ENDTEXT 'ENDTEXT' #DEFINE C_ENDTEXT 'ENDTEXT'
#DEFINE C_PROCEDURE 'PROCEDURE' #DEFINE C_PROCEDURE 'PROCEDURE'
#DEFINE C_ENDPROC 'ENDPROC' #DEFINE C_ENDPROC 'ENDPROC'
#DEFINE C_WITH 'WITH'
#DEFINE C_WNDWITH 'ENDWITH'
#DEFINE C_SRV_HEAD_I '*<ServerHead>' #DEFINE C_SRV_HEAD_I '*<ServerHead>'
#DEFINE C_SRV_HEAD_F '*</ServerHead>' #DEFINE C_SRV_HEAD_F '*</ServerHead>'
#DEFINE C_SRV_DATA_I '*<ServerData>' #DEFINE C_SRV_DATA_I '*<ServerData>'
@@ -684,6 +686,7 @@ DEFINE CLASS c_conversor_base AS SESSION
+ [<memberdata name="normalizarvalorxml" display="normalizarValorXML"/>] ; + [<memberdata name="normalizarvalorxml" display="normalizarValorXML"/>] ;
+ [<memberdata name="sortpropsandvalues" display="sortPropsAndValues"/>] ; + [<memberdata name="sortpropsandvalues" display="sortPropsAndValues"/>] ;
+ [<memberdata name="writelog" display="writeLog"/>] ; + [<memberdata name="writelog" display="writeLog"/>] ;
+ [<memberdata name="write_dbf_metadata" display="write_DBF_Metadata"/>] ;
+ [<memberdata name="c_curdir" display="c_CurDir"/>] ; + [<memberdata name="c_curdir" display="c_CurDir"/>] ;
+ [<memberdata name="c_inputfile" display="c_InputFile"/>] ; + [<memberdata name="c_inputfile" display="c_InputFile"/>] ;
+ [<memberdata name="c_logfile" display="c_LogFile"/>] ; + [<memberdata name="c_logfile" display="c_LogFile"/>] ;
@@ -1447,14 +1450,14 @@ DEFINE CLASS c_conversor_base AS SESSION
FOR I = 1 TO OCCURS( '/>', tcValue ) FOR I = 1 TO OCCURS( '/>', tcValue )
TEXT TO lcValue TEXTMERGE ADDITIVE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcValue TEXTMERGE ADDITIVE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_TAB>><<STREXTRACT( tcValue, '<memberdata ', '/>', I, 1+4 )>> <<>> <<STREXTRACT( tcValue, '<memberdata ', '/>', I, 1+4 )>>
ENDTEXT ENDTEXT
ENDFOR ENDFOR
TEXT TO tcValue TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 TEXT TO tcValue TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<VFPData> <VFPData>
<<SUBSTR( lcValue, 3)>> <<SUBSTR( lcValue, 3)>>
<<C_TAB>><<C_TAB>></VFPData> <<>> </VFPData>
ENDTEXT ENDTEXT
CASE LEFT( tcValue, C_LEN_FB2P_VALUE_I ) == C_FB2P_VALUE_I CASE LEFT( tcValue, C_LEN_FB2P_VALUE_I ) == C_FB2P_VALUE_I
@@ -1508,6 +1511,72 @@ DEFINE CLASS c_conversor_base AS SESSION
ENDFUNC ENDFUNC
*******************************************************************************************************************
PROCEDURE write_DBF_Metadata
*---------------------------------------------------------------------------------------------------
* PAR<41>METROS: !=Obligatorio, ?=Opcional, @=Pasar por referencia, v=Pasar por valor (IN/OUT)
* tc_FileName (v! IN ) Nombre del DBF a analizar
* tcDBC_Name (v! IN ) Nombre del DBC a asociar
* tdLastUpdate (v? IN ) Fecha de <20>ltima actualizaci<63>n
*---------------------------------------------------------------------------------------------------
LPARAMETERS tc_FileName, tcDBC_Name, tdLastUpdate
TRY
LOCAL lnHandle, lcStr, lnDataPos, lnFieldCount, loEx AS EXCEPTION
IF NOT EMPTY(tcDBC_Name)
tn_HexFileType = 0
lnHandle = FOPEN(tc_FileName,2)
IF lnHandle = -1
EXIT
ENDIF
lcStr = FREAD(lnHandle,1) && File type
tn_HexFileType = EVALUATE( TRANSFORM(ASC(lcStr),'@0') )
IF EMPTY(tdLastUpdate)
lcStr = FREAD(lnHandle,3) && Last update (YYMMDD)
ELSE
lcStr = CHR( VAL( RIGHT( PADL( YEAR( tdLastUpdate ),4,'0'), 2 ) ) ) ;
+ CHR( VAL( PADL( MONTH( tdLastUpdate ),2,'0' ) ) ) ;
+ CHR( VAL( PADL( DAY( tdLastUpdate ),2,'0' ) ) ) && Last update (YYMMDD)
=FWRITE( lnHandle, PADR(lcStr,3,CHR(0)) )
ENDIF
lcStr = FREAD(lnHandle,4) && Number of records in file
lcStr = FREAD(lnHandle,2) && Position of first data record
lnDataPos = CTOBIN(lcStr,"2RS")
lnFieldCount = (lnDataPos - 296) / 32
lcStr = FREAD(lnHandle,2) && Length of one data record, including delete flag
lcStr = FREAD(lnHandle,16) && Reserved
lcStr = FREAD(lnHandle,1) && Table flags: 0x01=Has CDX, 0x02=Has Memo, 0x04=Id DBC (flags acumulativos)
lcStr = FREAD(lnHandle,1) && Code page mark
lcStr = FREAD(lnHandle,2) && Reserved, contains 0x00
lcStr = FREAD(lnHandle,32 * lnFieldCount) && Field subrecords (los salteo)
lcStr = FREAD(lnHandle,1) && Header Record Terminator (0x0D)
IF FWRITE( lnHandle, PADR(tcDBC_Name,263,CHR(0)) ) = 0
ERROR 'No se pudo actualizar el backlink [' + tcDBC_Name + '] de la tabla [' + tc_FileName + ']'
ENDIF
ENDIF
CATCH TO loEx
IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON
ENDIF
THROW
FINALLY
FCLOSE(lnHandle)
ENDTRY
RETURN lnHandle
ENDPROC
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE sortPropsAndValues PROCEDURE sortPropsAndValues
* KNOWLEDGE BASE: * KNOWLEDGE BASE:
@@ -2333,7 +2402,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_ENDPROC>> <<C_ENDPROC>>
<<>>
ENDTEXT ENDTEXT
ENDFOR ENDFOR
@@ -2374,7 +2443,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_ENDPROC>> <<C_ENDPROC>>
<<>>
ENDTEXT ENDTEXT
ENDFOR ENDFOR
@@ -2511,7 +2580,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
TEXT TO tcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 TEXT TO tcMemo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<lcPAM>> <<lcPAM>>
<<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDFOR ENDFOR
@@ -5131,10 +5200,11 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin
LOCAL I, lnCodError, loEx AS EXCEPTION LOCAL I, lnCodError, loEx AS EXCEPTION
LOCAL loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' LOCAL loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG'
LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG'
LOCAL lcCreateTable, lcLongDec, lcFieldDef LOCAL lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate
STORE '' TO lcIndex, lcFieldDef
lcCreateTable = 'CREATE TABLE "' + THIS.c_OutputFile + '" FREE CodePage=' + toTable._CodePage + ' (' lcCreateTable = 'CREATE TABLE "' + THIS.c_OutputFile + '" FREE CodePage=' + toTable._CodePage + ' ('
lcFieldDef = ''
*-- Conformo los campos *-- Conformo los campos
FOR EACH loField IN toTable._Fields FOXOBJECT FOR EACH loField IN toTable._Fields FOXOBJECT
@@ -5184,9 +5254,43 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin
*STRTOFILE(lcCreateTable,'CreateTable.txt') *STRTOFILE(lcCreateTable,'CreateTable.txt')
&lcCreateTable. &lcCreateTable.
*-- Regenero los <20>ndices
FOR EACH loIndex IN toTable._Indexes FOXOBJECT
lcIndex = 'INDEX ON ' + loIndex._Key + ' TAG ' + loIndex._TagName
IF loIndex._TagType = 'BINARY'
lcIndex = lcIndex + ' BINARY'
ELSE
lcIndex = lcIndex + ' COLLATE "' + loIndex._Collate + '"'
IF NOT EMPTY(loIndex._Filter)
lcIndex = lcIndex + ' FOR ' + loIndex._Filter
ENDIF
lcIndex = lcIndex + ' ' + loIndex._Order
IF loIndex._TagType <> 'REGULAR'
*-- Si es PRIMARY lo cambio a CANDIDATE y luego lo recodifico
lcIndex = lcIndex + ' ' + STRTRAN( loIndex._TagType, 'PRIMARY', 'CANDIDATE' )
ENDIF
ENDIF
*STRTOFILE( lcIndex, 'index_' + loIndex._TagName + '.txt' )
&lcIndex.
ENDFOR
USE IN (SELECT(JUSTSTEM(THIS.c_OutputFile)))
ldLastUpdate = EVALUATE( '{^' + toTable._LastUpdate + '}' )
THIS.write_DBF_Metadata( THIS.c_OutputFile, toTable._Database, ldLastUpdate )
CATCH TO loEx CATCH TO loEx
lnCodError = loEx.ERRORNO lnCodError = loEx.ErrorNo
loEx.UserValue = 'lcIndex="' + TRANSFORM(lcIndex) + '"' + CR_LF ;
+ 'lcFieldDef="' + TRANSFORM(lcFieldDef) + '"' + CR_LF ;
+ 'lcCreateTable="' + TRANSFORM(lcCreateTable) + '"'
IF THIS.l_Debug AND _VFP.STARTMODE = 0 IF THIS.l_Debug AND _VFP.STARTMODE = 0
SET STEP ON SET STEP ON
@@ -6421,18 +6525,18 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
IF '.' $ toRegObj.PARENT IF '.' $ toRegObj.PARENT
*-- Este caso: clase.objeto.objeto ==> se quita clase *-- Este caso: clase.objeto.objeto ==> se quita clase
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>ADD OBJECT '<<SUBSTR(toRegObj.Parent, AT('.', toRegObj.Parent)+1)>>.<<toRegObj.objName>>' AS <<ALLTRIM(toRegObj.Class)>> <<>> <<>> ADD OBJECT '<<SUBSTR(toRegObj.Parent, AT('.', toRegObj.Parent)+1)>>.<<toRegObj.objName>>' AS <<ALLTRIM(toRegObj.Class)>> <<>>
ENDTEXT ENDTEXT
ELSE ELSE
*-- Este caso: objeto *-- Este caso: objeto
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>ADD OBJECT '<<toRegObj.objName>>' AS <<ALLTRIM(toRegObj.Class)>> <<>> <<>> ADD OBJECT '<<toRegObj.objName>>' AS <<ALLTRIM(toRegObj.Class)>> <<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
IF NOT EMPTY(lcMemo) IF NOT EMPTY(lcMemo)
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
WITH ; <<C_WITH>> ;
<<lcMemo>> <<lcMemo>>
ENDTEXT ENDTEXT
ENDIF ENDIF
@@ -6461,7 +6565,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
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
<<C_END_OBJECT_F>> <<C_END_OBJECT_F>>
<<>>
ENDTEXT ENDTEXT
CATCH TO loEx CATCH TO loEx
@@ -6491,9 +6595,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
FOR I = 1 TO lnMethodCount FOR I = 1 TO lnMethodCount
*-- Genero los m<>todos indentados *-- Genero los m<>todos indentados
*TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 *TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
* <<C_TAB>><<laMethods(I,3)>>PROCEDURE <<laMethods(I,1)>> * <<>> <<laMethods(I,3)>>PROCEDURE <<laMethods(I,1)>>
* <<THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )>> * <<THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )>>
* <<C_TAB>>ENDPROC * <<>> ENDPROC
*ENDTEXT *ENDTEXT
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso *-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
@@ -6544,20 +6648,20 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- Nombre del m<>todo *-- Nombre del m<>todo
TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<lcProcDef>> <<taMethods(I,1)>> <<>> <<lcProcDef>> <<taMethods(I,1)>>
ENDTEXT ENDTEXT
*-- Comentarios del m<>todo (si tiene) *-- Comentarios del m<>todo (si tiene)
IF lnCommentRow > 0 AND NOT EMPTY(taPropsAndComments(lnCommentRow,2)) IF lnCommentRow > 0 AND NOT EMPTY(taPropsAndComments(lnCommentRow,2))
TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
<<C_TAB>><<C_TAB>>&& <<taPropsAndComments(lnCommentRow,2)>> <<>> && <<taPropsAndComments(lnCommentRow,2)>>
ENDTEXT ENDTEXT
ENDIF ENDIF
*-- C<>digo del m<>todo *-- C<>digo del m<>todo
*TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 *TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
* <<THIS.IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9) )>> * <<THIS.IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9) )>>
* <<C_TAB>>ENDPROC * <<>> ENDPROC
*ENDTEXT *ENDTEXT
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso *-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
@@ -6637,20 +6741,20 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- Escribo las propiedades de la clase y sus comentarios (los comentarios aqu<71> son redundantes) *-- Escribo las propiedades de la clase y sus comentarios (los comentarios aqu<71> son redundantes)
FOR I = 1 TO ALEN(taPropsAndValues, 1) FOR I = 1 TO ALEN(taPropsAndValues, 1)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<taPropsAndValues(I,1)>> = <<taPropsAndValues(I,2)>> <<>> <<taPropsAndValues(I,1)>> = <<taPropsAndValues(I,2)>>
ENDTEXT ENDTEXT
lnComment = ASCAN( taPropsAndComments, taPropsAndValues(I,1), 1, 0, 1, 8) lnComment = ASCAN( taPropsAndComments, taPropsAndValues(I,1), 1, 0, 1, 8)
IF lnComment > 0 AND NOT EMPTY(taPropsAndComments(lnComment,2)) IF lnComment > 0 AND NOT EMPTY(taPropsAndComments(lnComment,2))
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
<<C_TAB>><<C_TAB>>&& <<taPropsAndComments(lnComment,2)>> <<>> && <<taPropsAndComments(lnComment,2)>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDFOR ENDFOR
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDWITH && THIS ENDWITH && THIS
@@ -6688,7 +6792,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
lcPropsMethodsDefd = '' lcPropsMethodsDefd = ''
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_DEFINED_PAM_I>> <<>> <<C_DEFINED_PAM_I>>
ENDTEXT ENDTEXT
FOR I = 1 TO tnPropsAndComments_Count FOR I = 1 TO tnPropsAndComments_Count
@@ -6702,18 +6806,18 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
, 'p' ) , 'p' )
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_TAB>>*<<lcType>>: <<taPropsAndComments(I,1)>> <<>> *<<lcType>>: <<taPropsAndComments(I,1)>>
ENDTEXT ENDTEXT
IF NOT EMPTY(taPropsAndComments(I,2)) IF NOT EMPTY(taPropsAndComments(I,2))
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
<<C_TAB>><<C_TAB>><<'&'>><<'&'>> <<taPropsAndComments(I,2)>> <<>> <<'&'>><<'&'>> <<taPropsAndComments(I,2)>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDFOR ENDFOR
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_DEFINED_PAM_F>> <<>> <<C_DEFINED_PAM_F>>
ENDTEXT ENDTEXT
ENDIF ENDIF
@@ -6746,7 +6850,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- Comentario de la clase *-- Comentario de la clase
IF NOT EMPTY(toRegClass.RESERVED7) THEN IF NOT EMPTY(toRegClass.RESERVED7) THEN
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
<<C_TAB>><<C_TAB>><<'&'+'&'>> <<toRegClass.Reserved7>> <<>> <<'&'+'&'>> <<toRegClass.Reserved7>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDPROC ENDPROC
@@ -6758,7 +6862,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
IF tnLastClass = 1 IF tnLastClass = 1
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<'ENDDEFINE'>> <<'ENDDEFINE'>>
<<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDPROC ENDPROC
@@ -6770,7 +6874,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- #INCLUDE *-- #INCLUDE
IF NOT EMPTY(toReg.RESERVED8) THEN IF NOT EMPTY(toReg.RESERVED8) THEN
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>#INCLUDE "<<toReg.Reserved8>>" <<>> #INCLUDE "<<toReg.Reserved8>>"
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDPROC ENDPROC
@@ -6782,11 +6886,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
*-- Agrego Metadatos de la clase (Baseclass, Timestamp, Scale, Uniqueid) *-- Agrego Metadatos de la clase (Baseclass, Timestamp, Scale, Uniqueid)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+8 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+8
<<C_TAB>><<C_METADATA_I>> <<>> <<C_METADATA_I>>
Baseclass="<<toRegClass.Baseclass>>" Baseclass="<<toRegClass.Baseclass>>"
Timestamp="<<THIS.getTimeStamp(toRegClass.Timestamp)>>" Timestamp="<<THIS.getTimeStamp(toRegClass.Timestamp)>>"
Scale="<<toRegClass.Reserved6>>" Scale="<<toRegClass.Reserved6>>"
@@ -6824,7 +6928,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
IF NOT EMPTY(tcHiddenProp) IF NOT EMPTY(tcHiddenProp)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>HIDDEN <<SUBSTR(tcHiddenProp,2)>> <<>> HIDDEN <<SUBSTR(tcHiddenProp,2)>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDPROC ENDPROC
@@ -6851,7 +6955,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
IF NOT EMPTY(tcProtectedProp) IF NOT EMPTY(tcProtectedProp)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>PROTECTED <<SUBSTR(tcProtectedProp,2)>> <<>> PROTECTED <<SUBSTR(tcProtectedProp,2)>>
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDPROC ENDPROC
@@ -6871,7 +6975,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>> <<>> platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
ENDTEXT ENDTEXT
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
@@ -6943,13 +7047,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><picture><![CDATA[<<toReg.picture>>]]> <<>> <picture><![CDATA[<<toReg.picture>>]]>
<<C_TAB>><tag><![CDATA[<<THIS.encode_SpecialCodes_1_31( toReg.tag )>>]]> <<>> <tag><![CDATA[<<THIS.encode_SpecialCodes_1_31( toReg.tag )>>]]>
<<C_TAB>><tag2><![CDATA[<<STRCONV( toReg.tag2,13 )>>]]> <<>> <tag2><![CDATA[<<STRCONV( toReg.tag2,13 )>>]]>
<<C_TAB>><penred><![CDATA[<<toReg.penred>>]]> <<>> <penred><![CDATA[<<toReg.penred>>]]>
<<C_TAB>><style><![CDATA[<<toReg.style>>]]> <<>> <style><![CDATA[<<toReg.style>>]]>
<<C_TAB>><expr><![CDATA[<<toReg.expr>>]]> <<>> <expr><![CDATA[<<toReg.expr>>]]>
<<C_TAB>><user><![CDATA[<<toReg.user>>]]> <<>> <user><![CDATA[<<toReg.user>>]]>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -6983,7 +7087,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>> <<>> platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
ENDTEXT ENDTEXT
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
@@ -7055,13 +7159,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><picture><![CDATA[<<toReg.picture>>]]> <<>> <picture><![CDATA[<<toReg.picture>>]]>
<<C_TAB>><tag><![CDATA[<<THIS.encode_SpecialCodes_1_31( toReg.tag )>>]]> <<>> <tag><![CDATA[<<THIS.encode_SpecialCodes_1_31( toReg.tag )>>]]>
<<C_TAB>><tag2><![CDATA[<<STRCONV( toReg.tag2,13 )>>]]> <<>> <tag2><![CDATA[<<STRCONV( toReg.tag2,13 )>>]]>
<<C_TAB>><penred><![CDATA[<<toReg.penred>>]]> <<>> <penred><![CDATA[<<toReg.penred>>]]>
<<C_TAB>><style><![CDATA[<<toReg.style>>]]> <<>> <style><![CDATA[<<toReg.style>>]]>
<<C_TAB>><expr><![CDATA[<<toReg.expr>>]]> <<>> <expr><![CDATA[<<toReg.expr>>]]>
<<C_TAB>><user><![CDATA[<<toReg.user>>]]> <<>> <user><![CDATA[<<toReg.user>>]]>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -7095,7 +7199,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>> <<>> platform="WINDOWS " uniqueid="<<EVL(toReg.UniqueID,SYS(2015))>>" timestamp="<<toReg.TimeStamp>>" objtype="<<toReg.ObjType>>" <<>>
ENDTEXT ENDTEXT
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
@@ -7168,13 +7272,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
* NOTA: En el DataEnvironment el TAG2 es el TAG compilado, que se recompila con COMPILE REPORT <nombre> * NOTA: En el DataEnvironment el TAG2 es el TAG compilado, que se recompila con COMPILE REPORT <nombre>
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><picture><![CDATA[<<toReg.picture>>]]> <<>> <picture><![CDATA[<<toReg.picture>>]]>
<<C_TAB>><tag><![CDATA[<<CR_LF>><<toReg.tag>>]]> <<>> <tag><![CDATA[<<CR_LF>><<toReg.tag>>]]>
<<C_TAB>><tag2><![CDATA[]]> <<>> <tag2><![CDATA[]]>
<<C_TAB>><penred><![CDATA[<<toReg.penred>>]]> <<>> <penred><![CDATA[<<toReg.penred>>]]>
<<C_TAB>><style><![CDATA[<<toReg.style>>]]> <<>> <style><![CDATA[<<toReg.style>>]]>
<<C_TAB>><expr><![CDATA[<<toReg.expr>>]]> <<>> <expr><![CDATA[<<toReg.expr>>]]>
<<C_TAB>><user><![CDATA[<<toReg.user>>]]> <<>> <user><![CDATA[<<toReg.user>>]]>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -7212,12 +7316,13 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<TABLE> <<C_TABLE_I>>
<<>> <memofile><<IIF( tl_FileHasMemo, FORCEEXT(THIS.c_InputFile, 'FPT'), '' )>></memofile> <<>> <MemoFile><<IIF( tl_FileHasMemo, FORCEEXT(THIS.c_InputFile, 'FPT'), '' )>></MemoFile>
<<>> <codepage><<CPDBF('TABLABIN')>></codepage> <<>> <CodePage><<CPDBF('TABLABIN')>></CodePage>
<<>> <database><<tc_DBC_Name>></database> <<>> <LastUpdate><<LUPDATE('TABLABIN')>></LastUpdate>
<<>> <filetype><<TRANSFORM(tn_HexFileType, '@0')>></filetype> <<>> <Database><<tc_DBC_Name>></Database>
<<>> <filetype_descrip><<THIS.fileTypeDescription(tn_HexFileType)>></filetype_descrip> <<>> <FileType><<TRANSFORM(tn_HexFileType, '@0')>></FileType>
<<>> <FileType_Descrip><<THIS.fileTypeDescription(tn_HexFileType)>></FileType_Descrip>
ENDTEXT ENDTEXT
*-- Fields *-- Fields
@@ -7227,7 +7332,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
THIS.write_DBF_INDEXES() THIS.write_DBF_INDEXES()
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
</TABLE> <<C_TABLE_F>>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
@@ -7254,36 +7359,36 @@ 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 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<>>
<<>> <FIELDS> <<>> <<C_FIELDS_I>>
ENDTEXT ENDTEXT
FOR I = 1 TO AFIELDS(laFields) FOR I = 1 TO AFIELDS(laFields)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <FIELD> <<>> <<C_FIELD_I>>
<<>> <name><<laFields(I,1)>></name> <<>> <Name><<laFields(I,1)>></Name>
<<>> <type><<laFields(I,2)>></type> <<>> <Type><<laFields(I,2)>></Type>
<<>> <width><<laFields(I,3)>></width> <<>> <Width><<laFields(I,3)>></Width>
<<>> <decimals><<laFields(I,4)>></decimals> <<>> <Decimals><<laFields(I,4)>></Decimals>
<<>> <null><<laFields(I,5)>></null> <<>> <Null><<laFields(I,5)>></Null>
<<>> <nocptran><<laFields(I,6)>></nocptran> <<>> <NoCPTran><<laFields(I,6)>></NoCPTran>
<<>> <field_valid_exp><<laFields(I,7)>><field_valid_exp> <<>> <Field_Valid_Exp><<laFields(I,7)>></Field_Valid_Exp>
<<>> <field_valid_text><<laFields(I,8)>><field_valid_text> <<>> <Field_Valid_Text><<laFields(I,8)>></Field_Valid_Text>
<<>> <field_default_value><<laFields(I,9)>><field_default_value> <<>> <Field_Default_Value><<laFields(I,9)>></Field_Default_Value>
<<>> <table_valid_exp><<laFields(I,10)>><table_valid_exp> <<>> <Table_Valid_Exp><<laFields(I,10)>></Table_Valid_Exp>
<<>> <table_valid_text><<laFields(I,11)>></table_valid_text> <<>> <Table_Valid_Text><<laFields(I,11)>></Table_Valid_Text>
<<>> <longtablename><<laFields(I,12)>><longtablename> <<>> <LongTableName><<laFields(I,12)>></LongTableName>
<<>> <ins_trig_exp><<laFields(I,13)>><ins_trig_exp> <<>> <Ins_Trig_Exp><<laFields(I,13)>></Ins_Trig_Exp>
<<>> <upd_trig_exp><<laFields(I,14)>><upd_trig_exp> <<>> <Upd_Trig_Exp><<laFields(I,14)>></Upd_Trig_Exp>
<<>> <del_trig_exp><<laFields(I,15)>></del_trig_exp> <<>> <Del_Trig_Exp><<laFields(I,15)>></Del_Trig_Exp>
<<>> <tablecomment><<laFields(I,16)>></tablecomment> <<>> <TableComment><<laFields(I,16)>></TableComment>
<<>> <autoinc_nextval><<laFields(I,17)>></autoinc_nextval> <<>> <Autoinc_Nextval><<laFields(I,17)>></Autoinc_Nextval>
<<>> <autoinc_step><<laFields(I,18)>></autoinc_step> <<>> <Autoinc_Step><<laFields(I,18)>></Autoinc_Step>
<<>> </FIELD> <<>> <<C_FIELD_F>>
ENDTEXT ENDTEXT
ENDFOR ENDFOR
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> </FIELDS> <<>> <<C_FIELDS_F>>
<<>> <<>>
ENDTEXT ENDTEXT
@@ -7303,30 +7408,31 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
******************************************************************************************************************* *******************************************************************************************************************
PROCEDURE write_DBF_INDEXES PROCEDURE write_DBF_INDEXES
TRY TRY
LOCAL I, loEx AS EXCEPTION LOCAL I, laTagInfo(1,6), loEx AS EXCEPTION
IF TAGCOUNT() > 0 IF TAGCOUNT() > 0
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<>>
<<>> <IndexFile><<CDX(1)>></IndexFile> <<>> <<C_CDX_I>><<CDX(1)>><<C_CDX_F>>
<<>> <<>>
<<>> <INDEXES> <<>> <<C_INDEXES_I>>
ENDTEXT ENDTEXT
FOR I = 1 TO TAGCOUNT() FOR I = 1 TO ATAGINFO( laTagInfo )
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <INDEX> <<>> <INDEX>
<<>> <tagname><<TAG(I)>><tagname> <<>> <TagName><<laTagInfo(I,1)>></TagName>
<<>> <collate><<IDXCOLLATE(I)>><collate> <<>> <TagType><<laTagInfo(I,2)>></TagType>
<<>> <key><<KEY(I)>><key> <<>> <Key><<laTagInfo(I,3)>></Key>
<<>> <descending><<DESCENDING(I)>><descending> <<>> <Filter><<laTagInfo(I,4)>></Filter>
<<>> <for_exp><<SYS(2021,I)>><for_exp> <<>> <Order><<laTagInfo(I,5)>></Order>
<<>> <Collate><<laTagInfo(I,6)>></Collate>
<<>> </INDEX> <<>> </INDEX>
ENDTEXT ENDTEXT
ENDFOR ENDFOR
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <INDEXES> <<>> <<C_INDEXES_F>>
<<>> <<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
@@ -7774,7 +7880,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
laOLE( lnOLECount ) = lcOLEChecksum laOLE( lnOLECount ) = lcOLEChecksum
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+8 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+8
@@ -8068,7 +8174,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg
IF NOT EMPTY(loRegClass.RESERVED8) THEN IF NOT EMPTY(loRegClass.RESERVED8) THEN
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
#INCLUDE "<<loRegClass.Reserved8>>" #INCLUDE "<<loRegClass.Reserved8>>"
<<>>
ENDTEXT ENDTEXT
ENDIF ENDIF
@@ -8266,10 +8372,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- Directorio de inicio *-- Directorio de inicio
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
LPARAMETERS tcDir LPARAMETERS tcDir
<<>>
lcCurdir = SYS(5)+CURDIR() lcCurdir = SYS(5)+CURDIR()
CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) ) CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) )
<<>>
ENDTEXT ENDTEXT
@@ -8290,9 +8396,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_BUILDPROJ_I>> <<C_BUILDPROJ_I>>
FOR EACH loProj IN _VFP.Projects FOXOBJECT FOR EACH loProj IN _VFP.Projects FOXOBJECT
<<C_TAB>>loProj.Close() <<>> loProj.Close()
ENDFOR ENDFOR
<<>>
STRTOFILE( '', '__newproject.f2b' ) STRTOFILE( '', '__newproject.f2b' )
BUILD PROJECT <<JUSTFNAME( THIS.c_inputFile )>> FROM '__newproject.f2b' BUILD PROJECT <<JUSTFNAME( THIS.c_inputFile )>> FROM '__newproject.f2b'
ENDTEXT ENDTEXT
@@ -8301,13 +8407,13 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- Abro el proyecto *-- Abro el proyecto
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
FOR EACH loProj IN _VFP.Projects FOXOBJECT FOR EACH loProj IN _VFP.Projects FOXOBJECT
<<C_TAB>>loProj.Close() <<>> loProj.Close()
ENDFOR ENDFOR
<<>>
MODIFY PROJECT '<<JUSTFNAME( THIS.c_inputFile )>>' NOWAIT NOSHOW NOPROJECTHOOK MODIFY PROJECT '<<JUSTFNAME( THIS.c_inputFile )>>' NOWAIT NOSHOW NOPROJECTHOOK
<<>>
loProject = _VFP.Projects('<<JUSTFNAME( THIS.c_inputFile )>>') loProject = _VFP.Projects('<<JUSTFNAME( THIS.c_inputFile )>>')
<<>>
WITH loProject.FILES WITH loProject.FILES
ENDTEXT ENDTEXT
@@ -8317,10 +8423,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
FOR EACH loReg IN loProject &&FOXOBJECT FOR EACH loReg IN loProject &&FOXOBJECT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.ADD('<<loReg.NAME>>') <<>> .ADD('<<loReg.NAME>>')
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8
<<C_TAB>><<C_TAB>><<'&'>><<'&'>> <<C_FILE_META_I>> <<>> <<'&'>><<'&'>> <<C_FILE_META_I>>
Type="<<loReg.TYPE>>" Type="<<loReg.TYPE>>"
Cpid="<<INT( loReg.CPID )>>" Cpid="<<INT( loReg.CPID )>>"
Timestamp="<<INT( loReg.TIMESTAMP )>>" Timestamp="<<INT( loReg.TIMESTAMP )>>"
@@ -8331,15 +8437,15 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
ENDFOR ENDFOR
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_BUILDPROJ_F>> <<>> <<C_BUILDPROJ_F>>
<<>>
<<C_TAB>>.ITEM('__newproject.f2b').Remove() <<>> .ITEM('__newproject.f2b').Remove()
<<>>
ENDTEXT ENDTEXT
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_FILE_CMTS_I>> <<>> <<C_FILE_CMTS_I>>
ENDTEXT ENDTEXT
@@ -8349,7 +8455,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
FOR EACH loReg IN loProject &&FOXOBJECT FOR EACH loReg IN loProject &&FOXOBJECT
IF NOT EMPTY(loReg.COMMENTS) IF NOT EMPTY(loReg.COMMENTS)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.ITEM(lcCurdir + '<<loReg.NAME>>').Description = '<<loReg.COMMENTS>>' <<>> .ITEM(lcCurdir + '<<loReg.NAME>>').Description = '<<loReg.COMMENTS>>'
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDFOR ENDFOR
@@ -8357,9 +8463,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- Exclusiones *-- Exclusiones
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_FILE_CMTS_F>> <<>> <<C_FILE_CMTS_F>>
<<>>
<<C_TAB>><<C_FILE_EXCL_I>> <<>> <<C_FILE_EXCL_I>>
ENDTEXT ENDTEXT
loProject.KEYSORT = 2 loProject.KEYSORT = 2
@@ -8367,7 +8473,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
FOR EACH loReg IN loProject &&FOXOBJECT FOR EACH loReg IN loProject &&FOXOBJECT
IF loReg.EXCLUDE IF loReg.EXCLUDE
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.ITEM(lcCurdir + '<<loReg.NAME>>').Exclude = .T. <<>> .ITEM(lcCurdir + '<<loReg.NAME>>').Exclude = .T.
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDFOR ENDFOR
@@ -8375,9 +8481,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- Tipos de archivos especiales *-- Tipos de archivos especiales
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_FILE_EXCL_F>> <<>> <<C_FILE_EXCL_F>>
<<>>
<<C_TAB>><<C_FILE_TXT_I>> <<>> <<C_FILE_TXT_I>>
ENDTEXT ENDTEXT
loProject.KEYSORT = 2 loProject.KEYSORT = 2
@@ -8385,7 +8491,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
FOR EACH loReg IN loProject &&FOXOBJECT FOR EACH loReg IN loProject &&FOXOBJECT
IF INLIST( UPPER( JUSTEXT( loReg.NAME ) ), 'H','FPW' ) IF INLIST( UPPER( JUSTEXT( loReg.NAME ) ), 'H','FPW' )
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.ITEM(lcCurdir + '<<loReg.NAME>>').Type = 'T' <<>> .ITEM(lcCurdir + '<<loReg.NAME>>').Type = 'T'
ENDTEXT ENDTEXT
ENDIF ENDIF
ENDFOR ENDFOR
@@ -8393,43 +8499,43 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg
*-- ProjectHook, Debug, Encrypt, Build y cierre *-- ProjectHook, Debug, Encrypt, Build y cierre
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>><<C_FILE_TXT_F>> <<>> <<C_FILE_TXT_F>>
ENDWITH <<C_ENDWITH>>
<<>>
WITH loProject <<C_WITH>> loProject
<<C_TAB>><<C_PROJPROPS_I>> <<>> <<C_PROJPROPS_I>>
ENDTEXT ENDTEXT
IF NOT EMPTY(loProject._MainProg) IF NOT EMPTY(loProject._MainProg)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.SetMain(lcCurdir + '<<loProject._MainProg>>') <<>> .SetMain(lcCurdir + '<<loProject._MainProg>>')
ENDTEXT ENDTEXT
ENDIF ENDIF
IF NOT EMPTY(loProject._Icon) IF NOT EMPTY(loProject._Icon)
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.Icon = lcCurdir + '<<loProject._Icon>>' <<>> .Icon = lcCurdir + '<<loProject._Icon>>'
ENDTEXT ENDTEXT
ENDIF ENDIF
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<C_TAB>>.Debug = <<loProject._Debug>> <<>> .Debug = <<loProject._Debug>>
<<C_TAB>>.Encrypted = <<loProject._Encrypted>> <<>> .Encrypted = <<loProject._Encrypted>>
<<C_TAB>>*<.CmntStyle = <<loProject._CmntStyle>> /> <<>> *<.CmntStyle = <<loProject._CmntStyle>> />
<<C_TAB>>*<.NoLogo = <<loProject._NoLogo>> /> <<>> *<.NoLogo = <<loProject._NoLogo>> />
<<C_TAB>>*<.SaveCode = <<loProject._SaveCode>> /> <<>> *<.SaveCode = <<loProject._SaveCode>> />
<<C_TAB>>.ProjectHookLibrary = '<<loProject._ProjectHookLibrary>>' <<>> .ProjectHookLibrary = '<<loProject._ProjectHookLibrary>>'
<<C_TAB>>.ProjectHookClass = '<<loProject._ProjectHookClass>>' <<>> .ProjectHookClass = '<<loProject._ProjectHookClass>>'
<<C_TAB>><<C_PROJPROPS_F>> <<>> <<C_PROJPROPS_F>>
ENDWITH <<C_ENDWITH>>
<<>>
ENDTEXT ENDTEXT
*-- Build y cierre *-- Build y cierre
* _VFP.Projects('<<JUSTFNAME( THIS.c_inputFile )>>').FILES('__newproject.f2b').Remove() * _VFP.Projects('<<JUSTFNAME( THIS.c_inputFile )>>').FILES('__newproject.f2b').Remove()
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>>
_VFP.Projects('<<JUSTFNAME( THIS.c_inputFile )>>').Close() _VFP.Projects('<<JUSTFNAME( THIS.c_inputFile )>>').Close()
ENDTEXT ENDTEXT
@@ -9426,7 +9532,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
_LanguageID = "<<._LanguageID>>" _LanguageID = "<<._LanguageID>>"
_AutoIncrement = "<<._AutoIncrement>>" _AutoIncrement = "<<._AutoIncrement>>"
<<C_DEVINFO_F>> <<C_DEVINFO_F>>
<<>>
ENDTEXT ENDTEXT
ENDWITH && THIS ENDWITH && THIS
@@ -9460,6 +9566,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
+ [<memberdata name="_filetype_descrip" display="_FileType_Descrip"/>] ; + [<memberdata name="_filetype_descrip" display="_FileType_Descrip"/>] ;
+ [<memberdata name="_indexfile" display="_IndexFile"/>] ; + [<memberdata name="_indexfile" display="_IndexFile"/>] ;
+ [<memberdata name="_memofile" display="_MemoFile"/>] ; + [<memberdata name="_memofile" display="_MemoFile"/>] ;
+ [<memberdata name="_lastupdate" display="_LastUpdate"/>] ;
+ [<memberdata name="_fields" display="_Fields"/>] ; + [<memberdata name="_fields" display="_Fields"/>] ;
+ [<memberdata name="_indexes" display="_Indexes"/>] ; + [<memberdata name="_indexes" display="_Indexes"/>] ;
+ [<memberdata name="_sourcefile" display="_SourceFile"/>] ; + [<memberdata name="_sourcefile" display="_SourceFile"/>] ;
@@ -9478,6 +9585,7 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
_FileType_Descrip = '' _FileType_Descrip = ''
_IndexFile = '' _IndexFile = ''
_MemoFile = '' _MemoFile = ''
_LastUpdate = {}
*-- Fields and Indexes *-- Fields and Indexes
_Fields = NULL _Fields = NULL
@@ -9516,14 +9624,14 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE
CASE C_TABLE_F $ tcLine && Fin CASE C_TABLE_F $ tcLine && Fin
EXIT EXIT
CASE C_INDEXES_I $ tcLine
loIndexes = THIS._Fields
loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
CASE C_FIELDS_I $ tcLine CASE C_FIELDS_I $ tcLine
loFields = THIS._Fields loFields = THIS._Fields
loFields.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) loFields.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
CASE C_INDEXES_I $ tcLine
loIndexes = THIS._Indexes
loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines )
OTHERWISE && Otro valor OTHERWISE && Otro valor
*-- Estructura a reconocer: *-- Estructura a reconocer:
* <tagname>ID<tagname> * <tagname>ID<tagname>
@@ -9792,19 +9900,21 @@ DEFINE CLASS CL_DBF_INDEX AS CL_CUS_BASE
_MEMBERDATA = [<VFPData>] ; _MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="_tagname" display="_TagName"/>] ; + [<memberdata name="_tagname" display="_TagName"/>] ;
+ [<memberdata name="_database" display="_Collate"/>] ; + [<memberdata name="_tagtype" display="_TagType"/>] ;
+ [<memberdata name="_key" display="_Key"/>] ; + [<memberdata name="_key" display="_Key"/>] ;
+ [<memberdata name="_descending" display="_Descending"/>] ; + [<memberdata name="_filter" display="_Filter"/>] ;
+ [<memberdata name="_for_exp" display="_For_Exp"/>] ; + [<memberdata name="_order" display="_Order"/>] ;
+ [<memberdata name="_collate" display="_Collate"/>] ;
+ [</VFPData>] + [</VFPData>]
*-- Index Info *-- Index Info
_TagName = '' _TagName = ''
_Collate = '' _TagType = ''
_Key = '' _Key = ''
_Descending = .F. _Filter = ''
_For_Exp = '' _Order = ''
_Collate = ''
******************************************************************************************************************* *******************************************************************************************************************