Clipper/FiveWin - Solución a demora en impresión con XP.

 
Vista:

Solución a demora en impresión con XP.

Publicado por Carlos (7 intervenciones) el 10/04/2006 14:31:30
Saludos señores, en días pasados tenía problemas para imprimir desde Clipper sobre Windows XP, la impresión se tardaba en salir o en algunos casos había que salirse del Sistema para que empezara la impresión, observé que varias personas de acá tenían el problema y tomé algunas respuestas que daban y comparé con lo que tenía yo por acá.
Pues bien, ese problema yo lo había resuelto hace mucho tiempo donde trabajaba antes, el Sistema de ese momento imprimía directamente a la impresora a diferencia de mi actual Sistema que primero lo guardo en un archivo de texto y luego lo envio a la impresora si el usuario lo deseara así; la cuestión es la siguiente y funciona para ambos, la diferencia estaba en que cuando imprimes a un archivo de texto la instrucción es "set printer to (nombre de archivo)" y luego de eso haces un "type" o un "__typefile" para enviarlo a la impresora; pues bien, en definitiva la solución están en 2 simples lineas que se deben poner antes y después del bloque de impresión (bien sea que imprimas directo a la impresora o que envies primero a un archivo de texto antes de enviarlo a la impresora), en algunos casos el orden es importante así que quizás tengan que jugar con las instrucciones, pero en esencia se debe poner la linea "set printer to lpt1" antes del bloque de impresión y al terminar el bloque de impresión y enviar la salida a la pantalla (o antes, ustedes prueben) se debe colocar la linea "set printer to"; esto corrige la demora y/o lentitud en la impresión.

Carlos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Solución a demora en impresión con XP.

Publicado por richard (71 intervenciones) el 10/04/2006 17:50:29
hola carlos .podrias ser mas especifico con el siguiente ejemplo.
ya que hice lo que dijiste y nada.....

saludos.

SET DEVICE TO PRINTER
SET PRINTER TO Ejemplo.Prn
@ 10,10 Say "Prueba de Impresion "

SET PRINTER TO /// esto esta bien colocado aqui..?????
SET PRINT OFF
SET DEVICE TO SCREEN
RUN TYPE Ejemplo.Prn > LPT1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por Marcelo (218 intervenciones) el 10/04/2006 19:24:09
Set Console off
Set Printer to "Ejemplo.Prn"
Set Device to Printer
Set Printer on

//la salida estandar esta desviada a la impresora, podes usar @..Say
//para escribir en el archivo de texto.

Set device to Screen
Set Printer Off
Set printer to
type "Ejemplo.Prn" to print
Set Console on

No hace falta que uses el comando Type de DOS, podes usar el de clipper. fijate la documentacion.

Marcelo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por Carlos (7 intervenciones) el 10/04/2006 19:54:09
De ejemplo te pongo estas líneas, previamente ya has generado tu archivo PRN y supongo que luego lo muestras en pantalla con un Memoedit o algo parecido y con alguna tecla que indique el usuario entonces lo envías a la impresora, esa función o procedimiento que ejecuta la salida a la impresora debería estar mas o menos así:

set cons off; set devi to print; set print on
SET PRINTER TO LPT1 && Esto lo puedes pegar en la línea de arriba, lo resalté
&& para que lo vieras bien... es todo.
__TypeFile(cTrabajo+"File.Prn",.T.) && Esto como dice el otro amigo también
&& puede ser usado con el comando TYPE
&& realmente es igual, sólo es un ejemplo.
set print off; set devi to scre; SET PRINTER TO; set cons on

Como verás, en este caso la parte de impresión es la del "typefile" (que puede ser reemplazada como ya dijimos con el "type"); la cuestión es que antes de esa línea, debes colocar el "set printer to lpt1" y luego de imprimir debes poner el "set printer to"; esto forzará a iniciar una comunicación con lpt1 y terminarla; con Windows 98 no había problemas y no hacía falta hacer esto, pero con Xp debe haber algún tipo de mejora en lo que a comunicación con los puertos de impresión se refiere y por eso nos vimos afectados los todavía tenemos algunas aplicaciones bajo DOS; de modo que hay que indicarle al programa que esa salida además de que va a la impresora (con el "set device to print"), también hay que decirle que va al puerto que nosotros le indiquemos (con el "set printer to lpt1"... o cualquier otro lpt(n) ).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por richard (71 intervenciones) el 10/04/2006 23:33:37
hola amigos.no se que estoy haciendo mal pero no logro sacar una impresion con xp.se queda pegado.lo he provado en varios pc. en modo consola.y nada,.
aca envio el codigo.

set cons off
set devi to print
set print on
SET PRINTER TO LPT1
@7,3 say 'ejemplo de impresora ' /// comienza la impresion
type "Ejemplo.Prn" to print
set print off
set devi to scre /// ---- en esta linea se queda pegado...
SET PRINTER TO
set cons on
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por PERDIDO PERDIDO (19 intervenciones) el 10/04/2006 23:47:55
despues de set print off

escribe

run reset

asi se liberas la impresion
y funciona !!!!!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no funciona...

Publicado por richard (71 intervenciones) el 11/04/2006 00:17:50
amigos aca nvio el codigo.
pero no funciona..es sencillisimo.pero se queda pegado
saludos.

set cons off
set devi to print
set print on
SET PRINTER TO LPT1
@7,3 say 'ejemplo de impresora '
type "Ejemplo.Prn" to print
set print off
run reset -------------------> aca va el reseteo.
set devi to scre
SET PRINTER TO
set cons on
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona...

Publicado por Carlos (7 intervenciones) el 11/04/2006 14:41:39
Saludos amigo, prueba a intercambiar las lineas, fíjate en el orden en el cual puse yo las lineas de mi código, es la primera de estas notas; trata de poner el "set printer to" antes del "set device to screen" o algo así; prueba a no usar el "set print on" y el "set print off"; quizás algo de eso te ayude; yo no uso ese "run reset", si quieres dejarlo hazlo, pero yo no lo uso y me funciona perfectamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona...

Publicado por Marcelo (218 intervenciones) el 11/04/2006 18:45:50
Set Console off
Set Printer to "Ejemplo.Prn"
Set Device to Printer
Set Printer on

@7,3 say 'ejemplo de impresora '

Set device to Screen
Set Printer Off
Set printer to
type "Ejemplo.Prn" to print
Set Console on

No es SET PRINTER TO LPT1, tenes que desviar la impresion a un archivo. Lo que tenes que hacer es escribir en el archivo, y despues ejecutar TYPE <tuarchivo> TO PRINT. Y esto se hace despues del SET PRINTER TO final.

Marcelo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona...

Publicado por Carlos (7 intervenciones) el 11/04/2006 20:01:04
El problema no es desviarlo a un archivo de texto o no, el problema es cuando envias la salida a la impresora, se demora o sencillamente no se imprime hasta que te salgas del Sistema; bien sea que envies la impresión directa a la impresora o que utilices un archivo de texto antes de enviarlo a la impresora con "type" o con "__typefile" al final tendrás que enviar los datos a la impresora y ahí es donde tendrás la demora; por eso les vuelvo a repetir: con Windows Xp al momento de enviar la salida a la impresora hay que indicarle el "set printer to lpt1" y al terminar el código de impresión y devolver la salida a la pantalla hay que indicar el "set printer to"; es lo único que funciona realmente bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no funciona...

Publicado por Marcelo (218 intervenciones) el 11/04/2006 23:04:24
Bueno Carlos, ahora discrepo un poquitin con vos ;)...
El problema es que a veces no se cierra el disposivo o el fichero en el que estamos escribiendo. Por eso es necesario el uso de Set Printer To sin argumentos al final. En principio, el argumento puede ser un dispositivo o fichero, de ahi que tenes que especificar el destino que no necesariamente tiene que ser LPT1.
Yo estoy utilizando la codificacion que puse como ejemplo en sistemas NT (win2000 y Xp), ademas de bajar el time out del registro, para que la impresion no se demore.

Marcelo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

bajar el time out ???ese podria ser el problema???

Publicado por richard jaime (71 intervenciones) el 13/04/2006 16:57:04
hola amigos.prove todo lo que me dijeron.y nada.lo prove en xp y en win2000
ahora voy a tratar de modificar el time out .
como bajo el time out en que registro del sistema.???
que valor le coloco.ese podria ser el problema.????
le agradeceria mucho una manito.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:solucion efectiva

Publicado por norman (3 intervenciones) el 03/06/2006 15:07:42
es simple
al final del reporte coloca

set print to lpt2
set print to lpt1
set devi to screen

y wala listo...

chao recuerda lo del time out y mejora el funcionamiento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por Carlos Muñoz (1 intervención) el 11/04/2006 20:10:46
En relacion a la consulta yo tambien tenia ese problema y lo solucione de la siguiente forma, esta solucion la encontre en este mismo foro.

SET PRINTER TO LPT1.
SET PRINT ON
SET DEVICE TO PRINT

ACA VA LO QUE SE QUIERE IMPRIMIR

SET PRINTER TO
SET PRINT OFF
SET DEVICE TO SCREEN

Lo que es importante el PUNTO en LPT1.

Espero que le sirva a mi me funciona perfecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por Carlos (7 intervenciones) el 11/04/2006 20:16:49
Saludos... estoy seguro que sin el punto también funciona porque yo no uso el punto; la cuestión es que es importante empezar el bloque de impresión con "set printer to lpt1" y terminarlo con "set printer to". Esa es la esencia de la solución a este problema entre Clipper y Windows Xp.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por Luis Ponce (119 intervenciones) el 16/04/2006 00:31:22
A mi me funciono asi,

1. Editar registro de windows REGEDIT
2. Ubicar la variable LPT_timeout

x defecto esta en 15

3. cambiarlo a 1

Ejecutando el RegEdit :

HKEY_LOCAL_MACHINE
SYSTEM
ControlSet001
Control
WOW

ahi esta esa variable... cambiarla

Espero les sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Solución a demora en impresión con XP.

Publicado por Elias Esquivel (18 intervenciones) el 19/04/2006 14:54:05
Hola Carlos

He leido todas las posibles soluciones para imprimir un archivo de
texto hacia la impresora. Yo tambien he utilizado Windows 98/XP/ME
y para enviarlo directamente a la impresora utilizo LPT1 y al cerrarlo
imprime rapidamente.

Cuando se utiliza el memoedit tiene una limitacion de 64kb de reportes,
yo tengo realizado un reporteador que supera esa limitacion e incluso
se puede listar reportes grandes de mas de 2mb es posible que esto te
pueda ayudar a tu problema.

Escribeme a mi correo para pasarte el programa.

Saludos

Elias Esquivel
Lima - Peru
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a demora en impresión con XP.

Publicado por Juan Villacorta (1 intervención) el 13/05/2006 00:34:34
Hola

Yo lo solucione colocando

Set Console off
Set Printer to LPT1
Set Device to Printer
Set Printer on

en esta sección coloca la forma que deseas enviar a la impresora
por ejemplo

@01,01 say "Ejemplo de impresión"
@02,01 say "-------------------------------"

Set device to Screen
Set Printer Off
Set printer to
Set Console on

en el caso del windows 98 si se acuerdan hay una opción en las propiedades de impresion que dice en:

Inicio
Configuracion
Impresoras
Propiedades
Detalles
Configurar puerto LPT:

[ ] Trabajo de impresión en MS-DOS en cola
[X ] Comprobar el estado del puerto antes de imprimir

Esta opcion que esta desmarcada era la que ayudaba a la impresion en DOS en win98 ahora que estamos utilizando el WinXP ya no hay esa opción, para solucionar esto es que se debe de colocar en el codigo la sentencia SET PRINTER TO LPT1 para asi poder controlar las impresiones a la impresora.
y para bajar el time out esa opcion esta en XP en los valores de configurar puerto nos da por defecto 90 ese valor lo podemos bajar a 1 o al valor que uno necesite.

Espero que sea de utilidad.

Saludos,

Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar