Múltiples copias en reporte a impresora no predeterminada

10/11/2004 - 03:11 por Mario López | Informe spam
Hola a tod@s

Tengo un inconveniente en un caso especial de impresión de reportes:
utilizo para imprimir los mismos una UDF

FUNCTION PrintReport (sFRX, nCopias)

PRIVATE lPrint && Flag para verificar si imprimió realmente

lPrint = .F.
REPORT FORM (sFRX) TO PRINTER PROMPT PREVIEW

** Falta SET PRINTER TO NAME **

DO WHILE lPrint
nCopias = nCopias - 1
IF nCopias < 1
EXIT
ENDIF

... && código para reposicionar en el origen de datos

REPORT FORM (sFRX) TO PRINTER NOCONSOLE
ENDDO

...

RETURN

Desde la función muestro el reporte en preview; detecto entonces si el
reporte fué impreso desde el preview (haciendo click en el ícono de la
impresora), y en ese caso imprimo las copias faltantes.

Hasta acá todo bien, el problema es que cuando el usuario imprime en
una impresora que no es la predeterminada, las copias sucesivas salen
en la predeterminada. Esto podría solucionarse con SET PRINTER TO NAME
previamente a la impresión de los reportes sucesivos si tuviera alguna
forma de saber a qué impresora se envió el reporte original.

Se les ocurre alguna forma de saber a qué impresora se envió un
reporte (vía API, WMI, etc.), o alguna forma mejor de hacer lo que yo
estoy intentando?

Gracias por adelantado
Saludos desde Argentina
Mario
 

Leer las respuestas

#1 pablo crosio
10/11/2004 - 16:20 | Informe spam
hola!

fijate si te funciona con lo que devuelve SET('printer', 3)

salu2!!

pablo

"Mario López" escribió:

Hola a

Tengo un inconveniente en un caso especial de impresión de reportes:
utilizo para imprimir los mismos una UDF

FUNCTION PrintReport (sFRX, nCopias)

PRIVATE lPrint && Flag para verificar si imprimió realmente

lPrint = .F.
REPORT FORM (sFRX) TO PRINTER PROMPT PREVIEW

** Falta SET PRINTER TO NAME **

DO WHILE lPrint
nCopias = nCopias - 1
IF nCopias < 1
EXIT
ENDIF

... && código para reposicionar en el origen de datos

REPORT FORM (sFRX) TO PRINTER NOCONSOLE
ENDDO



RETURN

Desde la función muestro el reporte en preview; detecto entonces si el
reporte fué impreso desde el preview (haciendo click en el ícono de la
impresora), y en ese caso imprimo las copias faltantes.

Hasta acá todo bien, el problema es que cuando el usuario imprime en
una impresora que no es la predeterminada, las copias sucesivas salen
en la predeterminada. Esto podría solucionarse con SET PRINTER TO NAME
previamente a la impresión de los reportes sucesivos si tuviera alguna
forma de saber a qué impresora se envió el reporte original.

Se les ocurre alguna forma de saber a qué impresora se envió un
reporte (vía API, WMI, etc.), o alguna forma mejor de hacer lo que yo
estoy intentando?

Gracias por adelantado
Saludos desde Argentina
Mario

Preguntas similares