Ayuda -imprimir factura con columna texto tipo memo

Re: Ayuda -imprimir factura con columna texto tipo memo

Postby Manuel Valdenebro » Tue Apr 22, 2014 2:52 pm

Gracias hmpaquito y Cristobal por vuestra contestación. La solución para imprimir un campo MEMO, tanto con la clase tReport como con la clase tPinter, la tengo implementada desde hace tiempo con un MEMOLINE, al igual que hace Rafa Carmona en su clase tImprime.

Pero si leeis la contestación en el inicio de este hilo del maestro Antonio Linares, el da una solución distinta con la función de Windows DrawText(). Sobre esto iba mi pregunta. Es decir, sobre imprimir un campo MEMO, sin la antigua funcion MEMOLINE.

He conseguido que la función DrawText() me devuelva el número de lineas del campo memo, pero no sé despues como hacer para que se imprima el contenido del campo memo de esta nueva manera.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Ayuda -imprimir factura con columna texto tipo memo

Postby jbrita » Tue Apr 22, 2014 3:25 pm

Prueba asi.

cTxt:="Décimo Noveno: El Trabajador no podrá ingresar al trabajo en estado de ebriedad, ni podrá consumir " +;
"bebidas alcohólicas ni sustancias prohibidas en su lugar de trabajo. Ni se permitirá el porte de armas " +;
"blancas ni de ninguna otra especie. "
Imp_Memo(cTxt,oPrn,16.6,2.0,18.0,oFnt1,0.4,)

FUNCTION Imp_Memo(cTxt,oPrn,nRow,nCol,nWid,oFont,nSkp,nClr)
LOCAL cLin, lCont:=.T., nP:=0, lNext, cC, nW
DEFAULT nSkp:=0.4, nClr:=0
cTxt:=Alltrim(cTxt)
nW:=nWid-0.2
nRow-=nSkp
oPrn:Cmtr2Pix(0,@nWid)
DO WHILE lCont // un desmadre para separar
cLin:=cC:="" // y justificar los memos!!
lNext:=.T.
DO WHILE oPrn:GetTextWidth(cLin,oFont)<nWid ;
.AND. nP<=Len(cTxt) .AND. lNext
nP++
cC:=Substr(cTxt,nP,1)
IF Asc(cC)<>13
cLin+=cC
ELSE
nP++
lNext:=.F.
ENDIF
ENDDO
IF Asc(cC)<>13 .AND. Asc(cC)<>0
cC:=Substr(cTxt,nP+1,1)
IF " "$cLin .AND. cC<>" "
DO WHILE cC<>" " .AND. Len(cLin)>0
cLin:=Substr(cLin,1,Len(cLin)-1)
cC:=Right(cLin,1)
nP--
ENDDO
ELSE
cLin:=Substr(cLin,1,Len(cLin)-2)+"-"
cC:=Right(cLin,1)
nP-=2
ENDIF
oPrn:CmSay(nRow+=nSkp,nCol,Alltrim(cLin),oFont,nW,nClr,,3)
ELSE
oPrn:CmSay(nRow+=nSkp,nCol,Alltrim(cLin),oFont,,nClr)
ENDIF
IF nP>=Len(cTxt)
lCont:=.F.
ENDIF
ENDDO
RETURN (Nil)

saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm

Re: Ayuda -imprimir factura con columna texto tipo memo

Postby cnavarro » Tue Apr 22, 2014 5:14 pm

Ahora si entiendo lo que intentas
Has probado directamente con:
Code: Select all  Expand view  RUN

DrawText( oPrn:hdc, mcomer->NOTAS, { nFilReg + 0.5, 4.5, nFilReg + 10, 2500 }, DT_WORDBREAK )

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Ayuda -imprimir factura con columna texto tipo memo

Postby Manuel Valdenebro » Tue Apr 22, 2014 9:57 pm

cnavarro wrote:Ahora si entiendo lo que intentas
Has probado directamente con:
Code: Select all  Expand view  RUN

DrawText( oPrn:hdc, mcomer->NOTAS, { nFilReg + 0.5, 4.5, nFilReg + 10, 2500 }, DT_WORDBREAK )

 


Esa función te devuelve el número de lineas a imprimir, según el ancho que le pongas. Pero no imprime nada.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Ayuda -imprimir factura con columna texto tipo memo

Postby Alfredo Arteaga » Wed Apr 23, 2014 1:23 am

Allá por el 2002 hice algunos cambios a TPrinter y los vengo usando desde entonces sin problema. Publique ejemplos, ya no los tengo pero he aquí los cambios.

http://www.despachoarteaga.com.mx/descargas/Printer.zip
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 40 guests