Ver Mensaje Individual
  #3  
Antiguo 10-05-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Reputación: 19
olbeup Va camino a la fama
Cita:
Empezado por lbidi Ver Mensaje
Estimados foristas.

Necesito imprimir un reporte de Fast Report en una impresora definida por el nombre de la misma.

Tengo el siguiente codigo pero no me imprime nada.

Código Delphi [-]

AIndex := frxPrinters.IndexOf(Printer.Printers[Printer.PrinterIndex]);  <--- Devuelve la imp x defecto
AIndex := frxPrinters.IndexOf('HP PSC 750');  <--- Nombre de la impresora definida

Rep_Estudio.PrintOptions.ShowDialog := False;
if AIndex <> 0 then
begin
   frxPrinters.PrinterIndex         := AIndex;
   Rep_Estudio.PrintOptions.Printer := frxPrinters[AIndex].Name;
   Rep_Estudio.PrepareReport();
   Rep_Estudio.Print;
end;


Si dejo la primer linea definida de la variable aIndex, y tengo la impresora HP PSC 750 definida como predeterminada, me imprime correctamente.

Ahora si uso la segunda linea definida de la variable por medio del nombre de la impresora, y predetermino otra impresora , no funciona, sin embargo la variable a aIndex posee el mismo valor en ambas lineas.

Alguna sugerencia ?

La idea general es poder definir en un archivo de texto o ini, diferentes impresoras y asignarlas en runtime segun lo que se desee imprimir.

Muchas Gracias

Saludos..

Leo.
No entiendo el Fast Report, pero las riendas de cómo cambiar la impresora por defecto por otra, es el uses Printers.pas
Código Delphi [-]
AIndex := Printer.Printers.IndexOf('HP PSC 750');  <--- Buscar la impresora por la que voy a imprimir

if (AIndex = -1) then
begin
  ShowMessage('No se encuentra la impresora, o la impresora a cambiado de nombre');
  Exit;
end;

Rep_Estudio.PrintOptions.ShowDialog := False;
if AIndex <> 0 then
begin
   Printer.PrinterIndex         := AIndex;
   Rep_Estudio.PrintOptions.Printer := Printer.Printers[AIndex];
   Rep_Estudio.PrepareReport();
   Rep_Estudio.Print;
end;

Espero que te funcione.

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita