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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 abc520168
12/11/2004 - 04:20 | Informe spam
??????????
Respuesta Responder a este mensaje
#3 abc520168
12/11/2004 - 04:21 | Informe spam
???
Respuesta Responder a este mensaje
#4 Mario López
15/11/2004 - 21:07 | Informe spam
Pablo:

Ya había probado con SET("PRINTER",3), pero este no se modifica si
selecciono la impresora desde el PREVIEW del form, como es mi caso
(solo refleja el valor correcto si lo cambio desde el menú File->Print
o File->Page Setup)

Alguna otra sugerencia?

Gracias por adelantado.
Mario

On Wed, 10 Nov 2004 07:20:04 -0800, pablo crosio
wrote:


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

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida