Ayuda -imprimir factura con columna texto tipo memo

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

Post by Manuel Valdenebro »

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
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: Ayuda -imprimir factura con columna texto tipo memo

Post by jbrita »

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
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Ayuda -imprimir factura con columna texto tipo memo

Post by cnavarro »

Ahora si entiendo lo que intentas
Has probado directamente con:

Code: Select all

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

 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
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

Post by Manuel Valdenebro »

cnavarro wrote:Ahora si entiendo lo que intentas
Has probado directamente con:

Code: Select all

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
Alfredo Arteaga
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico
Contact:

Re: Ayuda -imprimir factura con columna texto tipo memo

Post by Alfredo Arteaga »

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

http://www.despachoarteaga.com.mx/descargas/Printer.zip
Post Reply