Page 2 of 2
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 2:52 pm
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.
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 3:25 pm
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
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 5:14 pm
by cnavarro
Ahora si entiendo lo que intentas
Has probado directamente con:
Code: Select all | Expand
DrawText( oPrn:hdc, mcomer->NOTAS, { nFilReg + 0.5, 4.5, nFilReg + 10, 2500 }, DT_WORDBREAK )
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Tue Apr 22, 2014 9:57 pm
by Manuel Valdenebro
cnavarro wrote:Ahora si entiendo lo que intentas
Has probado directamente con:
Code: Select all | Expand
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.
Re: Ayuda -imprimir factura con columna texto tipo memo
Posted: Wed Apr 23, 2014 1:23 am
by Alfredo Arteaga
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