Changeset: 60 Changeset: 60 Soporte inicial de Reportes y Etiquetas
This commit is contained in:
BIN
TESTS/DATOS_READONLY/bmps/SobrePostal.bmp
Normal file
BIN
TESTS/DATOS_READONLY/bmps/SobrePostal.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 886 B |
BIN
TESTS/DATOS_READONLY/bmps/TreeView.bmp
Normal file
BIN
TESTS/DATOS_READONLY/bmps/TreeView.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 822 B |
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.frt
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.frt
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.frx
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.frx
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.lbt
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.lbt
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.lbx
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_foxuser.lbx
Normal file
Binary file not shown.
@@ -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
|
||||
|
||||
195
foxbin2prg.prg
195
foxbin2prg.prg
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user