Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2004
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Post Impresora predeterminada?

Hola a todos los del foro. mi pregunta parese censilla pero no la se como coloco una impresora predeterminada la que yo quiera. Gracias de antemano.
__________________
____________________________
Un saludo a todos...
Responder Con Cita
  #2  
Antiguo 15-01-2004
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Question

Sera que es muy complicado colocar una impresora a traves de delphi 7 como predeterminada.
__________________
____________________________
Un saludo a todos...
Responder Con Cita
  #3  
Antiguo 15-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Lo que no entiendo a qué te refieres como predeterminada, ha que un determinado listado te salga por una determinada impresora sin que sea la predetermiada de Windows??
Responder Con Cita
  #4  
Antiguo 15-01-2004
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Post

Gracias por responder cadetill, lo que deseo es colocar una impresora predeterminada estoy trabajando con rave 5 tengo el reporte de una factura y el reporte de una etiqueta ambas salen por impresoras diferentes como le indico al reporte por cual debe salir, yo pese cuando genere el reporte de factura coloco la impresora que es de factura como predeterminadad y cuando genere el reporte de etiqueta coloco como predeterminada la impresora de etiqueta, todo estos es para que el usuario no tenga que escoger la impresora cuando imprima un reporte. el detalle esta como coloco una impresora como predeterminadad. agradesco la ayuda.
__________________
____________________________
Un saludo a todos...
Responder Con Cita
  #5  
Antiguo 15-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
bueno, pues si no recuerdo mal (lo digo de memoria) se hace con el objeto Printer declarado en la unit Printer

Algo así más o menos

Código:
   Printer.PrinterIndex := 1;
Mirate este objeto que varás que también puedes acceder a las impresoras instaladas en el sistema con Printer.Printers (de tipo TStrings),.....

Espero te sirva
Responder Con Cita
  #6  
Antiguo 18-01-2004
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Post

Cadetil, probe lo que me dices pero cuando saco el reporte me sigue sacando la impresora que originalmente estaba como predeterminada. que hago.
__________________
____________________________
Un saludo a todos...
Responder Con Cita
  #7  
Antiguo 18-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Veamos

Nosotros tenemos varias impresoras y, según el listado, éste ha de salir por una o por la otra. ¿Cómo lo hacemos? Pues bien, tenemos un archivo INI más o menos con esta estructura:

Cita:
[IMPRESORAS]
ETIQUETAS=SP40
LISTADO_STOCKS=Lexmark Optra W810
A3=SuperLexmark
.....
Me imagino que lo entiendes, pero sino, lo que ponemos es un nombre de variable (etiquets, listado_stocks, a3,...) y el nombre de la impresora por el cual lo queremos imprimir (el que ves en la pantalla de impresoras instaladas en el sistema).
Luego, me creé la siguiente función con la que recupero la impresora deseada

Código:
...
const
  PrintersIni = 'c:\ImpJulia\Printers.ini';
.....

function TBaseListado.GetImpresora(Impresora: string) : integer;
var
  Ini : TIniFile;
  Imp : string;
  i : integer;
begin
  if FileExists(PrintersIni) then
  begin
    Ini := TIniFile.Create(PrintersIni);
    Imp := Ini.ReadString('IMPRESORAS', Impresora, '');
    Ini.Free;
  end;

  if Imp = '' then
    Result := -1
  else
  begin
    // buscamos la impresora en las instaladas y devolvemos su índice
    for i := 0 to Printer.Printers.Count - 1 do
      if Pos(Imp, Printer.Printers[i]) <> 0 then Break;
    Result := i;
  end;
end;
Y luego, desde algún lugar y, antes de hacer el Print o Preview del listado se hace la asignación al QuickReport

Código:
var
  Indice: integer;
begin
  .....
  Indice := GetImpresora('A3');
  if Indice <> -1 then
    Report.PrinterSettings.PrinterIndex := Indice;
  .....
  QuickReport1.Print; // o QuickReport1.Preview;
La función tiene un pequeño "bug" que no he tenido ni tiempo ni ganas de arreglar. Y es que si la impresora está definida pero no está configurada, petaría. Este pequeño detalle ya te lo dejo a ti (si lo quieres solucionar)

Bueno, espero que ahora sí puedas hacer lo que quieres
Responder Con Cita
  #8  
Antiguo 18-01-2004
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Post

Gracias por responder cadetil, el codigo funciona muy bien en Qreport pero en Rave 5 no cuando ejecuto un repote de rave la impresora que me sale es la que esta originalmente predeterminada por win?
__________________
____________________________
Un saludo a todos...

Última edición por danytorres fecha: 19-01-2004 a las 00:21:44.
Responder Con Cita
  #9  
Antiguo 18-01-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
cierto, que era para Rave

Pues no he trabajado nunca con Rave. Mira a ver si hay alguna manera de indicarle el índice de una impresora (estilo QR). La verdad, no te sabría decir
Responder Con Cita
  #10  
Antiguo 19-01-2004
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Gracias de todas maneras cadetil.

El detalle esta que no quiero utilizar Qreport quiero seguir con Rave 5 agradesco a quien me pueda dar una mano
__________________
____________________________
Un saludo a todos...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:27:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi