Nueva TdosPrn con Preview (tRichedit)
Nueva TdosPrn con Preview (tRichedit)
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
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
Nueva TdosPrn con Preview (tRichedit)
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
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)
El ejemplo funciona perfectamente, no sé en la impresión pero en lo demas expuesto si.
Gracias nuevamente
Gracias nuevamente
-
- Posts: 210
- Joined: Sun Jul 23, 2006 1:15 am
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
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
FWH25+XHARBOUR 99.50
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Cuando genero la impreion me genera el siguiente error.ralph wrote:parece que no estas usando la clase Tdosprn que viene en el ejemplo, verifica.
Ralph
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
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Agrege a mi proyecto el archivo report.prg y printer.prg y me sigue generando el error,ralph wrote:ese metodo SayBitmap() es de la clase tPrinter, verifica que estes linkeando con una version actualizada.
Saludos
Ralph
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.
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
En conclusion, esta funcion es equivalente a clipper cuando imprimo de esta manera.ruben Dario wrote:Gracias por tu ayuda, ya quedo solucionado el problema, si tenia definida esta funcion.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
@ fila,col say variable pict "999"
etc.