Changeset: 60 Changeset: 60 Soporte inicial de Reportes y Etiquetas

This commit is contained in:
fernando
2013-12-08 13:09:20 +01:00
parent 9f4e7c0192
commit 7b0792c681
8 changed files with 235 additions and 87 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -55,7 +55,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
*******************************************************************************************************************************************
FUNCTION Evaluate_results
LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado, tc_OutputFile, tcParent, tcClass, tcObjName, toReg_Esperado ;
, toReg, tcTipoBinario
, toReg, tcTipoBinario, tnRecno
#IF .F.
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
@@ -69,10 +69,47 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
IF ISNULL(toEx)
DO CASE
CASE INLIST(tcTipoBinario, 'FRX')
CASE INLIST(tcTipoBinario, 'FRX', 'LBX')
*--------------------------------------------
*-- REPORTES
*--------------------------------------------
LOCAL I, laProps(1)
*-- Visualizaci<63>n de valores
THIS.messageout( LOWER(PROGRAM(PROGRAM(-1)-1)) )
THIS.messageout( 'Recno#' + TRANSFORM(tnRecno) + ' UniqueID="' + toReg_Esperado.UniqueID + '" ObjType=' + TRANSFORM(toReg_Esperado.ObjType) ;
+ ' ObjCode=' + TRANSFORM(toReg_Esperado.ObjCode) + ' Expr=[' + LEFT(toReg_Esperado.Expr,20) ;
+ IIF(LEN(toReg_Esperado.Expr)>20,'...]',']') ;
+ ' vpos=' + TRANSFORM(toReg_Esperado.VPOS) + ' hpos=' + TRANSFORM(toReg_Esperado.HPOS) ;
+ ' height=' + TRANSFORM(toReg_Esperado.HEIGHT) + ' width=' + TRANSFORM(toReg_Esperado.WIDTH) )
*-- Evaluaci<63>n de valores
FOR I = 1 TO AMEMBERS( laProps, toReg_Esperado, 0 )
*-- Formateo
ADDPROPERTY( toReg_Esperado, laProps(I) ;
, '[' + oFXU_LIB.mejorarPresentacionCaracteresEspeciales( TRANSFORM( EVALUATE('toReg_Esperado.'+laProps(I)) ) ) + ']' )
ADDPROPERTY( toReg, laProps(I) ;
, '[' + oFXU_LIB.mejorarPresentacionCaracteresEspeciales( TRANSFORM( EVALUATE('toReg.'+laProps(I)) ) ) + ']' )
*-- COMPARO
THIS.assertequals( LEN(EVALUATE('toReg_Esperado.'+laProps(I))) ;
, LEN(EVALUATE('toReg.'+laProps(I))) ;
, 'Longitud de ' + laProps(I) + ' para el reg#' + TRANSFORM(tnRecno) ;
+ ' UniqueID="' + toReg.UniqueID + '" ObjType=' + TRANSFORM(toReg.ObjType) )
THIS.assertequals( (EVALUATE('toReg_Esperado.'+laProps(I))) ;
, (EVALUATE('toReg.'+laProps(I))) ;
, 'Valor de ' + laProps(I) + ' para el reg#' + TRANSFORM(tnRecno) ;
+ ' UniqueID="' + toReg.UniqueID + '" ObjType=' + TRANSFORM(toReg.ObjType) )
ENDFOR
CASE INLIST(tcTipoBinario, 'VCX', 'SCX')
*--------------------------------------------
*-- FORMS / CLASES
*--------------------------------------------
LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, laPropsAndValues_Esperado(1,2), lnPropsAndValues_Count_Esperado ;
, lnPropsAndComments_Count, lnPropsAndComments_Count_Esperado, laPropsAndComments(1,2), laPropsAndComments_Esperado(1,2) ;
, laProtected(1), lnProtected_Count, laProtected_Esperado(1), lnProtected_Count_Esperado ;
@@ -229,9 +266,9 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElReporte_FB2P_FRX_YValidarLosCamposDelRegistro
*-- REPORTE (FRX)
*-- REPORTES (FRX)
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario, lnRecno ;
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
, loEx AS EXCEPTION
@@ -245,6 +282,7 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
*loCnv.l_Debug = .F.
loCnv.l_ShowErrors = .F.
*loCnv.l_Test = .T.
*loCnv.l_ReportSort_Enabled = .F.
*-- DATOS DE ENTRADA
@@ -265,8 +303,9 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
SCAN ALL FOR NOT DELETED()
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnRecno = RECNO()
SCATTER MEMO NAME loReg_Esperado
lcUniqueID = loReg_Esperado.UNIQUEID
lcUniqueID = loReg_Esperado.UNIQUEID
*-- TEST
IF FILE(lc_OutputFile)
@@ -279,14 +318,88 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg
LOCATE FOR UNIQUEID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontr<74> el registro con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIBOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ENDIF
SCATTER MEMO NAME loReg
USE IN (SELECT("TABLABIN"))
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName ;
, loReg_Esperado, loReg, lcTipoBinario )
, loReg_Esperado, loReg, lcTipoBinario, lnRecno )
ENDSCAN
CATCH TO loEx
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado )
FINALLY
USE IN (SELECT("ARCHIBOBIN_IN"))
ENDTRY
ENDFUNC
*******************************************************************************************************************************************
FUNCTION Deberia_Ejecutar_FOXBIN2PRG_ParaElReporte_FB2P_LBX_YValidarLosCamposDelRegistro
*-- ETIQUETAS (LBX)
LOCAL lnCodError, lnCodError_Esperado ;
, lc_File, lc_InputFile, lc_OutputFile, lcParent, lcClass, lcObjName, loReg_Esperado, loReg, lcTipoBinario, lnRecno ;
, loModulo AS CL_CLASE OF "FOXBIN2PRG.PRG" ;
, loCnv AS c_foxbin2prg OF "FOXBIN2PRG.PRG" ;
, loEx AS EXCEPTION
#IF .F.
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
#ENDIF
TRY
loEx = NULL
loCnv = NEWOBJECT("c_foxbin2prg", "FOXBIN2PRG.PRG")
*loCnv.l_Debug = .F.
loCnv.l_ShowErrors = .F.
*loCnv.l_Test = .T.
*loCnv.l_ReportSort_Enabled = .F.
*-- DATOS DE ENTRADA
STORE 0 TO lnCodError
lc_File = 'fb2p_foxuser.lbx'
lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' )
lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' )
lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) )
oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) )
loCnv.Convertir( lc_OutputFile, .F., .F., .T. )
loCnv.Convertir( FORCEEXT(lc_OutputFile, LEFT( JUSTEXT(lc_File),2 ) + '2' ), .F., .F., .T. )
SELECT 0
USE (lc_InputFile) SHARED AGAIN NOUPDATE ALIAS ARCHIBOBIN_IN
SCAN ALL FOR NOT DELETED()
*-- DATOS ESPERADOS
STORE 0 TO lnCodError_Esperado
lnRecno = RECNO()
SCATTER MEMO NAME loReg_Esperado
lcUniqueID = loReg_Esperado.UNIQUEID
*-- TEST
IF FILE(lc_OutputFile)
SELECT 0
USE (lc_OutputFile) SHARED NOUPDATE ALIAS TABLABIN
ELSE
ERROR 'No se encontr<74> el archivo "' + lc_OutputFile + '"'
ENDIF
LOCATE FOR UNIQUEID==lcUniqueID
IF NOT FOUND()
ERROR 'No se encontr<74> el registro #' + TRANSFORM(RECNO('ARCHIBOBIN_IN')) + ' con UniqueID "' + lcUniqueID + '" en el archivo "' + lc_OutputFile + '"'
ENDIF
SCATTER MEMO NAME loReg
USE IN (SELECT("TABLABIN"))
THIS.Evaluate_results( loEx, lnCodError_Esperado, lc_OutputFile, lcParent, lcClass, lcObjName ;
, loReg_Esperado, loReg, lcTipoBinario, lnRecno )
ENDSCAN
CATCH TO loEx

View File

@@ -49,7 +49,7 @@
* 06/12/2013 FDBOZZO v1.9 Arreglo bug p<>rdida de propiedades causado por una mejora anterior
* 06/12/2013 FDBOZZO v1.10 Arreglo del bug de mezcla de m<>todos de una clase con la siguiente
* 07/12/2013 FDBOZZO v1.11 Arreglo del bug de _amembers detectado por Edgar K.con la clase BlowFish.vcx (http://www.tortugaproductiva.galeon.com/docs/blowfish/index.html)
* 06/12/2013 FDBOZZO v1.12 Agregado soporte preliminar de conversi<73>n de reportes (FRX/FR2)
* 07/12/2013 FDBOZZO v1.12 Agregado soporte preliminar de conversi<73>n de reportes y etiquetas (FRX/LBX)
*
*---------------------------------------------------------------------------------------------------
* TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)
@@ -332,6 +332,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
+ [<memberdata name="l_showerrors" type="property" display="l_ShowErrors"/>] ;
+ [<memberdata name="l_methodsort_enabled" type="property" display="l_MethodSort_Enabled"/>] ;
+ [<memberdata name="l_propsort_enabled" type="property" display="l_PropSort_Enabled"/>] ;
+ [<memberdata name="l_reportsort_enabled" type="property" display="l_ReportSort_Enabled"/>] ;
+ [<memberdata name="c_curdir" type="property" display="c_CurDir"/>] ;
+ [<memberdata name="c_inputfile" type="property" display="c_InputFile"/>] ;
+ [<memberdata name="c_outputfile" type="property" display="c_OutputFile"/>] ;
@@ -358,9 +359,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
l_ShowErrors = .F.
l_MethodSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
l_PropSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias
lFileMode = .F.
nClassTimeStamp = ''
n_FB2PRG_Version = 1.11
n_FB2PRG_Version = 1.12
o_Conversor = NULL
c_VC2 = 'VC2'
c_SC2 = 'SC2'
@@ -437,6 +439,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, THIS.c_FR2 )
THIS.o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
CASE JUSTEXT(THIS.c_InputFile) = 'LBX'
THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, THIS.c_LB2 )
THIS.o_Conversor = CREATEOBJECT( 'c_conversor_frx_a_prg' )
CASE JUSTEXT(THIS.c_InputFile) = THIS.c_VC2
THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'VCX' )
THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_vcx' )
@@ -453,6 +459,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'FRX' )
THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
CASE JUSTEXT(THIS.c_InputFile) = THIS.c_LB2
THIS.c_OutputFile = FORCEEXT( THIS.c_InputFile, 'LBX' )
THIS.o_Conversor = CREATEOBJECT( 'c_conversor_prg_a_frx' )
OTHERWISE
ERROR 'El archivo [' + THIS.c_InputFile + '] no est<73> soportado'
@@ -464,9 +474,11 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM
THIS.o_Conversor.l_Debug = THIS.l_Debug
THIS.o_Conversor.l_Test = THIS.l_Test
THIS.o_Conversor.n_FB2PRG_Version = THIS.n_FB2PRG_Version
THIS.o_Conversor.Convertir( @toModulo )
THIS.o_Conversor.l_MethodSort_Enabled = THIS.l_MethodSort_Enabled
THIS.o_Conversor.l_PropSort_Enabled = THIS.l_PropSort_Enabled
THIS.o_Conversor.l_ReportSort_Enabled = THIS.l_ReportSort_Enabled
*--
THIS.o_Conversor.Convertir( @toModulo )
THIS.o_Conversor = NULL
CATCH TO toEx
@@ -625,6 +637,7 @@ DEFINE CLASS c_conversor_base AS SESSION
+ [<memberdata name="l_test" type="property" display="l_Test"/>] ;
+ [<memberdata name="l_methodsort_enabled" type="property" display="l_MethodSort_Enabled"/>] ;
+ [<memberdata name="l_propsort_enabled" type="property" display="l_PropSort_Enabled"/>] ;
+ [<memberdata name="l_reportsort_enabled" type="property" display="l_ReportSort_Enabled"/>] ;
+ [<memberdata name="n_fb2prg_version" type="property" display="n_FB2PRG_Version"/>] ;
+ [</VFPData>]
@@ -641,6 +654,7 @@ DEFINE CLASS c_conversor_base AS SESSION
c_LogFile = ''
l_MethodSort_Enabled = .T.
l_PropSort_Enabled = .T.
l_ReportSort_Enabled = .T.
*******************************************************************************************************************
@@ -929,51 +943,23 @@ DEFINE CLASS c_conversor_base AS SESSION
*******************************************************************************************************************
PROCEDURE doBackup
LOCAL lcNext_Bak
LOCAL lcNext_Bak, lcExt_X, lcExt_T
lcNext_Bak = THIS.getNext_BAK( THIS.c_OutputFile )
lcExt_X = JUSTEXT( THIS.c_OutputFile )
lcExt_T = LEFT(lcExt_X,2) + 'T'
DO CASE
CASE JUSTEXT( THIS.c_OutputFile ) = 'VCX'
IF FILE( FORCEEXT(THIS.c_OutputFile,'VCX') )
THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,'VCX') + '/VCT' )
CASE JUSTEXT( THIS.c_OutputFile ) = lcExt_X
IF FILE( FORCEEXT(THIS.c_OutputFile,lcExt_X) )
THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,lcExt_X) + '/' + lcExt_T )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'VCX')) TO (FORCEEXT(THIS.c_OutputFile, 'VCX' + lcNext_Bak))
COPY FILE (FORCEEXT(THIS.c_OutputFile,lcExt_X)) TO (FORCEEXT(THIS.c_OutputFile, lcExt_X + lcNext_Bak))
IF FILE( FORCEEXT(THIS.c_OutputFile,'VCT') )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'VCT')) TO (FORCEEXT(THIS.c_OutputFile,'VCT' + lcNext_Bak))
IF FILE( FORCEEXT(THIS.c_OutputFile,lcExt_T) )
COPY FILE (FORCEEXT(THIS.c_OutputFile,lcExt_T)) TO (FORCEEXT(THIS.c_OutputFile,lcExt_T + lcNext_Bak))
ENDIF
ENDIF
CASE JUSTEXT( THIS.c_OutputFile ) = 'SCX'
IF FILE( FORCEEXT(THIS.c_OutputFile,'SCX') )
THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,'SCX') + '/SCT' )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'SCX')) TO (FORCEEXT(THIS.c_OutputFile,'SCX' + lcNext_Bak))
IF FILE( FORCEEXT(THIS.c_OutputFile,'SCT') )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'SCT')) TO (FORCEEXT(THIS.c_OutputFile,'SCT' + lcNext_Bak))
ENDIF
ENDIF
CASE JUSTEXT( THIS.c_OutputFile ) = 'PJX'
IF FILE( FORCEEXT(THIS.c_OutputFile,'PJX') )
THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,'PJX') + '/PJT' )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'PJX')) TO (FORCEEXT(THIS.c_OutputFile,'PJX' + lcNext_Bak))
IF FILE( FORCEEXT(THIS.c_OutputFile,'PJT') )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'PJT')) TO (FORCEEXT(THIS.c_OutputFile,'PJT' + lcNext_Bak))
ENDIF
ENDIF
CASE JUSTEXT( THIS.c_OutputFile ) = 'FRX'
IF FILE( FORCEEXT(THIS.c_OutputFile,'FRX') )
THIS.writeLog( 'backup de: ' + FORCEEXT(THIS.c_OutputFile,'FRX') + '/FRT' )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'FRX')) TO (FORCEEXT(THIS.c_OutputFile,'FRX' + lcNext_Bak))
IF FILE( FORCEEXT(THIS.c_OutputFile,'FRT') )
COPY FILE (FORCEEXT(THIS.c_OutputFile,'FRT')) TO (FORCEEXT(THIS.c_OutputFile,'FRT' + lcNext_Bak))
ENDIF
ENDIF
OTHERWISE
ERROR 'Tipo de archivo [' + JUSTFNAME(THIS.c_OutputFile) + '] no soportado para backup!'
@@ -1978,7 +1964,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
, 'BOTMARGIN' N(3) ;
, 'TOTALTYPE' N(2) ;
, 'RESETTOTAL' N(2) ;
, 'RESOID' N(2) ;
, 'RESOID' N(3) ;
, 'CURPOS' L ;
, 'SUPALWAYS' L ;
, 'SUPOVFLOW' L ;
@@ -2248,6 +2234,28 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
ENDPROC
*******************************************************************************************************************
PROCEDURE getTextFrom_BIN_FileStructure
TRY
LOCAL lcStructure, lnSelect
lnSelect = SELECT()
SELECT 0
USE (THIS.c_InputFile) AGAIN SHARED ALIAS _TABLABIN
COPY STRUCTURE EXTENDED TO ( FORCEPATH( '_FRX_STRUC.DBF', ADDBS( SYS(2023) ) ) )
**** CONTINUAR SI ES NECESARIO - SIN USO POR AHORA
CATCH TO loEx
THROW
FINALLY
USE IN (SELECT("_TABLABIN"))
SELECT (lnSelect)
ENDTRY
RETURN lcStructure
ENDPROC
*******************************************************************************************************************
PROCEDURE defined_PAM2Memo
LPARAMETERS toClase
@@ -4565,24 +4573,6 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
ENDCASE
*-- ARREGLO ALGUNOS VALORES
DO CASE
CASE TRANSFORM(loReg.ObjType) = "1" && Header
loReg.tag = THIS.decode_SpecialCodes_1_31( loReg.tag )
loReg.tag2 = STRCONV( loReg.tag2,14 )
CASE TRANSFORM(loReg.ObjType) = "25" && Dataenvironment (footer)
IF NOT EMPTY(loReg.tag)
loReg.tag = SUBSTR( loReg.tag, 3 ) && Le quito el CR+LF que le agregu<67> al TEXTualizar
ENDIF
loReg.tag2 = STRCONV( loReg.tag2,14 )
OTHERWISE && Resto
loReg.tag = THIS.decode_SpecialCodes_1_31( loReg.tag )
loReg.tag2 = STRCONV( loReg.tag2,14 )
ENDCASE
ENDFOR
INSERT INTO TABLABIN FROM NAME loReg
@@ -4590,6 +4580,12 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
USE IN (SELECT("TABLABIN"))
IF THIS.c_Type = 'FRX'
COMPILE REPORT (THIS.c_OutputFile)
ELSE
COMPILE LABEL (THIS.c_OutputFile)
ENDIF
CATCH TO loEx
lnCodError = loEx.ERRORNO
@@ -4693,21 +4689,23 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
EXIT
ENDIF
lcValue = STREXTRACT( tcLine, C_DATA_I ) + CR_LF
*-- Tomo la primera parte del valor
lcValue = STREXTRACT( tcLine, C_DATA_I )
*-- Recorro las fracciones del valor
FOR I = I + 1 TO tnCodeLines
.set_Line( @tcLine, @taCodeLines, I )
IF C_DATA_F $ tcLine
lcValue = lcValue + STREXTRACT( tcLine, '', C_DATA_F ) + CR_LF
IF C_DATA_F $ tcLine && Fin del valor
lcValue = lcValue + CR_LF + STREXTRACT( tcLine, '', C_DATA_F )
ADDPROPERTY( toReg, tcPropName, lcValue )
EXIT
ELSE
lcValue = lcValue + tcLine + CR_LF
ELSE && Otra fracci<63>n del valor
lcValue = lcValue + CR_LF + tcLine
ENDIF
ENDFOR
ENDIF
CATCH TO loEx
@@ -4745,15 +4743,18 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
IF LOWER( LEFT(tcLine, 10) ) == 'platform="'
llBloqueEncontrado = .T.
lnLastPos = 1
lnLastPos = 1
tcLine = ' ' + tcLine
FOR X = 1 TO AMEMBERS( laProps, toReg, 0 )
lnPos = AT( LOWER(laProps(X)) + '="', tcLine )
laProps(X) = ' ' + laProps(X)
lnPos = AT( LOWER(laProps(X)) + '="', tcLine )
IF lnPos > 0
lnLenPropName = LEN(laProps(X))
lnPos2 = AT( '"', SUBSTR( tcLine, lnPos + lnLenPropName + 2 ) )
lcValue = SUBSTR( tcLine, lnPos + lnLenPropName + 2, lnPos2 - 1 )
ADDPROPERTY( toReg, laProps(X), lcValue )
ENDIF
ENDFOR
@@ -4811,8 +4812,19 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
CASE .analizarBloque_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'picture' )
CASE .analizarBloque_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'tag' )
*-- ARREGLO ALGUNOS VALORES CAMBIADOS AL TEXTUALIZAR
DO CASE
CASE loReg.ObjType == "1"
loReg.TAG = THIS.decode_SpecialCodes_1_31( loReg.tag )
CASE loReg.ObjType == "25"
loReg.TAG = SUBSTR(loReg.TAG,3)
OTHERWISE
loReg.TAG = THIS.decode_SpecialCodes_1_31( loReg.tag )
ENDCASE
CASE .analizarBloque_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'tag2' )
*-- ARREGLO ALGUNOS VALORES CAMBIADOS AL TEXTUALIZAR
loReg.TAG2 = STRCONV( loReg.TAG2,14 )
CASE .analizarBloque_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'penred' )
@@ -4823,6 +4835,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin
CASE .analizarBloque_CDATA_inline( toReport, @tcLine, @taCodeLines, @I, tnCodeLines, @loReg, 'user' )
ENDCASE
ENDFOR
ENDWITH && THIS
@@ -6949,23 +6962,44 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
DODEFAULT( @toModulo, @toEx )
TRY
LOCAL lnCodError, loRegCab, loRegDataEnv, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
LOCAL lnCodError, loRegCab, loRegDataEnv, loRegCur, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1) ;
, laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1)
STORE 0 TO lnCodError, lnLastClass
STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1)
STORE NULL TO loRegObj, loRegCab, loRegDataEnv
STORE NULL TO loRegObj, loRegCab, loRegDataEnv, loRegCur
USE (THIS.c_InputFile) SHARED NOUPDATE ALIAS TABLABIN_0
GO TOP && Tiene que ser objType = 1
SCATTER MEMO NAME loRegCab
GOTO BOTTOM && Tiene que ser objType = 25
SCATTER MEMO NAME loRegDataEnv
*-- Header
LOCATE FOR objType = 1
IF FOUND()
SCATTER MEMO NAME loRegCab
ENDIF
SELECT * FROM TABLABIN_0 ;
WHERE objType NOT IN (1,25) ;
ORDER BY vpos,hpos ;
INTO CURSOR TABLABIN READWRITE
*-- Dataenvironment
LOCATE FOR objType = 25
IF FOUND()
SCATTER MEMO NAME loRegDataEnv
ENDIF
*-- Cursor1 (<28>puede haber m<>s de 1 cursor?)
LOCATE FOR objType = 26
IF FOUND()
SCATTER MEMO NAME loRegCur
ENDIF
IF THIS.l_ReportSort_Enabled
*-- ORDENADO
SELECT * FROM TABLABIN_0 ;
WHERE objType NOT IN (1,25,26) ;
ORDER BY vpos,hpos ;
INTO CURSOR TABLABIN READWRITE
ELSE
*-- SIN ORDENAR (S<>lo para poder comparar con el original)
SELECT * FROM TABLABIN_0 ;
WHERE objType NOT IN (1,25,26) ;
INTO CURSOR TABLABIN
ENDIF
loRegObj = NULL
USE IN (SELECT("TABLABIN_0"))
@@ -6973,7 +7007,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
THIS.write_PROGRAM_HEADER()
*----------------------------------------------
*-- Recorro los registros y genero el texto
SELECT TABLABIN
GOTO TOP
THIS.write_CABECERA_REPORTE( @loRegCab )
@@ -6984,8 +7018,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg
ENDSCAN
THIS.write_DATAENVIRONMENT_REPORTE( @loRegDataEnv )
THIS.write_DETALLE_REPORTE( @loRegCur )
*-- Genero el SC2
*-- Genero el FR2
IF THIS.l_Test
toModulo = C_FB2PRG_CODE
ELSE