* Method: AddLine
LPARAMETERS tcAddMessage, tnHeader_flag , tnTabs
*!* Tags within the text
*!* <L> El mensaje va en la misma línea. May be LOWER()
*!* <C/> Limpia edtMensajero (.edtMensajero.value=""). May be LOWER()
*!* <E/> Crea una línea Vacía
*!* tnHeader_flag = 0 edtMensaje
*!* tnHeader_flag = 1 Header + edtMensaje
*!* tnHeader_flag = 2 Header
#DEFINE _TAB_ CHR(9)
#DEFINE _SPA_ CHR(32)
#DEFINE _SYM_ CHR(155)
#DEFINE _CR_ CHR(13)
tcAddMessage=EVL(m.tcAddMessage,"")
tnHeader_flag=IIF(VARTYPE(tnHeader_flag)="L",IIF(tnHeader_flag,1,0),EVL(tnHeader_flag,0))
tnTabs = IIF(VARTYPE(tnTabs)="L",IIF(tnTAbs,1,0),EVL(tnTabs,0))
LOCAL lcAdd,lcEdt_Value
WITH this
lcEdt_Value=TRIM(.edtMensajero.Text)
IF m.tnHeader_Flag > 0
.txt_Header.Value="» "+m.tcAddMessage
ENDIF
IF m.tnHeader_Flag < 2
DO CASE
CASE UPPER(ALLTRIM(m.tcAddMessage))=="<C/>" && clean
.EDTMensajero.Value=""
CASE UPPER(ALLTRIM(m.tcAddMessage))=="<E/>" && agrega línea vacía
.edtMensajero.Value = TRIM(m.lcEdt_Value) + _CR_
CASE AT("<L>",m.tcAddMessage)>0 && mensaje en la misma línea
.edtMensajero.Value=SUBSTR(m.lcEdt_Value,1,RAT(_SYM_,m.lcEdt_Value)) ;
+REPLICATE(_TAB_,m.tnTabs)+_SPA_+ALLTRIM(STRTRAN(m.tcAddMessage,"<L>","")) + _CR_
CASE AT("<l>",m.tcAddMessage)>0 && mensje en la misma línea
.edtMensajero.Value=SUBSTR(m.lcEdt_Value,1,RAT(_SYM_,m.lcEdt_Value)) ;
+REPLICATE(_TAB_,m.tnTabs)+_SPA_+ALLTRIM(STRTRAN(m.tcAddMessage,"<l>","")) + _CR_
OTHERWISE && nueva línea de mensaje
.edtMensajero.Value = TRIM(m.lcEdt_Value) ;
+REPLICATE(_TAB_,m.tnTabs)+_SYM_+_SPA_+ALLTRIM(m.tcAddMessage) + _CR_
ENDCASE
.edtMensajero.SelStart=LEN(TRIM(.edtMensajero.Text))+1
ENDIF
ENDWITH