La Web del Programador: Comunidad de Programadores
 
    Pregunta:  72 - CONFIGURAR LA IMPRESORA EN FOX
Autor:  Joser
Amigos, necesito ayuda, yo programo en Fox for DOS y Fox for Windows, pero este ultimo (Fox for Windows), me he encontrado con un problemilla a la hora de mandar un reporte. Y es que los reportes deben ser enviado en formato de texto (ascii), no gráfico debido al volumen de los reportes.
Mi problema es que aun no he encontrado la forma para configurar la printer (tamaño de papel específicamente), desde el programa, si se puede cambiar si entro a las propiedades de la printer pero necesito hacerlo desde el programa porque los operadores que tengo no son siempre el mismo y no podría estarles explicando cada vez que me cambian operador como configurar el papel.
Si alguien me podría ayudar, se lo agradecería mucho.

  Respuesta:  santiago scheppmann
set printer on PROMPT
**esto hara que aparesca un spooler de impresoras tal cual lo tienes en windows, te permitira escoger la impresora deseada, sin embargo las preferencias de impresion permaneceran iguales a la impresora predeterminada, para evitar esto y cargar las preferencias deseadas pones la siguiente sentencia dentro de un archivo.bat y lo ejecutas.

cscript prnmngr.vbs -t -p "canon ip2700 series"

el prnmngr.vbs esta dentro de windowssystem32, asi que tu archivo bat, tiene que ir primero a ese directorio para ejecutarlo, "canon ip2700 series" es la impresora con las preferencias de impresion deseadas, de tal forma que al ejecutar: set printer on PROMPT, sera esta ultima la que aparecera como predeterminada y al cambiar la impresora no estariamos cambiando las preferencias de impresion deseadas.

Suerte.

  Respuesta:  FIDEL CASTRO ARIAS
HOLA, SOY DE SALINAS-ECUADOR

TE CUENTO, QUE PARA RESOLVER ESE PROBLEMA EN D.O.S. INTRODUCI LAS SIGUIENTES LINES EN EL MODULO QUE GENERA EL REPORTE, DESPUES DEL SET DEVICE TO PRINT

@00,00 SAY CHR(27)+"@"
@00,00 SAY CHR(27)+"M"+"¤" &&IMPRIME 12 CONDENSADO
@00,00 SAY CHR(27)+"C"+CHR(33) &&33 ES EL NUMERO DE LINEAS QUE QUIERO QUE TENGA MI PAGINA Y PROVOCA UN SALTO DE PAGINA...
GRACIAS...ESPERO HABERTE AYUDADO EN ALGO...SALUDOS

  Respuesta:  javier manuel celis ballon
HOLA, SOY DE LIMA-PERU
MIRA, CUANDO COMIENZAS A IMPRIMIR DESDE CODIGO, NO TIENES QUE CREAR UNA IMPRESORA GENERICA, NI DEFINIR UN TAMANO DE PAPEL, NI NADA POR EL ESTILO, SOLO DEBES ASEGURARTE QUE EL REPORTE QUEPA EN LA IMPRESORA YA SEA ESTA DE CARRO CHICO O ANCHO.

PARA INICIAR TU PROGRAMA SOLO DEBES INCLUIR LAS SIGUIENTES SENTENCIAS>
SET DEFA TO PRINTER
SET PRINTER TO NOMARCHIVO.TXT
@ 01,01 SAY CHR(15) &&&&& PARA COMPRIMIR TUS CARACTERES
....
....
SET PRINT TO
SET DEFA TO

LUEGO PARA IMPRIMIR TU ARCHIVO TXT O PRN, SOLO INCLUYE EN TU PROGRAMA LA SIGUIENTE LINEA >

!COPY NOMARCHIVO.TXT LPT1

OK..

  Respuesta:  Foxito
He visto que algunos programadores en Fox utilizan un tipo de letra que no tiene mucha resolución para acelerar asi la impresión. Si no me equivoco es el tipo de letra system.

  Respuesta:  Preci
Hola amigos, soy mexicano.
Para enviar reportes de gran volumen en VFP utilizando impresoras matriciales, lo que yo he hecho es usar las fuentes de impresora; es decir en las fuentes aparecen los TRUETYPE y algunas fuentes que son acompañadas con una impresora.
Si utilizas esas fuentes, podras imprimir en CPI y no en caracteres graficos mis reportes los configuro para una Epson FX-1170, en ella puedo utilizar 10cpi, 12 cpi, 17cpi y 20cpi.
Es recomendable que la impresoras la configures en tamaño definido por el usuario para que tus reportes los puedas definir en diversos tamaños y no tengas problemas al imprimir.

Es mucho mas rápido si imprimes lineas completas y no campos por separado.

Espero que te sea de ayuda.

  Respuesta:  Walter Cordova
Hola Joser:

Bueno yo resolvi el problema creando una impresora Generico/Texto, a lo cual le agregue un tamaño personalizado en Miilimetros:
Ancho: 13716 y largo: 2700.
Luego creo los reportes utilizando el driver en mencion como predetreminado.
Para imprimir :
??? chr(27)+chr(15)
report from mireport to print nocon

si deseo mas comprimido

??? chr(27)+chr(77)+chr(15)
report from mireport to print nocon

Espero haberte ayudado en algo
P.D. Manejo impresoras matriciales Epson Fx-1170,LQ.. ,DFX-5000/8000 etc...

  Respuesta:  Ricardo Manrique Lozada
Hola a todos los colegas, bueno en este caso de las impresiones, luego de darle vueltas al help de VFP, saque una conclusion, mi problema era imprimir en una impresora matriciar unos reportes, los cuales podrian ser de 80 o 132 caracteres o tal vez mas.

Mi solucion fue muy parecida a la de Carlos Miranda. pero no haye la forma de imprimir caracteres ascii directamente desde fox pro, para lo cual lo resolvi usando la forma antigua, cree un archivo de texto usando:

set defa to <file.txt>

en donde inclui los codigo de la impresora que viene en el manual de la misma, esto tambien aplicable para el tipo de fuente de impresion.

Luego imprimi cada linea del reporte, en el archivo de texto, con el @say.

Por ultimo cerre el archivo con el

set defa to

Para terminar imprimi el reporte usando
! type <ruta>\file.txt
o
run type <ruta>\file.txt

En el modulo inclui un cotador de lineas de "impresión" el cual me contaba las lineas que "imprimia" en el archivo de texto, para poder hacer el EJECT, hay que tener en cuenta que el eject tambien tiene un codigo de impresora. Este contador puede ser predeterminado por según sea el tamaño de la hoja, con un menu previo, creado por el programador, donde se puede establecer los tamaños de la hoja.

  Respuesta:  Carlos Miguel
Otra solución para tu pronblema es:
En la configuracion de impresora de todas las computadoras debes colocar como predeterminado el tamaño de papel DEFINIDO POR USUARIO.
Luego en el diseñador de reportes a cada uno de los informes le das el tamaño que quieres en configurar pagina y teniendo tu impresora en TAMAÑO DEFINIDO POR USUARIO. asi cada inform saldra en el tamaño que le definas.
Maneja todos los informes en una misma unidad, sea pulgadas o milimetros.
Espero te sirva de algo este mensaje.

  Respuesta:  Foxito
Saludos:
Creo que estas empleando el comando Report Form en FoxProW. Si es asi, debes agregar el comando TO PRINTER PROMPT para que Windows te muestre la caja de impresoras y desde alli configurar o TI PRINTER FILE y realizar una impresion por archivo. Sin embargo, la impresion en Windows es mas lenta que en DOS. Puedes realizar tus reportes en el Generador de reportes en FoxProD y luego abrirlos en FoxProW, asi no tendran la presentacion grafica.

  Respuesta:  Monica Molina
Por si es util les informo que el problema de Daniel que observé aquí: Usar "prompt" para controlar la salida impresa (cantidad de hojas, tamaño de papel y hasta seleccionar una impresora) se solucionó instalando el Service Pack 3 para Visual FoxPro.
Este lo baje de Internet.

  Respuesta:  Ivan Carrasco
Hola Amigos Soy Dominicano
Tu duda sobre como configurarle la impresora a los usuarios lo puedes hacer con una sola linea de programación en un Programa .prg en fox para windows, la linea que vas a colocar te ejecuta las propiedades de cualquier printer y puedes cambiarlas y Fox las asume... La linea es:
=SYS(1037)

  Respuesta:  Foxito El Zorrito del Cyberespacio
Hola:
Puedes probar creando tu reporte en FoxPro para dos, grabas el archivo y lo abres en FoxPro para Windows, te aparecerá una ventana muy parecida a la que trabajabas en Dos, y puedes configurarla con tal. Bye!

  Respuesta:  Javier Zaldarriaga
Hola ! Soy de Argentina. En Windows existe otra posibilidad:
Cuando modifiques o crees el reporte asegúrate de limpiar el entorno del mismo. Una vez hecho esto, en configuración de página (del menú reporte), debes elegir la impresora que va a usar ese reporte específicamente y el tamaño de página que deseas. Windows te permite personalizar el tamaño hasta en 0,1 Milímetros !
Luego, diseñas tu reporte y no olvides salvar el entorno. Lo de limpiar y salvar el entorno a veces se me olvida cuando modifico el reporte, pero es fundamental para que siempre se respete el tamaño de página.
Espero haberte sido de ayuda. Quedo a tu entera disposición y te envío un abrazo desde Buenos Aires.

  Respuesta:  Ernesto William
Yo me quite el problema agregando una impresora con el nombre del reporte, ahí le defini el papel, el tipo de letra, etc
Y asi cada vez que desee imprimir el reporte solo escojo la impresora

  Respuesta:  Anthony Paulino
hola, me susedio algo parecido y solo lo pude resolvel con un programa de manejo de impresora llamado foxprint.exe que se utiliza cuando un formulario es muy grande el lo separa, manejo de marjen u otras utilidades de lugar gracias

  Respuesta:  Daniel
AMIGO Y COLEGA, SOY DE ARGENTINA
YO PROGRAMO EN VISUAL FOXPRO 5.0 Y TUVE NO PUEDO DARLE OPCIONES DE IMPRESION  AL INFORME, COMO LA CANTIDAD DE COPIAS, ETC...
YA PROBE CON LA CLAUSULA PROMPT Y NO PASA NADA. SALEN IMPRESIONES EN MINIATURA O DEMASIADO GRANDES.
VOY A PROBAR ALGUNAS DE LAS SUGERENCIA PROPUESTA Y DESPUES LES CUENTO.

A Y ME SENTI MUY BIEN AL HABER ENCONTRADO UNA MANO Y GENTE QUE QUIERE AYUDAR. GRACIAS


  Respuesta:  Carlos Miranda
HOLA..!
Yo solucioné el problema de impresiones desde windows en una impresora matricial, en modo texto y no gráfico, utilizando los comandos de configuración de la impresora (en este caso, una EPSON LQ 1170). Estos comandos están especificados en el manual de cada impresora. Por lo general son bastante parecidos para cada modelo de impresora.

Desde el FPW se pueden enviar comandos de configuración, como por ejemplo CHR(27) + "P", para configurar un tipo de letra, etc.

Lo de varios usuarios con sus diferentes configuraciones se puede solucionar haciendo una rutina de configuración para cada caso.


  Respuesta:  Williams Flores
Saludos desde Lima - Perú. Esto es directamente efectivo: En Windows instala la impresora Generico/SoloTexto y realiza tu reporte bajo esta impresora.

Saludos


  Respuesta:  Oscar Yepes
Hola compañero, soy de Colombia. Me imagino que los informes que haces los generas con CREATE REPORT, si es así, estos informes se ejecutan con la siguiente instrucción:
REPORT FORM nom_archivo ENVIRONMENT NOCONSOLE TO PRINT
así que le agregas la instrucción PROMPT al final y listo, ósea
REPORT FORM nom_archivo ENVIRONMENT NOCONSOLE TO PRINT PROMPT
el PROMPT te va ha mostrar la caja de dialogo de instalar impresora.