Problemas con SET PRINTER (II)

28/11/2006 - 12:31 por alejandro | Informe spam
Necesitaria ayuda sobre el siguiente codigo.

**********************************************************
impresora=ALLTRIM(thisform .list1.value)
APRINTERS(impresoras)
FOR
i=1 TO ALEN(impresoras,1)
IF &impresoras(i,1)==&impresora then
SET DEVICE TO PRINTER
SET PRINTER ON
SET PRINTER TO &impresora
ENDIF
ENDFOR
**********************************************************

El problema que tengo es que, al ejecutar el mismo aparece un mensaje que
dice "No se encuentra la variable <nombre_impresora>". <nombre_impresora> es
el valor que toma "&impresoras(i,1)". Obviamente no puedo imprimir.

Alguna ayuda?

Preguntas similare

Leer las respuestas

#1 Hector Quiñones
30/11/2006 - 02:57 | Informe spam
Utiliza:
SET PRINTER TO NAME (impresora)
Respuesta Responder a este mensaje
#2 Dario David Puccio
01/12/2006 - 00:48 | Informe spam
Ale podrias enviarme el codigo por email y lo estudio...

Pero podrias inicar una prueba con

LOCAL lcPrinter

lcPrinter = ''
lcPrinter = GETPRINTER()

IF !EMPTY(lcPrinter)
SET PRINTER TO NAME (lcPrinter)
REPORT FORM Test TO PRINTER NOCONSOLE
ELSE
WAIT WINDOW 'Impresion Cancelada' TIME 1
ENDIF

NOTA: Para que este procedimiento funcione, el reporte
se debe guardar con la impresora predeterminada seleccionada en la
colocacion Nombre- cuadro dentro del dialogo Configurar impresion.
A este de dialogo se lo llama desde el de dialogo Configurar pagina
encontrado bajo el menu Archivo.
Caso contrario abrir el informe con tabla. Del primer registro borrar el
contenido de los campos tag, tag1 y Expr.

USE reporte.frx
LOCATE FOR Objtype = 1 AND Objcode = 53
REPLACE Tag WITH ""
REPLACE Tag2 WITH ""
REPLACE EXPR WITH ""

Espero te sirva...

Dario David Puccio
El Cyber_Gaucho
www.chispazodetradicion.com.ar
Respuesta Responder a este mensaje
#3 Carlos Ramírez
13/12/2006 - 23:04 | Informe spam
Saludos, espero te sirva la respuesta aún:

El error que tienes se encuentra en que estas haciendo una sustitución
de macro en el bloque IF
APRINTERS(impresoras)
FOR
i=1 TO ALEN(impresoras,1)
IF &impresoras(i,1)==&impresora then


debes quitar sencillamente el simbolo & para que funcione el trozo de
código.

Por otra parte deberias reevaluar el código ya qué entiendo que tratas
de validar que se seleccionó una impresora para redirigir las salidas a
ella.
Si es eso, te recomiendo utilices el código que ha enviado Dario David
Puccio, ya que, es más funcional.

Saludos

"alejandro" escribió en el mensaje
news:
Necesitaria ayuda sobre el siguiente codigo.

**********************************************************
impresora=ALLTRIM(thisform .list1.value)
APRINTERS(impresoras)
FOR
i=1 TO ALEN(impresoras,1)
IF &impresoras(i,1)==&impresora then
SET DEVICE TO PRINTER
SET PRINTER ON
SET PRINTER TO &impresora
ENDIF
ENDFOR
**********************************************************

El problema que tengo es que, al ejecutar el mismo aparece un mensaje que
dice "No se encuentra la variable <nombre_impresora>". <nombre_impresora>
es
el valor que toma "&impresoras(i,1)". Obviamente no puedo imprimir.

Alguna ayuda?
Respuesta Responder a este mensaje
#4 Dario David Puccio
14/12/2006 - 02:44 | Informe spam
APRINTERS(impresoras)




FOR i=1 TO ALEN(impresoras,1)
IF &impresoras(i,1)==&impresora then

Ademas el error esta en el &impresoras(i,1) ya que es una matriz por lo cual
de por si en cada posicion ya tiene el nombre de la impresora por lo que no
deberias forzar ningun macro. Idem impresora ya que no trae directamente el
nombre? es como hace if a=b comparo los valores contenidos en la variables.


Dario David Puccio
El Cyber_Gaucho
www.chispazodetradicion.com.ar
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida