Page 1 of 2

Colocar Negrilla en mitad del texto

Posted: Tue Jul 21, 2015 9:38 pm
by leandro
Compañeros del foro tengan buena tarde.

Tengo almacenado un texto en una dbf. Pero requiero que en la mitad del texto se impriman negrillas. ejemplo

Nota: Si a la fecha del recibido de la presente notificación Usted se encuentra al día en el pago de sus cuotas, favor hacer caso omiso a esta comunicación y allegar los respectivos soportes de pago a la oficina.

Necesito darle formato al texto así como el ejemplo anterior, pero desde mi reporte.

Algún ejemplo o sugerencia?

Re: Colocar Negrilla en mitad del texto

Posted: Wed Jul 22, 2015 9:41 am
by Antonio Linares
Leandro,

Tienes ya algún ejemplo creado para probarlo con EasyReport ?

Re: Colocar Negrilla en mitad del texto

Posted: Thu Jul 23, 2015 11:56 am
by leandro
Hola Antonio Gracias por Responder...

Claro que si...te adjunto el codigo

Code: Select all

********************************
*Imprime Contrato de Compraventa
********************************
FUNCTION pNotificaCobro()

local text1,text2,nomb
uFec:=dtoc(date())
uTim:=subs(time(),1,8)

dia:=day(date())
mes:=oLamcla:vMese[month(date())]
ano:=year(date())
nDia:=Letras(dia)

vRGman:=oRsDocfac:Fields( "id_manzana" ):Value
vRGlot:=oRsDocfac:Fields( "id_lote" ):Value
vRGter:=oRsDocfac:Fields( "docu_terce" ):Value
vRGtel:=oLamcla:cNoNulo(oRsDocfac:Fields( "telefono" ):Value,"C")
vRGdir:=oLamcla:cNoNulo(oRsDocfac:Fields( "direccion" ):Value,"C")
vRGexp:=oLamcla:cNoNulo(oRsDocfac:Fields( "expedida" ):Value,"C")
vRGres:=oLamcla:cNoNulo(oRsDocfac:Fields( "residencia" ):Value,"C")
vRGmts:=oRsDocfac:Fields( "mts2" ):Value
vRGcbe:=oRsDocfac:Fields( "cedula_benefi" ):Value
vRGnbe:=oRsDocfac:Fields( "nombre_benefi" ):Value

tVar := {|| vArray:=oLamcla:pRetornoarra2(3,alltrim(vRGter),30),nomb:=vArray[2]}
EVAL( tVar )
vBar:="DIR-"+strzero(vRGman,3)+"-"+strzero(vRGlot,2)

nFecha:="Yopal, "+alltrim(str(dia))+" de "+alltrim(mes)+" de "+alltrim(str(ano))
nCedu:="C.C.No.: "+alltrim(vRGter)
nDire:="Direccion: "+alltrim(vRGdir)
nTele:="Telefono: "+alltrim(vRGtel)
nRefe:="COMPRAVENTA DE LOTE No. "+alltrim(str(vRGlot))+" Mz. "+alltrim(str(vRGman))

text1:="NOMBRE DEL GERENTE,  en mi calidad de Representante Legal de la Ciudadela La "
text1+="Ciudadela La Bendición, de manera formal y ante el caso omiso a los llamados de cobro "
text1+="verbales, me permito comunicarle que de acuerdo con el contrato de compraventa verbal "
text1+="realizado con Usted respecto de los lotes de la referencia, Usted presenta incumplimiento "
text1+="en los pagos acordados, razón por la cual se ha constituido en mora tal como lo establece el "
text1+="Art. 1608 del Código Civil que reza: La mora en los contratos bilaterales, "
text1+="EL DEUDOR ESTÁ EN MORA: 1. Cuando no ha cumplido la obligación dentro del término estipulado."

text2:="El valor que Usted adeuda a la fecha es "

text4:="De acuerdo con lo anterior le solicito ponerse al día en el pago de su obligación dentro de los tres (3) "
text4+="días hábiles siguientes al recibo de la presente notificación so pena de dar por terminado de manera "
text4+="unilateral el contrato de compraventa y exigir la entrega del inmueble."

text5:="Es pertinente recordarle que su compromiso al momento de la compra fue el de pagar la cuota mensual "
text5+="del lote objeto de compraventa dentro de los CINCO (05) primeros días de cada mes, so pena de perder "
text5+="el derecho a la posesión y tenencia del lote y demás derechos adquiridos, puesto que el incumplimiento de la "
text5+="obligación conlleva a la empresa a tomar medidas de recuperación del Lote mencionado sin derecho a "
text5+="devolver el valor de las mejoras realizadas en el predio, además, perderá los bonos en dinero "
text5+="otorgados por mera liberalidad del Vendedor."

text6:="De igual manera,  al hacer parte del  Proyecto de Vivienda Ciudadela La Bendición, se encuentra "
text6+="inmerso el pago de la acometida para el agua y la energía de su vivienda y de la colecta mensual "
text6+="por concepto de potabilización de agua y mantenimiento de redes eléctricas, pagos que a la fecha "
text6+="no se han realizado; otro hecho que constituye incumplimiento de su parte, motivo que conlleva "
text6+="a la suspensión del suministro de estos servicios."

text7:="Nota: Si a la fecha del recibido de la presente notificación Usted se encuentra al día en el pago "
text7+="de sus cuotas, favor hacer caso omiso a esta comunicación y allegar los respectivos "
text7+="soportes de pago a la oficina."


EASYREPORT oVRD NAME ".\report\NOTIFICACION.vrd" PREVIEW (.T.)

  IF oVRD:lDialogCancel = .T.
    RETURN( .F. )
  ENDIF

  PRINTAREA 1 OF oVRD;
  ITEMIDS    {101,103,104,105,106,107,109,110,111};
  ITEMVALUES {vBar,nFecha,alltrim(nomb),nCedu,nDire,nTele,nRefe,text1,text2}

  PRINTAREA 3 OF oVRD;
  ITEMIDS    {301,302,303,304};
  ITEMVALUES {text4,text5,text6,text7}

END EASYREPORT oVRD

 
Dentro de la variable text5, necesito resaltar el siguiente texto "CINCO (05) primeros días de cada mes".

Saludos

Re: Colocar Negrilla en mitad del texto

Posted: Thu Jul 23, 2015 12:00 pm
by Antonio Linares
Leandro,

Otto es un gran experto con EasyReport, igual él puede ayudarnos en esto

Re: Colocar Negrilla en mitad del texto

Posted: Thu Jul 23, 2015 1:35 pm
by Otto
Hello,
can you please post a screenshot how the report should look.

I am sorry I do not quiet understand the problem.

If I understand well you want a different look depending on the content of the line.
If this is the problem he needs to declare a extra PRINTAREA and then a if else endif.

If A = .t.
PRINTAREA 1 OF oVRD;
ITEMIDS {101,103,104,105,106,107,109,110,111};
ITEMVALUES {vBar,nFecha,alltrim(nomb),nCedu,nDire,nTele,nRefe,text1,text2}
Else
PRINTAREA 3 OF oVRD;
ITEMIDS {101,103,104,105,106,107,109,110,111};
ITEMVALUES {vBar,nFecha,alltrim(nomb),nCedu,nDire,nTele,nRefe,text1,text2}

endif

otherwise you can change
method say in vrd.prg.

Best regards,
Otto

Re: Colocar Negrilla en mitad del texto

Posted: Thu Jul 23, 2015 8:28 pm
by leandro
Otto Muchas Gracias por Responder
Otto Thanks for answering

Lo que necesito, es colocar en negrilla únicamente el texto que esta encerrado con los óvalos en rojo. No es todo
el texto únicamente el valor en letras de lo que debe el usuario.
What I need is to put in bold only the text that is enclosed with red ovals . Not all
the text only the value in words what must the user.


Espero haberme hecho entender.
I hope I made ​​my point .

Mira adjunto la imagen
Look at the picture attached

Image
subefotos

y el codigo que genera ese reporte.

Code: Select all

********************************
*Imprime Contrato de Compraventa
********************************
FUNCTION pNotificaCobro()

local text1,text2,nomb
uFec:=dtoc(date())
uTim:=subs(time(),1,8)

dia:=day(date())
mes:=oLamcla:vMese[month(date())]
ano:=year(date())
nDia:=Letras(dia)

vRGman:=oRsDocfac:Fields( "id_manzana" ):Value
vRGlot:=oRsDocfac:Fields( "id_lote" ):Value
vRGter:=oRsDocfac:Fields( "docu_terce" ):Value
vRGtel:=oLamcla:cNoNulo(oRsDocfac:Fields( "telefono" ):Value,"C")
vRGdir:=oLamcla:cNoNulo(oRsDocfac:Fields( "direccion" ):Value,"C")
vRGexp:=oLamcla:cNoNulo(oRsDocfac:Fields( "expedida" ):Value,"C")
vRGres:=oLamcla:cNoNulo(oRsDocfac:Fields( "residencia" ):Value,"C")
vRGmts:=oRsDocfac:Fields( "mts2" ):Value
vRGcbe:=oRsDocfac:Fields( "cedula_benefi" ):Value
vRGnbe:=oRsDocfac:Fields( "nombre_benefi" ):Value

tVar := {|| vArray:=oLamcla:pRetornoarra2(3,alltrim(vRGter),30),nomb:=vArray[2]}
EVAL( tVar )
vBar:="DIR-"+strzero(vRGman,3)+"-"+strzero(vRGlot,2)

//BUSCAMOS EL VALOR DE LA DEUDA EN LA TABLA TEMPORAL PARA
//PODER GESTIONAR LAS NOTIFICACIONES DE COBRO
oVar:="SELECT * from lyma_deuda_temporal WHERE id_proyecto=1 AND id_manzana="+lTransPic(vRGman)+" AND id_lote="+lTransPic(vRGlot)
oRs7 := FW_OPENRECORDSET(oLamcla:oCon,oVar,adLockOptimistic,adOpenKeyset)
nRegistros := oRs7:RecordCount()
if nRegistros#0
  v_deuda:=oLamcla:cNoNulo(oRs7:Fields("deuda_lote"):Value,"N")
  v_servi:=oLamcla:cNoNulo(oRs7:Fields("deuda_acom"):Value,"N")
  v_acome:=oLamcla:cNoNulo(oRs7:Fields("deuda_serv"):Value,"N")
else
  v_deuda:=v_servi:=v_acome:=0
endif

vTDeuda:=alltrim(Transform(v_deuda+v_servi+v_acome,oLamcla:pic2))
nTDeuda:=letras(v_deuda+v_servi+v_acome)

nFecha:="Yopal, "+alltrim(str(dia))+" de "+alltrim(mes)+" de "+alltrim(str(ano))
nCedu:="C.C.No.: "+alltrim(vRGter)
nDire:="Direccion: "+alltrim(vRGdir)
nTele:="Telefono: "+alltrim(vRGtel)
nRefe:="COMPRAVENTA DE LOTE No. "+alltrim(str(vRGlot))+" Mz. "+alltrim(str(vRGman))

text1:="NOMBRE DEL GERENTE,  en mi calidad de Representante Legal de la Ciudadela La "
text1+="Ciudadela La Bendición, de manera formal y ante el caso omiso a los llamados de cobro "
text1+="verbales, me permito comunicarle que de acuerdo con el contrato de compraventa verbal "
text1+="realizado con Usted respecto de los lotes de la referencia, Usted presenta incumplimiento "
text1+="en los pagos acordados, razón por la cual se ha constituido en mora tal como lo establece el "
text1+="Art. 1608 del Código Civil que reza: La mora en los contratos bilaterales, "
text1+="EL DEUDOR ESTÁ EN MORA: 1. Cuando no ha cumplido la obligación dentro del término estipulado."

if v_deuda#0
  nTCredi:=" por concepto de CUOTAS: "+letras(v_deuda)+" PESOS ("+alltrim(Transform(v_deuda,oLamcla:pic2))+") M/CTE"
else
  nTCredi:=space(0)
endif

if v_acome#0
  nTAcome:=" por concepto de ACOMETIDA AGUA: "+letras(v_acome)+" PESOS ("+alltrim(Transform(v_acome,oLamcla:pic2))+") M/CTE"
else
  nTAcome:=space(0)
endif

if v_servi#0
  v_servi:=" por concepto de SERVICIOS PUBLICOS: "+letras(v_servi)+" PESOS ("+alltrim(Transform(v_servi,oLamcla:pic2))+") M/CTE"
else
  v_servi:=space(0)
endif

text2:="El valor que Usted adeuda a la fecha es "+nTDeuda+" PESOS ("+vTDeuda+") M/CTE "
text2+="por los siguientes conceptos:"+nTCredi+nTAcome+v_servi+"."

text4:="De acuerdo con lo anterior le solicito ponerse al día en el pago de su obligación dentro de los tres (3) "
text4+="días hábiles siguientes al recibo de la presente notificación so pena de dar por terminado de manera "
text4+="unilateral el contrato de compraventa y exigir la entrega del inmueble."

text5:="Es pertinente recordarle que su compromiso al momento de la compra fue el de pagar la cuota mensual "
text5+="del lote objeto de compraventa dentro de los CINCO (05) primeros días de cada mes, so pena de perder "
text5+="el derecho a la posesión y tenencia del lote y demás derechos adquiridos, puesto que el incumplimiento de la "
text5+="obligación conlleva a la empresa a tomar medidas de recuperación del Lote mencionado sin derecho a "
text5+="devolver el valor de las mejoras realizadas en el predio, además, perderá los bonos en dinero "
text5+="otorgados por mera liberalidad del Vendedor."

text6:="De igual manera,  al hacer parte del  Proyecto de Vivienda Ciudadela La Bendición, se encuentra "
text6+="inmerso el pago de la acometida para el agua y la energía de su vivienda y de la colecta mensual "
text6+="por concepto de potabilización de agua y mantenimiento de redes eléctricas, pagos que a la fecha "
text6+="no se han realizado; otro hecho que constituye incumplimiento de su parte, motivo que conlleva "
text6+="a la suspensión del suministro de estos servicios."

text7:="Nota: Si a la fecha del recibido de la presente notificación Usted se encuentra al día en el pago "
text7+="de sus cuotas, favor hacer caso omiso a esta comunicación y allegar los respectivos "
text7+="soportes de pago a la oficina."


EASYREPORT oVRD NAME ".\report\NOTIFICACION.vrd" PREVIEW (.T.)

  IF oVRD:lDialogCancel = .T.
    RETURN( .F. )
  ENDIF

  PRINTAREA 1 OF oVRD;
  ITEMIDS    {101,103,104,105,106,107,109,110,111};
  ITEMVALUES {vBar,nFecha,alltrim(nomb),nCedu,nDire,nTele,nRefe,text1,text2}

  PRINTAREA 3 OF oVRD;
  ITEMIDS    {301,302,303,304};
  ITEMVALUES {text4,text5,text6,text7}

END EASYREPORT oVRD
 

Re: Colocar Negrilla en mitad del texto

Posted: Fri Jul 24, 2015 6:42 am
by Antonio Linares
Leandro,

la frase que comienza con "Notificación de cobro..." está en negrita.

Donde está indicado que se vea en negrita en tu código ?

Re: Colocar Negrilla en mitad del texto

Posted: Fri Jul 24, 2015 9:35 am
by Otto
Hello,
maybe we can extend method say

Pseudocode
if isrtf( cText )
oRTF:print
else
TextOut( ::oPrn:hDCOut, nRow, nCol, cText )
endif

Best regards,
Otto




METHOD Say( nRow, nCol, cText, oFont, nWidth, nClrText, nBkMode, nPad ) CLASS VRD

IF ::oPrn:hDC = 0
RETURN NIL
ENDIF

DEFAULT oFont := ::oPrn:oFont
DEFAULT nBkMode := 1
DEFAULT nPad := 0

IF oFont != nil
oFont:Activate( ::oPrn:hDCOut )
ENDIF

// 1,2 transparent or Opaque
SetbkMode( ::oPrn:hDCOut, nBkMode )

IF nClrText != NIL
#IFDEF __HARBOUR__
SetTextColor( ::oPrn:hDCOut, nClrText )
#ELSE
SetTextCol( ::oPrn:hDCOut, nClrText )
#ENDIF
ENDIF

DO CASE
CASE nPad == 1 // right
nCol := Max( 0, nCol - ::GetTextWidth( cText, oFont ) )
CASE nPad == 2 // center
nCol := Max( 0, nCol - ( ::GetTextWidth( cText, oFont ) / 2 ) )
ENDCASE
Pseudocode
if isrtf( cText )
oRTF:print
else
TextOut( ::oPrn:hDCOut, nRow, nCol, cText )
endif
IF oFont != nil
oFont:DeActivate( ::oPrn:hDCOut )
ENDIF

RETURN ( NIL )

Re: Colocar Negrilla en mitad del texto

Posted: Fri Jul 24, 2015 9:41 am
by Antonio Linares
Otto,

if we provide a bold font to Method Say() then it should do it.

Re: Colocar Negrilla en mitad del texto

Posted: Fri Jul 24, 2015 3:47 pm
by leandro
Antonio buenos días..

En la linea REF: lo que pasa es que son los cuadros de texto diferentes, en ese caso es fácil hacerlo.

El problema es cuando es un solo párrafo y dentro del párrafo debo resaltar unas palabras en especifico.

Image
subir imagenes

Creo que no me hecho entender....

Mira el texto en este momento se muestra asi:

De igual manera, al hacer parte del Proyecto de Vivienda Ciudadela La Bendición, se encuentra inmerso el pago de la acometida para el agua y la energía de su vivienda y de la colecta mensual por concepto de potabilización de agua y mantenimiento de redes eléctricas, pagos que a la fecha no se han realizado; otro hecho que constituye incumplimiento de su parte, motivo que conlleva a la suspensión del suministro de estos servicios.

Lo que quiero es que me salga asi:


De igual manera, al hacer parte del Proyecto de Vivienda Ciudadela La Bendición, se encuentra inmerso el pago de la acometida para el agua y la energía de su vivienda y de la colecta mensual por concepto de potabilización de agua y mantenimiento de redes eléctricas, pagos que a la fecha no se han realizado; otro hecho que constituye incumplimiento de su parte, motivo que conlleva a la suspensión del suministro de estos servicios.

Saludos

Re: Colocar Negrilla en mitad del texto

Posted: Sat Jul 25, 2015 8:32 am
by Antonio Linares
Leandro,

Si localizásemos en que método se imprime ese texto, podriamos usar unas marcas en el texto para indicar negrita.

Re: Colocar Negrilla en mitad del texto

Posted: Sat Jul 25, 2015 9:10 pm
by Otto
Dear Antonio,
I think it is METHOD Say( nRow, nCol, cText, oFont, nWidth, nClrText, nBkMode, nPad ) CLASS VRD.
Best regards,
Otto

Re: Colocar Negrilla en mitad del texto

Posted: Sun Jul 26, 2015 3:18 am
by Antonio Linares
Leandro,

hay una solución muy simple:

crea otro item con el texto que quieres poner en negrita, usando un font bold, y sobreponlo encima del texto que quieres resaltar :-)

Re: Colocar Negrilla en mitad del texto

Posted: Sun Jul 26, 2015 7:25 am
by Otto
Dear Antonio,
but how do you get nRow, nCol for this new Item?
Best regards,
Otto

Re: Colocar Negrilla en mitad del texto

Posted: Sun Jul 26, 2015 10:16 am
by Antonio Linares
Otto,

I did it manually using the EasyReport designer :-)