Comando SYS(6)

Hola tengo un problema con un programa que estoy creando resulta que necesito mandar un reporte pero como es más que obvio también necesito mandarlo imprimir para poder dar otro tipo de dato, el problema es que cuando mando el reporte este tiene por default el botón de imprimir y no me importa ya que utilice el comando SYS(6) para sacar el estatus de impresión, y poder hacer el resto de la programación que quiero en caso obvio de mandar imprimir, mi problema es que cuando lo estoy depurando o calando ejecutándolo desde foxpro el sys(6) si me da la señal que necesito en pocas palabra funciona de maravilla, PERO cuando lo vuelvo ejecutable y lo trabajo como ejecutable por si solo el SYS(6) no parece captar cuando mando la impresión por lo que no puedo accesar a otros datos, no se si sepas a que se deba que en modo de depuración si funciona y en modo ejecutable no, te lo agradecería infinitamente ya que resolver esto me ayudaría no solo en esa parte si no con otras que tengo de la misma índole, espero tu respuesta y de antemano te agradezco tu tiempo.

1 Respuesta

Respuesta
Ese comando solo te envía el nombre de la impresora que estas usando mejor usa
x=GETPRINTER()
si selecciona una impresora x=nombre de la impresora, si no selecciona nada x=espacio
Intente lo que me dijiste pero me puede ayudar unicamente en el caso de mandar imprimir, mira el siguiente código es el que estoy utilizando
report form gafete.frx preview
ps=GETPRINTER()
if !empty(alltrim(ps)) then
    (Código de operaciones)
Endif
Al utilizar el GETPRINTER() como tu me dices tengo el problema que si le doy en el reporte salir de todos modos me pregunta la impresora y si selecciono alguna me realiza el código correspondiente al IF, pero yo lo que quiero hacer es que si le doy salir en el reporte el IF no se realice y si mando imprimir que si se realice el IF, mi bronca es que no se como saber si dentro del reporte se presiono imprimir o se presiono salir, y el problema es que necesito que se muestre el reporte de otro modo lo hubiera mandado directo a la impresora y me ahorro este problema, espero y conozcas alguna manera de saber cual botón se presiono dentro del reporte si el de salir o el de imprimir, hasta luego y nuevamente agradezco tu tiempo y ayuda.
Me puedes enviar el resto del código, para ver donde es que podemos insertar el getprinter Saludos
este es el codigo completo, yo puse una flecha donde yo estoy manejando el getprinter(), pero el detalle sigue siendo que este pide la impresora y si selecciono una aunque le de salir en el reporte realiza el codigo del if que se encuentra despues del report
set delete on
create cursor gaf;
(codigo c(10),nombre c(50),fecing d,rfc c(20),nss c(20),foto c(50))
select * from gafetes;
into cursor conga
ct=reccount()
if ct>0 then
    select conga
    scan all
        vf=curdir()+"Fotos\"+alltrim(conga.codigo)+'.jpg'
        insert into gaf values(alltrim(conga.codigo), alltrim(conga.nombre), conga.fecing, alltrim(conga.rfc), alltrim(conga.nss), vf)
    endscan
    select gaf
    report form gafete.frx preview &&TO PRINTER
-->    ps=GETPRINTER()
    messagebox(ps)
    if !empty(alltrim(ps)) then
        select gaf
        scan all
            cod=alltrim(gaf.codigo)
            update empleados set empleados.gafete="E" where alltrim(empleados.codigo)==cod
            thisform.boreg
        endscan
        select empleados
        =tableupdate(.t.)
    endif
else
    messagebox("No hay datos para imprimir")
Endif
Lo que quiero hacer es que si dentro del 'report from' presiono el botón de salir entonces que no realice el 'IF' y si presiono el de imprimir que si realice el 'IF', mi bronca es que no encuentro una forma de saber cual botón se presiono dentro del informe, te agradezco tu atención hasta luego
En lugar del GetPrinter(), coloca un messagebox() en donde el operador elije si se actualiza el archivo o no, es una salida, ya que no hay forma directa de controlar los botones del report form, voy a buscar más información
Muchas gracias voy a ver que puedo hacer, ya que esa parte del código debe se automático el usuario no tiene que interactuar para nada con el, de todos modos te agradezco tu tiempo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas