In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Seleccionar Imoresora

Foro de Xailer profesional en español
Responder
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Seleccionar Imoresora

Mensaje por Paco V »

A ver si lo voy pillando.
Esto es lo que creo que deberia hacer para que funcionara.
Pues selecciona bien, me cambia el tipo de letra, pero al final imprime por
la que tengo predeterminada en WINDOWS.
METHOD ACTIVAIMP( oSender ) CLASS TForm8
LOCAL oFrm, oReport, oFont1, oFont2, n := 1

With Object oFont1 := TFont():New()
:cName := "Arial"
:nSize := 14
:lBold := .T.
END WITH

With Object oFont2 := TFont():New()
:cName := "Arial"
:nSize := 8
:lBold := .f.
END WITH
REPORT oReport TITLE "PRUEBA"FONT 1;
HEADER "Correspondiente a HOY"+" Impreso por el usuario:
"+ APPDATA:NombrOp;
FOOTER "Página: " + lTrim( Str( oReport:nPage ) ) ALIGN
taCENTER ;
FONT 2;
FONT oFont1, oFont2
*************
do while n < len(printer:aPrinterNames)+1
if Printer:aPrinter[n]= "LAQUEQUIERO"
Printer:nPrinterIndex := n
n := 8
else
n:= n+1
endif
enddo
**************
COLUMN OF oReport ;
TITLE "RESID." ;
DATA SUBSTR(::oDbfDataSet1:Residencia,1,5);
FONT 2
COLUMN OF oReport ;
TITLE "Nº VALE" ;
DATA VAL(::oDbfDataSet1:Numero);
FONT 2
RUN REPORT oReport
RETURN Nil
_support_
Mensajes: 146
Registrado: Lun Abr 10, 2006 1:29 pm

Seleccionar Imoresora

Mensaje por _support_ »

Paco,
No termino de entender porque tienes que hacer un bucle con las impresoras
instalados. Me cuesta seguir tu código. Como te ha comentado José Giménez
'nPrinterIndex' cambia la impresora por defecto para la aplicación por
decirlo de una forma sencilla.
Un saludo,
"Paco V" <ssi@ono.com> escribió en el mensaje
news:43b508c5$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
> A ver si lo voy pillando.
>
> Esto es lo que creo que deberia hacer para que funcionara.
>
> Pues selecciona bien, me cambia el tipo de letra, pero al final imprime
> por
> la que tengo predeterminada en WINDOWS.
>
>
> METHOD ACTIVAIMP( oSender ) CLASS TForm8
> LOCAL oFrm, oReport, oFont1, oFont2, n := 1
>
> With Object oFont1 := TFont():New()
> :cName := "Arial"
> :nSize := 14
> :lBold := .T.
> END WITH
>
> With Object oFont2 := TFont():New()
> :cName := "Arial"
> :nSize := 8
> :lBold := .f.
> END WITH
>
> REPORT oReport TITLE "PRUEBA"FONT 1;
> HEADER "Correspondiente a HOY"+" Impreso por el usuario:
> "+ APPDATA:NombrOp;
> FOOTER "Página: " + lTrim( Str( oReport:nPage ) ) ALIGN
> taCENTER ;
> FONT 2;
> FONT oFont1, oFont2
> *************
> do while n < len(printer:aPrinterNames)+1
> if Printer:aPrinter[n]= "LAQUEQUIERO"
> Printer:nPrinterIndex := n
> n := 8
> else
> n:= n+1
> endif
> enddo
> **************
> COLUMN OF oReport ;
> TITLE "RESID." ;
> DATA SUBSTR(::oDbfDataSet1:Residencia,1,5);
> FONT 2
> COLUMN OF oReport ;
> TITLE "Nº VALE" ;
> DATA VAL(::oDbfDataSet1:Numero);
> FONT 2
> RUN REPORT oReport
> RETURN Nil
>
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Seleccionar Imoresora

Mensaje por jfgimenez »

Paco,
> do while n < len(printer:aPrinterNames)+1
> if Printer:aPrinter[n]= "LAQUEQUIERO"
> Printer:nPrinterIndex := n
> n := 8
> else
> n:= n+1
> endif
> enddo
Ojo con esto. Tendrías que comparar el nombre exacto de la impresora,
incluyendo mayúsculas y minúsculas. La mejor forma de hacerlo sería algo así
(supongamos que la impresora es una Epson Stylus):
IF ( n := AScan( Printer:aPrinterNames, {| x | At( "EPSON STYLUS",
Upper( x ) ) > 0 } ) ) > 0
Printer:nPrinterIndex := n
ENDIF
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

Seleccionar Imoresora

Mensaje por paco-ssi »

Perfecto Jose.
Pero el asunto es que lo que te he puesto debiera funcionar.
De hecho me cambia el tipo de letra, orientacion, etc. Pero al final lo
lanza por la impresora Predeterminada.
Ese es mi problema.
Gracias y que este 2006 sea Feliz para Todos.
Paco V
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=43b6cfec@ozsrvnegro.ozlan.local...]43b6cfec@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
>> do while n < len(printer:aPrinterNames)+1
>> if Printer:aPrinter[n]= "LAQUEQUIERO"
>> Printer:nPrinterIndex := n
>> n := 8
>> else
>> n:= n+1
>> endif
>> enddo
>
> Ojo con esto. Tendrías que comparar el nombre exacto de la impresora,
> incluyendo mayúsculas y minúsculas. La mejor forma de hacerlo sería algo
> así (supongamos que la impresora es una Epson Stylus):
>
> IF ( n := AScan( Printer:aPrinterNames, {| x | At( "EPSON STYLUS",
> Upper( x ) ) > 0 } ) ) > 0
> Printer:nPrinterIndex := n
> ENDIF
>
> --
> Un saludo,
>
> José F. Giménez
>
_support_
Mensajes: 146
Registrado: Lun Abr 10, 2006 1:29 pm

Seleccionar Imoresora

Mensaje por _support_ »

Paco,
Te recomiendo que revises el ejemplo PrinterInfo que se ofrece con Xailer.
Si sigues teniendo dudas o estimas que hay un fallo te rogaría que nos
mandases un pequeño proyecto que muestre el problema.
Un saludo,
"Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:[email=43b7c547@ozsrvnegro.ozlan.local...]43b7c547@ozsrvnegro.ozlan.local...[/email]
> Perfecto Jose.
>
> Pero el asunto es que lo que te he puesto debiera funcionar.
> De hecho me cambia el tipo de letra, orientacion, etc. Pero al final lo
> lanza por la impresora Predeterminada.
> Ese es mi problema.
>
> Gracias y que este 2006 sea Feliz para Todos.
>
> Paco V
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:[email=43b6cfec@ozsrvnegro.ozlan.local...]43b6cfec@ozsrvnegro.ozlan.local...[/email]
>> Paco,
>>
>>> do while n < len(printer:aPrinterNames)+1
>>> if Printer:aPrinter[n]= "LAQUEQUIERO"
>>> Printer:nPrinterIndex := n
>>> n := 8
>>> else
>>> n:= n+1
>>> endif
>>> enddo
>>
>> Ojo con esto. Tendrías que comparar el nombre exacto de la impresora,
>> incluyendo mayúsculas y minúsculas. La mejor forma de hacerlo sería algo
>> así (supongamos que la impresora es una Epson Stylus):
>>
>> IF ( n := AScan( Printer:aPrinterNames, {| x | At( "EPSON STYLUS",
>> Upper( x ) ) > 0 } ) ) > 0
>> Printer:nPrinterIndex := n
>> ENDIF
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>>
>
>
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

Seleccionar Imoresora

Mensaje por paco-ssi »

Ignacio:
Seguramente el problema sea mio. Voy a intentar crear un pequeño ejemplo a
ver si me funciona y si no os comento.
Gracias
Paco V
"Ignacio Ortiz de Zúñiga" <_support_@xailer.com> escribió en el mensaje
news:[email=43b835ee@ozsrvnegro.ozlan.local...]43b835ee@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
> Te recomiendo que revises el ejemplo PrinterInfo que se ofrece con Xailer.
> Si sigues teniendo dudas o estimas que hay un fallo te rogaría que nos
> mandases un pequeño proyecto que muestre el problema.
>
> Un saludo,
>
> "Paco V." <paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:[email=43b7c547@ozsrvnegro.ozlan.local...]43b7c547@ozsrvnegro.ozlan.local...[/email]
>> Perfecto Jose.
>>
>> Pero el asunto es que lo que te he puesto debiera funcionar.
>> De hecho me cambia el tipo de letra, orientacion, etc. Pero al final lo
>> lanza por la impresora Predeterminada.
>> Ese es mi problema.
>>
>> Gracias y que este 2006 sea Feliz para Todos.
>>
>> Paco V
>>
>> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el
>> mensaje news:[email=43b6cfec@ozsrvnegro.ozlan.local...]43b6cfec@ozsrvnegro.ozlan.local...[/email]
>>> Paco,
>>>
>>>> do while n < len(printer:aPrinterNames)+1
>>>> if Printer:aPrinter[n]= "LAQUEQUIERO"
>>>> Printer:nPrinterIndex := n
>>>> n := 8
>>>> else
>>>> n:= n+1
>>>> endif
>>>> enddo
>>>
>>> Ojo con esto. Tendrías que comparar el nombre exacto de la impresora,
>>> incluyendo mayúsculas y minúsculas. La mejor forma de hacerlo sería algo
>>> así (supongamos que la impresora es una Epson Stylus):
>>>
>>> IF ( n := AScan( Printer:aPrinterNames, {| x | At( "EPSON STYLUS",
>>> Upper( x ) ) > 0 } ) ) > 0
>>> Printer:nPrinterIndex := n
>>> ENDIF
>>>
>>> --
>>> Un saludo,
>>>
>>> José F. Giménez
>>>
>>
>>
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Seleccionar Imoresora

Mensaje por jfgimenez »

Paco,
> Pero el asunto es que lo que te he puesto debiera funcionar.
> De hecho me cambia el tipo de letra, orientacion, etc. Pero al final lo
> lanza por la impresora Predeterminada.
> Ese es mi problema.
Puede ser que no coindida exactamente la cadena que tú has puesto con el
nombre de la impresora. P.ej., yo tengo instalada la impresora "Brother
HL-5150D series (USB)"; pero si yo busco el nombre "HL-5150" pues no la va a
encontrar. Por eso te puse un ejemplo de búsqueda con ascan() y en
mayúsculas, para afinar mejor. Si usas lo que yo te puse con el ejemplo que
te acabo de poner, funciona perfectamente. Pero eso sí, la cadena a buscar
la tienes que escribir en mayúsculas.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Paco V
Mensajes: 380
Registrado: Jue Oct 27, 2005 9:08 am

Seleccionar Imoresora

Mensaje por Paco V »

Gracias Jose voy a probar, ya que si me cambia el tipo de letra y la orientación,
debiera funcionar.
Seguro que hago algo mal al final, pero por si acaso os lo pregunto.
Gracias por vuestro tiempo.
Paco V
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Paco,
>
>> Pero el asunto es que lo que te he puesto debiera funcionar.
>> De hecho me cambia el tipo de letra, orientacion, etc. Pero al final lo
>> lanza por la impresora Predeterminada.
>> Ese es mi problema.
>
>Puede ser que no coindida exactamente la cadena que tú has puesto con el
>nombre de la impresora. P.ej., yo tengo instalada la impresora "Brother
>HL-5150D series (USB)"; pero si yo busco el nombre "HL-5150" pues no la
va a
>encontrar. Por eso te puse un ejemplo de búsqueda con ascan() y en
>mayúsculas, para afinar mejor. Si usas lo que yo te puse con el ejemplo
que
>te acabo de poner, funciona perfectamente. Pero eso sí, la cadena a buscar
>la tienes que escribir en mayúsculas.
>
>--
>Un saludo,
>
>José F. Giménez
>
>
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

Seleccionar Imoresora

Mensaje por paco-ssi »

Solucionado el tema de la impresora.
No hacía la selección en el momento adecuado.
Gracias.
Paco V
"Paco V" <ssi@ono.com> escribió en el mensaje
news:43b9653f$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>
> Gracias Jose voy a probar, ya que si me cambia el tipo de letra y la
> orientación,
> debiera funcionar.
>
> Seguro que hago algo mal al final, pero por si acaso os lo pregunto.
>
> Gracias por vuestro tiempo.
>
> Paco V
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>>Paco,
>>
>>> Pero el asunto es que lo que te he puesto debiera funcionar.
>>> De hecho me cambia el tipo de letra, orientacion, etc. Pero al final lo
>
>>> lanza por la impresora Predeterminada.
>>> Ese es mi problema.
>>
>>Puede ser que no coindida exactamente la cadena que tú has puesto con el
>
>>nombre de la impresora. P.ej., yo tengo instalada la impresora "Brother
>
>>HL-5150D series (USB)"; pero si yo busco el nombre "HL-5150" pues no la
> va a
>>encontrar. Por eso te puse un ejemplo de búsqueda con ascan() y en
>>mayúsculas, para afinar mejor. Si usas lo que yo te puse con el ejemplo
> que
>>te acabo de poner, funciona perfectamente. Pero eso sí, la cadena a buscar
>
>>la tienes que escribir en mayúsculas.
>>
>>--
>>Un saludo,
>>
>>José F. Giménez
>>
>>
>
Responder