Changeset: 381 fdbozzo - 29/07/2014 17:48:43:
- Nuevos casos de prueba para detección correcta de text/endtext
This commit is contained in:
@@ -159,7 +159,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************************************
|
*******************************************************************************************************************************************
|
||||||
FUNCTION Deberia_NoEncontrarNingunBloque_TEXT_ENDTEXT_CuandoUnaLineaQueComienzaConUnCampoLlamado_Text_esEvaluado
|
FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueComienzaConUnCampoLlamado_Text_YLineaAnteriorTerminaEn_PuntoYComa
|
||||||
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
|
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
|
||||||
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
|
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
|
||||||
loObj = THIS.icObj
|
loObj = THIS.icObj
|
||||||
@@ -174,7 +174,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
*-- Code Block
|
*-- Code Block
|
||||||
IF !FOUND()
|
IF !FOUND()
|
||||||
APPEND BLANK
|
APPEND BLANK
|
||||||
REPLACE CURSOR WITH "cawlmain", START WITH 1, END WITH 999999, isnumeric WITH .F., lastused WITH "", ; && Worst case for next line
|
REPLACE CURSOR WITH "cawlmain", START WITH 1, END WITH 999999, isnumeric WITH .F., lastused WITH "", ; && Worst case for next line with a field called "text"
|
||||||
TEXT WITH "W<>rmeobjekte", standard WITH .T.
|
TEXT WITH "W<>rmeobjekte", standard WITH .T.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@@ -187,7 +187,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
Empfaenger C(2),;
|
Empfaenger C(2),;
|
||||||
Rohdatum C(8),;
|
Rohdatum C(8),;
|
||||||
RohZeit C(4),;
|
RohZeit C(4),;
|
||||||
LFDNr C(4),; && Worst case for next line
|
LFDNr C(4),; && Worst case for next line with a field called "text"
|
||||||
Text C(26),;
|
Text C(26),;
|
||||||
Trenner C(2),;
|
Trenner C(2),;
|
||||||
DATUM D NULL,;
|
DATUM D NULL,;
|
||||||
@@ -204,7 +204,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
lfdnr c(30) NULL DEFAULT .NULL.,;
|
lfdnr c(30) NULL DEFAULT .NULL.,;
|
||||||
linkkey int,;
|
linkkey int,;
|
||||||
email CHAR(60) NULL DEFAULT .NULL.,;
|
email CHAR(60) NULL DEFAULT .NULL.,;
|
||||||
subject VARCHAR(254) NULL DEFAULT .NULL.,; && Worst case for next line
|
subject VARCHAR(254) NULL DEFAULT .NULL.,; && Worst case for next line with a field called "text"
|
||||||
TEXT m NULL DEFAULT .NULL.,;
|
TEXT m NULL DEFAULT .NULL.,;
|
||||||
docname c(50) NULL DEFAULT .NULL.,;
|
docname c(50) NULL DEFAULT .NULL.,;
|
||||||
versenden l NOT NULL DEFAULT .F.,;
|
versenden l NOT NULL DEFAULT .F.,;
|
||||||
@@ -235,4 +235,57 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as
|
|||||||
ENDFUNC
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************************************************************************
|
||||||
|
FUNCTION Deberia_NoEncontrarBloque_TEXT_ENDTEXT_CuandoEvaluaUnaLineaQueComienzaConUnCampoLlamado_Text_YLineaAnteriorTerminaEn_Coma
|
||||||
|
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(1,2)
|
||||||
|
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
|
||||||
|
loObj = THIS.icObj
|
||||||
|
|
||||||
|
*-- Input and expected params
|
||||||
|
STORE '' TO lcMethod
|
||||||
|
laExpected_Pos(1,1) = 4
|
||||||
|
laExpected_Pos(1,2) = 15
|
||||||
|
|
||||||
|
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
|
||||||
|
<<C_PROC>> myMethod_B
|
||||||
|
*-- Code Block
|
||||||
|
IF ODBC_Query.odbc
|
||||||
|
<<C_TEXT>> TO cSQL NOSHOW
|
||||||
|
update menuitems
|
||||||
|
set parent_menuitem_id = ?iParent_menuitem_id, && Worst case for next line with a field called "text"
|
||||||
|
text = ?strText,
|
||||||
|
command = ?strCommand,
|
||||||
|
message = ?strMessage,
|
||||||
|
keyname = ?strKeyname,
|
||||||
|
keylabel = ?strKeylabel,
|
||||||
|
skipfor = ?strSkipfor,
|
||||||
|
sequence = ?iSequence
|
||||||
|
where menuitem_id = ?iMenuitem_id
|
||||||
|
<<C_ENDTEXT>>
|
||||||
|
ODBC_Query(cSQL)
|
||||||
|
ELSE
|
||||||
|
update menuitems;
|
||||||
|
set parent_menuitem_id = iParent_menuitem_id,; && Worst case for next line with a field called "text"
|
||||||
|
text = strText,;
|
||||||
|
command = strCommand,;
|
||||||
|
message = strMessage,;
|
||||||
|
keyname = strKeyname,;
|
||||||
|
keylabel = strKeylabel,;
|
||||||
|
skipfor = strSkipfor,;
|
||||||
|
sequence = iSequence;
|
||||||
|
where menuitem_id == iMenuitem_id
|
||||||
|
ENDIF
|
||||||
|
<<C_ENDPROC>>
|
||||||
|
ENDTEXT
|
||||||
|
|
||||||
|
lnLineas = ALINES( laLineas, lcMethod )
|
||||||
|
|
||||||
|
*-- Test
|
||||||
|
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
|
||||||
|
|
||||||
|
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
|
||||||
|
|
||||||
|
ENDFUNC
|
||||||
|
|
||||||
|
|
||||||
ENDDEFINE
|
ENDDEFINE
|
||||||
|
|||||||
@@ -95,6 +95,7 @@
|
|||||||
* 06/07/2014 FDBOZZO v1.19.26 Bug Fix cfg: ExtraBackupLevel no se tiene en cuenta cuando se usa multi-configuraci<63>n
|
* 06/07/2014 FDBOZZO v1.19.26 Bug Fix cfg: ExtraBackupLevel no se tiene en cuenta cuando se usa multi-configuraci<63>n
|
||||||
* 02/06/2014 DH/FDBOZZO v1.19.27 Mejora: Agregado soporte para exportar datos para DIFF (no para importar)
|
* 02/06/2014 DH/FDBOZZO v1.19.27 Mejora: Agregado soporte para exportar datos para DIFF (no para importar)
|
||||||
* 21/07/2014 FDBOZZO v1.19.28 Mejora: Agregada funcionalidad para filtrado de tablas y datos cuando se elige DBF_Conversion_Support:4 (Edyshor)
|
* 21/07/2014 FDBOZZO v1.19.28 Mejora: Agregada funcionalidad para filtrado de tablas y datos cuando se elige DBF_Conversion_Support:4 (Edyshor)
|
||||||
|
* 29/07/2014 FDBOZZO v1.19.29 Arreglo bug vcx/scx: Un campo de tabla llamado "text" que comienza la l<>nea puede confundirse con la estructura TEXT/ENDTEXT y reconocer mal el resto del c<>digo
|
||||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -133,6 +134,7 @@
|
|||||||
* 27/06/2014 Daniel S<>nchez MEJORA v1.19.25: Si el campo memo "methods" de los vcx/scx contiene asteriscos fuera de lugar (que no deber<65>a), FoxBin2Prg falla. Deber<65>a poder procesarlo igual.
|
* 27/06/2014 Daniel S<>nchez MEJORA v1.19.25: Si el campo memo "methods" de los vcx/scx contiene asteriscos fuera de lugar (que no deber<65>a), FoxBin2Prg falla. Deber<65>a poder procesarlo igual.
|
||||||
* 02/06/2014 Doug Hennig MEJORA v1.19.22: Agregada funcionalidad para exportar los datos de las tablas al archivo db2 (Agregado en v1.19.27)
|
* 02/06/2014 Doug Hennig MEJORA v1.19.22: Agregada funcionalidad para exportar los datos de las tablas al archivo db2 (Agregado en v1.19.27)
|
||||||
* 21/07/2014 Edyshor PROPUESTA DE MEJORA db2 v1.19.27: Ser<65>a <20>til poder filtrar tablas y datos cuando se elige DBF_Conversion_Support:4 (Agregado en v1.19.28)
|
* 21/07/2014 Edyshor PROPUESTA DE MEJORA db2 v1.19.27: Ser<65>a <20>til poder filtrar tablas y datos cuando se elige DBF_Conversion_Support:4 (Agregado en v1.19.28)
|
||||||
|
* 29/07/2014 M_N_M REPORTE BUG vcx/scx v1.19.28: Los campos de tabla con nombre "text" a veces provocan corrupci<63>n del binario generado (Arreglado en v1.19.29)
|
||||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -3585,6 +3587,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
+ [<memberdata name="createproject_recordheader" display="createProject_RecordHeader"/>] ;
|
+ [<memberdata name="createproject_recordheader" display="createProject_RecordHeader"/>] ;
|
||||||
+ [<memberdata name="createreport" display="createReport"/>] ;
|
+ [<memberdata name="createreport" display="createReport"/>] ;
|
||||||
+ [<memberdata name="createmenu" display="createMenu"/>] ;
|
+ [<memberdata name="createmenu" display="createMenu"/>] ;
|
||||||
|
+ [<memberdata name="currentlineispreviouslinecontinuation" display="currentLineIsPreviousLineContinuation"/>] ;
|
||||||
+ [<memberdata name="defined_pam2memo" display="defined_PAM2Memo"/>] ;
|
+ [<memberdata name="defined_pam2memo" display="defined_PAM2Memo"/>] ;
|
||||||
+ [<memberdata name="eltextoevaluadoeseltokenindicado" display="elTextoEvaluadoEsElTokenIndicado"/>] ;
|
+ [<memberdata name="eltextoevaluadoeseltokenindicado" display="elTextoEvaluadoEsElTokenIndicado"/>] ;
|
||||||
+ [<memberdata name="emptyrecord" display="emptyRecord"/>] ;
|
+ [<memberdata name="emptyrecord" display="emptyRecord"/>] ;
|
||||||
@@ -3754,6 +3757,24 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
RETURN llEncontrado
|
RETURN llEncontrado
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE currentLineIsPreviousLineContinuation
|
||||||
|
LPARAMETERS taCodeLines, I
|
||||||
|
|
||||||
|
LOCAL lcPrevLine, llIsContinuation
|
||||||
|
*-- Analizo la l<>nea anterior para saber si termina con ";" o "," y la actual es continuaci<63>n
|
||||||
|
IF I > 1
|
||||||
|
lcPrevLine = taCodeLines(I-1)
|
||||||
|
ELSE
|
||||||
|
lcPrevLine = ''
|
||||||
|
ENDIF
|
||||||
|
.get_SeparatedLineAndComment( @lcPrevLine )
|
||||||
|
IF INLIST( RIGHT( lcPrevLine,1 ), ';', ',' ) && Esta l<>nea es continuaci<63>n de la anterior
|
||||||
|
llIsContinuation = .T.
|
||||||
|
ENDIF
|
||||||
|
RETURN llIsContinuation
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE identificarBloquesDeExclusion
|
PROCEDURE identificarBloquesDeExclusion
|
||||||
@@ -3799,7 +3820,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
FOR X = 1 TO lnID_Bloques_Count
|
FOR X = 1 TO lnID_Bloques_Count
|
||||||
lnLen_IDFinBQ = LEN( ta_ID_Bloques(X,2) )
|
lnLen_IDFinBQ = LEN( ta_ID_Bloques(X,2) )
|
||||||
IF .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 1 )
|
IF .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 1 ) ;
|
||||||
|
AND NOT THIS.currentLineIsPreviousLineContinuation( @taCodeLines, I )
|
||||||
lnPrimerID = X
|
lnPrimerID = X
|
||||||
lnAnidamientos = 1
|
lnAnidamientos = 1
|
||||||
EXIT
|
EXIT
|
||||||
@@ -3807,14 +3829,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDFOR
|
ENDFOR
|
||||||
|
|
||||||
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
IF lnPrimerID > 0 && Se ha identificado un ID de bloque excluyente
|
||||||
IF I > 1
|
*IF I > 1
|
||||||
*-- Analizo la l<>nea anterior para saber si termina con ";" y la actual es continuaci<63>n
|
* *-- Analizo la l<>nea anterior para saber si termina con ";" o "," y la actual es continuaci<63>n
|
||||||
lcPrevLine = taCodeLines(I-1)
|
* lcPrevLine = taCodeLines(I-1)
|
||||||
.get_SeparatedLineAndComment( @lcPrevLine )
|
* .get_SeparatedLineAndComment( @lcPrevLine )
|
||||||
IF RIGHT( lcPrevLine,1 ) = ';' && Esta l<>nea es continuaci<63>n de la anterior
|
* IF INLIST( RIGHT( lcPrevLine,1 ), ';', ',' ) && Esta l<>nea es continuaci<63>n de la anterior
|
||||||
LOOP
|
* LOOP
|
||||||
ENDIF
|
* ENDIF
|
||||||
ENDIF
|
*ENDIF
|
||||||
|
|
||||||
tnBloquesExclusion = tnBloquesExclusion + 1
|
tnBloquesExclusion = tnBloquesExclusion + 1
|
||||||
lnLen_IDFinBQ = LEN( ta_ID_Bloques(lnPrimerID,2) )
|
lnLen_IDFinBQ = LEN( ta_ID_Bloques(lnPrimerID,2) )
|
||||||
@@ -3831,10 +3853,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 1 )
|
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 1 ) ;
|
||||||
|
AND NOT THIS.currentLineIsPreviousLineContinuation( @taCodeLines, I )
|
||||||
lnAnidamientos = lnAnidamientos + 1
|
lnAnidamientos = lnAnidamientos + 1
|
||||||
|
|
||||||
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 2 )
|
CASE .elTextoEvaluadoEsElTokenIndicado( @lcLine, @ta_ID_Bloques, lnLen_IDFinBQ, X, 2 ) ;
|
||||||
|
AND NOT THIS.currentLineIsPreviousLineContinuation( @taCodeLines, I )
|
||||||
lnAnidamientos = lnAnidamientos - 1
|
lnAnidamientos = lnAnidamientos - 1
|
||||||
|
|
||||||
IF lnAnidamientos = 0
|
IF lnAnidamientos = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user