Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #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: 688
Poder: 21
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
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como averiguar el charset que tiene definida una Base de Datos Firebird apicito Firebird e Interbase 8 15-07-2010 14:01:26
clase que contiene otra clase definida de forma posterior astwin OOP 5 20-02-2009 11:26:55
¿Packet Sniffer? Cómo saber quien tiene definida un IP Virtual... Neftali [Germán.Estévez] Redes 22 14-05-2007 19:30:21
Abrir carpeta de una ruta definida Aprendiendo Varios 3 01-03-2007 17:41:50


La franja horaria es GMT +2. Ahora son las 22:19:43.


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