Problemas con SET PRINTER

24/11/2006 - 15:38 por alejandro | Informe spam
Lo que necesito hacer es que mi sistema de gestion imprima ciertos informes
en una impresora y otros informes en otra impresora.
Para esto, lo que hice fue un formulario donde el usuario configura donde
quiere imprimir, por ejemplo, las facturas (IMPRESORA1) y donde quiere
imprimir los listados (IMPRESORA2).
Al ejecutar, por ejemplo, el formulario de facturacion, verifico cual es la
impresora correspondiente mediante el metodo
"setear_impresora(<id_impresora>)":

**********************************************
LPARAMETERS id_imp

IF id_imp=1 then
SELECT impresora1,id_configuracion;
from conf_impresoras;
into cursor cursor_busqueda
ELSE
SELECT impresora2,id_configuracion;
from conf_impresoras;
into cursor cursor_busqueda
endif

thisform.list1.rowsourcetype=2
thisform.list1.rowsource = 'cursor_busqueda'
thisform.list1.ListIndex=1

thisform.list1.BoundColumn=1
impresora='"'+ALLTRIM(thisform.list1.value)+'"'

SET DEVICE TO PRINTER
SET PRINTER ON
SET PRINTER TO NAME &impresora
**********************************************

Antes de hacer el correspondiente REPORT FORM... llamo al metodo
"setear_impresora".

Esto me genera 2 problemas:
1) Siempre imprime en la impresora predeterminada de Windows, no en la que
se establecio con el comando SET PRINTER TO...
2) No imprime todos los items de la factura, solo el primero. Si no invoco
el metodo "setear_impresora" se imprimen todos los detalles (obviamente en la
impresora por defecto de Windows).

Alguien puede ayudarme con esto?. Ya no se que probar.

Gracias
 

Leer las respuestas

#1 Mario López
24/11/2006 - 18:15 | Informe spam
Alejandro:

en la función de selección de impresora tendrías que volver a seleccionar el área de trabajo
y el registro en los que estabas previamente posicionado.

Además, te conviene hacer SET PRINTER TO NAME (m.impresora) en vez de macro & porque
si tuvieras alguna impresora con espacios en el nombres te daría error (además de
ser más rápido)

HTH
Mario

On Fri, 24 Nov 2006 06:38:01 -0800, alejandro wrote:

Lo que necesito hacer es que mi sistema de gestion imprima ciertos informes
en una impresora y otros informes en otra impresora.
Para esto, lo que hice fue un formulario donde el usuario configura donde
quiere imprimir, por ejemplo, las facturas (IMPRESORA1) y donde quiere
imprimir los listados (IMPRESORA2).
Al ejecutar, por ejemplo, el formulario de facturacion, verifico cual es la
impresora correspondiente mediante el metodo
"setear_impresora(<id_impresora>)":

**********************************************
LPARAMETERS id_imp

IF id_imp=1 then
SELECT impresora1,id_configuracion;
from conf_impresoras;
into cursor cursor_busqueda
ELSE
SELECT impresora2,id_configuracion;
from conf_impresoras;
into cursor cursor_busqueda
endif

thisform.list1.rowsourcetype=2
thisform.list1.rowsource = 'cursor_busqueda'
thisform.list1.ListIndex=1

thisform.list1.BoundColumn=1
impresora='"'+ALLTRIM(thisform.list1.value)+'"'

SET DEVICE TO PRINTER
SET PRINTER ON
SET PRINTER TO NAME &impresora
**********************************************

Antes de hacer el correspondiente REPORT FORM... llamo al metodo
"setear_impresora".

Esto me genera 2 problemas:
1) Siempre imprime en la impresora predeterminada de Windows, no en la que
se establecio con el comando SET PRINTER TO...
2) No imprime todos los items de la factura, solo el primero. Si no invoco
el metodo "setear_impresora" se imprimen todos los detalles (obviamente en la
impresora por defecto de Windows).

Alguien puede ayudarme con esto?. Ya no se que probar.

Gracias

Preguntas similares