Page 1 of 1

Imprimiendo en Windows con FWH a la Clipper/MS-DOS

Posted: Fri May 02, 2008 3:27 am
by mmercado
Hola Amigos:

Una de las cosas que yo más extrañaba de Clipper era la sencillez de su sintaxis de impresión por eso, hace algunos años decidí desarrollar la clase TClipPrt que ahora comparto con ustedes.

Con ella podrán imprimir con espaciado fijo usando fuentes de espaciado fijo o también con fuentes de espaciado proporcional. Hallarán también algunos extras.

Aquí la tienen:

http://www.box.net/shared/5ac0n9e88g

Pueden crear el programa de prueba usando Buildh.bat para Harbour y Buildx.bat para xHarbour.

Su retroalimentación será bienvenida para mejorarla.

SET DEVICE TO PRINTER
@ 10, 10 SAY "Reciban un abrazo"
SET DEVICE TO SCREEN

Manuel Mercado

Re: Imprimiendo en Windows con FWH a la Clipper/MS-DOS

Posted: Fri May 02, 2008 4:28 am
by lubin
Gracias Manuel, gran aporte, nos facilita la vida para los clasicos clipeross

Aprovechando el momento, en mi caso al ver el PREVIEW del reporte, se ve algo distorsionado, o letras partidas, hay forma de mejorarlo ???

y te paso el dato que la opcion Direct (la ultima) genera un error al inciar el reporte ... si puedes dale una mirada..


Reitero las Gracias..

Lubin

Posted: Fri May 02, 2008 8:25 am
by Antonio Linares
Manuel,

gracias! :-)

Posted: Fri May 02, 2008 11:09 am
by MGA
Gracias Sr. Manuel. :)

Posted: Fri May 02, 2008 2:00 pm
by Patricio Avalos Aguirre
Gracias Manuel Mercado

Una consulta, al imprimir direct sale Error

Code: Select all

Application
===========
   Path and name: C:\Documents and Settings\pavalos\Escritorio\fivewin\tprn\TClipPrt\TClipPrt\Samples\testclpr.exe (32 bits)
   Size: 1,427,456 bytes
   Time from start: 0 hours 0 mins 1 secs 
   Error occurred at: 05/02/08, 09:53:40
   Error description: Error BASE/1605  Invalid self: NEW
   Args:
     [   1] = O   Object
     [   2] = N   1932

Stack Calls
===========
   Called from: CliPrt.prg => TCLIPPRT:NEW(108)
   Called from: CliPrt.prg => CLIPPERPRINT(857)
   Called from: TestClPr.prg => DIRECT(342)
   Called from: TestClPr.prg => (b)MAIN(32)
   Called from: MENU.PRG => TMENU:COMMAND(0)
   Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: WINDOW.PRG => _FWH(0)
   Called from:  => WINRUN(0)
   Called from: WINDOW.PRG => TWINDOW:ACTIVATE(0)
   Called from: TestClPr.prg => MAIN(49)

y al parecer es por que la METHOD New devuelve tres tipos de datos

Code: Select all

       Return ::hPort
       Return( .f. )
       Return( Self )

Posted: Fri May 02, 2008 2:30 pm
by cuatecatl82
Estimado Manuel Mercado:

Hace mas de 4 años que no trabajo con reportes como lo hacia nuestro querido Clipper 5 :cry: , que gusto saber que nuevamente podemos trabajar como cuando empezamos muchos de nosotros :lol: , alguna vez soñe con que fuera posible y ahora, puedo decir con emosión que si. :D :D

Muchas Felicidades por este estupendo trabajo :) , y que orgullo que sea de un paisano mexicano 8), siempre es un honor recibir y probar las aportaciones de la comunidad, ojala y nos sigas brindando más de tus amplios conocimientos..


Saludos..

Posted: Fri May 02, 2008 8:07 pm
by mmercado
Patricio Avalos Aguirre wrote:Una consulta, al imprimir direct sale Error
Hola Patricio:

Cuando hice esta clase todavía eran comunes las impresoras con puerto paralelo (LPT1), ahora no tengo una a la mano para probar esta opción. En cuanto la consiga la pruebo y te digo el resultado.

Saludos.

Manuel Mercado.

Posted: Mon May 05, 2008 5:22 pm
by Vikthor
Patricio Avalos Aguirre wrote:Gracias Manuel Mercado

Una consulta, al imprimir direct sale Error

Code: Select all

Application
===========
   Path and name: C:\Documents and Settings\pavalos\Escritorio\fivewin\tprn\TClipPrt\TClipPrt\Samples\testclpr.exe (32 bits)
   Size: 1,427,456 bytes
   Time from start: 0 hours 0 mins 1 secs 
   Error occurred at: 05/02/08, 09:53:40
   Error description: Error BASE/1605  Invalid self: NEW
   Args:
     [   1] = O   Object
     [   2] = N   1932

Stack Calls
===========
   Called from: CliPrt.prg => TCLIPPRT:NEW(108)
   Called from: CliPrt.prg => CLIPPERPRINT(857)
   Called from: TestClPr.prg => DIRECT(342)
   Called from: TestClPr.prg => (b)MAIN(32)
   Called from: MENU.PRG => TMENU:COMMAND(0)
   Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: WINDOW.PRG => _FWH(0)
   Called from:  => WINRUN(0)
   Called from: WINDOW.PRG => TWINDOW:ACTIVATE(0)
   Called from: TestClPr.prg => MAIN(49)

y al parecer es por que la METHOD New devuelve tres tipos de datos

Code: Select all

       Return ::hPort
       Return( .f. )
       Return( Self )
Patricio :

En lugar de devolver ::hPort cuando se hace la impresión directa por LPT1 , devuelve el objeto self.

El ejemplo funciona muy bien.

Re: Imprimiendo en Windows con FWH a la Clipper/MS-DOS

Posted: Wed Jun 04, 2008 9:55 pm
by nazariosn
Maestro.

Gracias.

Aprovechando tu aporte, he actualizado un pequeño programa que uso en Clipper-DOS, a partir de que se han estado sustituyendo las impresoras de matriz a laser.

En la mayoria de los sistemas se generan los reportes en un archivo para poder visualizarlos y despues a imprimir, regularmente se envian a la impresora predeterminada.

1) Falta identificar algunas secuencias de escape de DOS (tamaño: Legal, Oficio, orientacion) en proceso.
2) Estoy investigando para poder identificar cuando se imprime directamente al puertos LPT1,,,etc y poder usar este programa.

En Resumen.
Para imprimir solo uso "RUN ( 'imparch ' + NomArch )".
imparch.exe -- Programa para enviar el archivo a la impresora predeterminada.
NomArch -- Cualquier archivo de texto.

Nuevamente gracias.
Desde la Ciudad de México

Nazario Salazar
T.S.J.D.F.