FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda -imprimir factura con columna texto tipo memo
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 02: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
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 03: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

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 05:14 PM
Ahora si entiendo lo que intentas
Has probado directamente con:
Code (fw): Select all Collapse
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
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 09:57 PM
cnavarro wrote:Ahora si entiendo lo que intentas
Has probado directamente con:
Code (fw): Select all Collapse
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
Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Wed Apr 23, 2014 01: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

Continue the discussion