Page 1 of 2

Nueva TdosPrn con Preview (tRichedit)

Posted: Tue May 15, 2007 5:01 pm
by ralph
Estimados amigos del foro:

Para los interesados (como yo) en seguir usando la clase TdosPrn modificada por Ednaldo Rolim que nos da la opcion de previsualizar los reportes he hecho una modificacion para que el Preview lo haga usando la clase Richedit (FWH 2.7 en adelante). Con esto se elimina un problema que habia en 32 bits que hacia desaparecer el reporte cuando se desplazaba hacia la derecha.

Si alguien quiere ayudar a mejorar esta clase es bienvenido (el metodo TxtToRTF() esta todavia incompleto). Por ahora solo reconoce 2 tamaños de fuentes el modo "normal" y "comprimido" (que para mi es suficiente), pero no puedo mezclar (aun) distintos tamaños de font en la misma linea.

Se puede hacer zoom con doble click o con el boton en la barra superior.

Pueden descargar los fuentes y un ejemplo desde www.solupymes.com/fwin/testprev.zip

Saludos

Ralph del Castillo

Posted: Tue May 15, 2007 10:15 pm
by miragerr
Ola amigo

Muito boa a sua contribuição

Funcionou muito BACANA MESMO

Posted: Wed May 16, 2007 11:39 am
by AOKISANTOS
gracias!

Posted: Wed May 16, 2007 1:57 pm
by Wanderson
Gracias Ralph
No se puede imprimir en una impressora de rede? sem usar NET use?

Posted: Wed May 16, 2007 7:00 pm
by ralph
Yo imprimo sin problemas en impresoras en red, sin hacer NET USE

La impresion es en modo grafico, por lo que no hay limitacion en la impresion.

Ralph

Nueva TdosPrn con Preview (tRichedit)

Posted: Mon Jun 11, 2007 2:22 pm
by surGom
Bajé y utlizé esta nueva versión, me genera bien el preview, pero no puedo avanzar hoja por hoja en el mismo, si selecciono en la hoja a imprimir ahí sí se refresca y me lo imprime perfectamente. Otro problema que me genera es que no me respeta los margenes, por ejemplo:

oPrn:Saycmp(nrow,72,transform(iif(aVariable[z,12] # "C",aVariable[z,10],-aVariable[z,10]),"@ze) 9,999,999.99")) //importe

cuando imprimo el total:

oPrn:Saycmp(nrow,72,transform(ttotal ,"@e) 9,999,999.99"))

lo hace en otro lado y no en el indicado, en el listado la letra sale muy comprimida.

Estoy utilizando fwh2.6 y xharbour 0.99.61

Si uso la clase txtpreview anterior a la modificación me muestra todo correctamente pero no imprime.

En fivewin para clipper lo hace correctamente.

Me es necesaria esta clase por que la utilizamos para imprimir los listados de iva que son muy extensos.

Gracias por su atención

Nueva TdosPrn con Preview (tRichedit)

Posted: Mon Jun 11, 2007 2:23 pm
by surGom
El ejemplo funciona perfectamente, no sé en la impresión pero en lo demas expuesto si.

Gracias nuevamente

Posted: Tue Sep 11, 2007 6:45 pm
by AOKISANTOS
Ralph, utilizando a classe txtpreview me ocorre o seguinte erro :


SetMTxtPreview( .f., 5, 2, .f., .t. )

cFile := "TEST.PRN"
cPorta := "LPT1"

oPrn:= TDosPrn():New( cFile )

oPrn:StartPage()
nlin:=1
for nCont := 1 to 10
oPrn:Say( ++nLin, 00, "teste de impressao" )
oPrn:Say( ++nLin, 00, "Resumo de Mesas " )
next
oPrn:EndPage()
oPrn:End()
TxtPreview( cFile, "titulo", .t. , , ,,, , .t. ) <----- OK

TxtPreview( cFile, "titulo", .t. , , ,oPrn,, , .t. ) <----- ERROR



Error:

Application
===========
Path and name: C:\BASE\sgs.exe (32 bits)
Size: 3,805,696 bytes
Time from start: 0 hours 0 mins 4 secs
Error occurred at: 11/09/2007, 15:38:06
Error description: Error BASE/1005 Message not found: TDOSPRN:_CNEGON

Stack Calls
===========
Called from: => TDOSPRN:ERROR(175)
Called from: tobject.prg => (b)HBOBJECT:HBOBJECT(105)
Called from: => TDOSPRN:MSGNOTFOUND(0)
Called from: TDOSPRN.PRG => TDOSPRN:_CNEGON(167)
Called from: => VAMOS(449)
Called from: sgs.PRG => (b)PREPARAMENU(412)
Called from: MENU.PRG => TMENU:COMMAND(0)
Called from: window.prg => TWINDOW:COMMAND(934)
Called from: MDIFRAME.PRG => TMDIFRAME:COMMAND(0)
Called from: window.prg => TMDIFRAME:HANDLEEVENT(0)
Called from: window.prg => _FWH(3165)
Called from: => WINRUN(0)
Called from: window.prg => TMDIFRAME:ACTIVATE(883)
Called from: sgs.PRG => MAIN(278)
_________________
FWH25+XHARBOUR 99.50

Posted: Thu Sep 13, 2007 10:55 pm
by ralph
parece que no estas usando la clase Tdosprn que viene en el ejemplo, verifica.

Ralph

Posted: Fri Nov 02, 2007 5:02 pm
by ruben Dario
ralph wrote:parece que no estas usando la clase Tdosprn que viene en el ejemplo, verifica.

Ralph
Cuando genero la impreion me genera el siguiente error.

CLASS:"NUMERIC" has no Exported method;
SAYBITMAP
Error BAse 1004/Class: Numeric has no Exported method SAYBITMAP

De todas maneras el reporte lo genera




Como se podria corregir este error o me falta algun Instructivo

Posted: Fri Nov 02, 2007 7:04 pm
by ralph
ese metodo SayBitmap() es de la clase tPrinter, verifica que estes linkeando con una version actualizada.

Saludos

Ralph

Posted: Tue Nov 06, 2007 2:53 pm
by ruben Dario
ralph wrote:ese metodo SayBitmap() es de la clase tPrinter, verifica que estes linkeando con una version actualizada.

Saludos

Ralph
Agrege a mi proyecto el archivo report.prg y printer.prg y me sigue generando el error,
Lo curioso es que vuelvo a compilar tu ejemplo y no pasa esto, es solo cuando lo agreso a mi proyecto
La clase a que tu te refieres estan el el archivo clases el archivo se llama printer.prg este lo agrege al proyecto.

Posted: Tue Nov 06, 2007 4:36 pm
by ralph
en alguna parte de tu codigo usas la funcion saybitmap(), o quizas estas imprimiendo alguna imagen. Verifica o envianos un ejemplo de tu programa para analizarlo.

Saludos

Ralph

Posted: Tue Nov 06, 2007 10:50 pm
by ruben Dario
ralph wrote:en alguna parte de tu codigo usas la funcion saybitmap(), o quizas estas imprimiendo alguna imagen. Verifica o envianos un ejemplo de tu programa para analizarlo.

Saludos

Ralph
Gracias por tu ayuda, ya quedo solucionado el problema, si tenia definida esta funcion.

Gracias

Posted: Wed Nov 07, 2007 2:37 pm
by ruben Dario
ruben Dario wrote:
ralph wrote:en alguna parte de tu codigo usas la funcion saybitmap(), o quizas estas imprimiendo alguna imagen. Verifica o envianos un ejemplo de tu programa para analizarlo.

Saludos

Ralph
Gracias por tu ayuda, ya quedo solucionado el problema, si tenia definida esta funcion.

Gracias
En conclusion, esta funcion es equivalente a clipper cuando imprimo de esta manera.
@ fila,col say variable pict "999"

etc.