Duda en foxpro

Hola que tal, soy programador de foxpro 8.0, tengo una duda, espero me puedas ayudar.
El problemas es el siguiente. Tengo un sistema en red, pero untimamente cuando imprimo un reporte o un ticket mediante código directo al puesto lpt, la impresora a la que mando la información comienza a expulsar hojas sin datos.
¿Sera qué se cicla la impresora o el spooler necesito depurarlo? ¿Cómo puedo acceder al spooler para cancelar documentos...?
No tengo idea porque pase esto, lo más raro es que hace un mes el mismo código no generaba esto..
Espero me puedas ayudar, gracias.

2 respuestas

Respuesta
1
Es algo raro lo que te sucede, yo te diría que pruebes liberando la impresora apenas terminas de imprimir el ticket, usa el comando SET PRINTER TO
Si no funciona responde con las pruebas que hiciste y seguimos investigando.
Salu2 y Exitos!
Al final utilizo
set printer to
set device to screen 
restore screen
Ya tengo agregado el código que me mencionas. Todo sigue igual. Lo que noto raro es que en el spooler de la impresora aparece el nombre de ventana, en lugar de un documento. Aparece clientes.scx, y con documentos en espera. Para corregir esto necesito reiniciar la pc, al hacer esto el spooler se vacía.
Te dejo con esta nota, espero me puedas ayudar.
Gracias.
Clientes. Scx hace referencia a un informe pero no es un reporte, los reportes que mandas a la impresora tienen que ser .frx fíjate si no encontrás en tu código algún report form que no corresponda o bien sobre tu proyecto o suelto verifica si existe clientes. Scx en la solapa de informes y si no corresponde elimina la clase para ver si es esa la que genera el problema.
El código es este.
Set Device To Printer
Set Printer To \\costos\hp
Select TEMP
Set Filter To incluir=.T. And CLIENTE=Thisform.CLI1.Value And pedido=0
Set Order To modelo
Report Form entregado To Printer Preview
Report Form entregado To Printer Prompt
SET PRINTER TO
SET PRINTER off
SET DEVICE TO screen
El reporte se llama entregado. La ventana se llama clientes. Ejecuto el código una vez y manda el reporte, pero la impresora después de esto comienza a expulsar hojas blancas. Al revisar el spooler veo el nombre del documento y muestra CLIENTES. Este es el formulario que utilizo. Mi duda es porque se cicla la impresora. ¿Hay alguna manera de limpiar el spooler de la impresora para evitar el problema? ¿O tengo algo mal en el código?
Gracias por tu ayuda. Espero una respuesta
Por código no hay forma de borrar la cola de impresión, eso lo administra el sistema operativo.. yo te sugiero lo siguiente, cambia el código para que te queda así:
Set Device To Printer
Set Printer To \\costos\hp
Select TEMP
Set Filter To incluir=.T. And CLIENTE=Thisform.CLI1.Value And pedido=0
Set Order To modelo
Report Form entregado To Printer Promt Preview
Report Form entregado To Printer Noconsole
SET PRINTER TO
SET PRINTER off
SET DEVICE TO screen
De esta manera no trata de imprimir la ventana que se llama clientes.
Respuesta
1
Primero comprueba de que las tablas de las que obtiene información el informe no contenga campos vacíos y verifica las sentencias SQL de las vistas o consultas del informe.
Me avisas como te fue.
El código al parecer esta bien, no se porque se cuelga la impresora con la salida de las hojas. Lo que note es que en el spooler de la impresora aparece el nombre del formulario llamado clientes, como si mandara imprimir la pantalla, pero no se porque ocurre esto.
Set Device To Printer
Set Printer To \\costos\hp
Select TEMP
Set Filter To incluir=.T. And CLIENTE=Thisform.CLI1.Value And pedido=0
Set Order To modelo
Report Form entregado To Printer Preview
Report Form entregado To Printer Prompt
SET PRINTER TO
SET PRINTER off
SET DEVICE TO screen
ESte es el código que utilizo, me manda el reporte y luego se genera el ciclado de la impresora. Tendré algo mal en estas instrucciones o como puedo liberar el spooler para que no ocurra esto.
Tengo otra duda, tengo una ventana a la que entran 6 usuarios al mismo tiempo, y resulta que hay momentos en los que intentan guardar al mismo tiempo y la información se mezcla con la de cada usuario, como puedo prevenir esta situación, ¿podre utilizar algún retardo para que de tiempo entre cada usuario para guardar? ¿Qué me propones hacer con este problema?
Sin más por el momento me despido. Gracias por tu ayuda
Set Device debe estar establecido a To Printer  y Set Printer debe estar establecido en On, además, estás utilizando dos veces Report Form, esto también está mal, trata con el siguiente código:
Local NombreImpresora
NombreImpresora = \\costos\hp
Set Printer On
Set Device To Printer
Set Printer To (NombreImpresora)
Select TEMP
Set Filter To incluir=.T. And CLIENTE=Thisform.CLI1.Value And pedido=0
Set Order To modelo
Report form Entregado.frx To Printer Prompt Preview
Set Printer Off
Set Device To Screen
Me dices como te fue.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas