Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Listar impresoras en un combobox para configurar un reporte de quickreport (https://www.clubdelphi.com/foros/showthread.php?t=95340)

feliz-58 17-08-2021 02:13:42

Listar impresoras en un combobox para configurar un reporte de quickreport
 
Hola, quiero listar las impresoras en un combobox y que luego pasarle la impresora que seleccione al Quickreport antes de imprimir.

Gracias de antemano.
Uso Delphi 10.3

Busque en el hilo, y vi códigos que no me funcionan, por eso creo el hilo.

ecfisa 17-08-2021 05:08:25

Hola.

Para cargar las impresoras en un ComboBox:
Código Delphi [-]
uses Printers;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Items := Printer.Printers;
  ComboBox1.ItemIndex := 0;
  ...
end;

Para indicarle a QuickReport la impresora seleccionada, revisa el mensaje #8 de este enlace: ¿como Imprimir a varias impresoras'?

Saludos :)

feliz-58 17-08-2021 06:09:25

❤️ Muchas gracias

feliz-58 25-10-2021 15:32:38

Cita:

Empezado por ecfisa (Mensaje 542375)
Hola.

Para cargar las impresoras en un ComboBox:
Código Delphi [-]
uses Printers;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Items := Printer.Printers;
  ComboBox1.ItemIndex := 0;
  ...
end;

Para indicarle a QuickReport la impresora seleccionada, revisa el mensaje #8 de este enlace: ¿como Imprimir a varias impresoras'?

Saludos :)

Hola @ecfisa, yo de nuevo, una cosa, cuando quiero indicarle al QR la impresora seleccionada me da un error Access Violation at address 007B838A in module 'Mi programa.exe'. Read of address 000000004. alguna idea de por que?

feliz-58 25-10-2021 21:08:39

Cita:

Empezado por ecfisa (Mensaje 543723)
Hola.

¿ Cuál es el evento y como es el código mediante el cuál indicas la impresora a QR ?

Saludos :)

QImprimir1.QRep.QRPrinter.PrinterIndex := Printer.Printers.IndexOf(CBImpresora.Text);

ecfisa 25-10-2021 21:08:48

Hola.

¿ Cuál es el evento en que seleccionas la impresora y como es el código mediante el cuál le indicas la impresora a QR ?

Saludos :)

ecfisa 25-10-2021 21:14:50

Hola.

No parece haber ningún error allí, solo por si acaso... ¿ Controlas el valor del índice del combo ?
Código Delphi [-]
begin
  if CBImpresora.ItemIndex = -1 then  // <-
    Exit;
  QImprimir1.QRep.QRPrinter.PrinterIndex := Printer.Printers.IndexOf(CBImpresora.Text);
end;

Saludos :)

feliz-58 25-10-2021 21:24:37

Cita:

Empezado por ecfisa (Mensaje 543726)
Hola.

No parece haber ningún error allí, solo por si acaso... ¿ Controlas el valor del índice del combo ?
Código Delphi [-]
begin
  if CBImpresora.ItemIndex = -1 then  // <-
    Exit;
  QImprimir1.QRep.QRPrinter.PrinterIndex := Printer.Printers.IndexOf(CBImpresora.Text);
end;

Saludos :)


El combo muestra la lista de impresoras, elijo la que quiero, y luego hago la función pero me lanza el error ya mencionado.
si quito esa linea de código, obviamente se imprime en la impresora predeterminada, pero con esa linea me da el error.

feliz-58 25-10-2021 21:25:07

Cita:

Empezado por ecfisa (Mensaje 543725)
Hola.

¿ Cuál es el evento en que seleccionas la impresora y como es el código mediante el cuál le indicas la impresora a QR ?

Saludos :)

CBImpresora.Items := Printer.Printers;
CBImpresora.ItemIndex := 0;

aledieb 26-10-2021 03:02:28

En quickreport no se puede elegir la impresora por nombre como en reportbuilder?
Si se puede proba usando el nombre, en ves del index porque puede ser ahi el problema.

feliz-58 26-10-2021 03:40:38

Cita:

Empezado por aledieb (Mensaje 543731)
En quickreport no se puede elegir la impresora por nombre como en reportbuilder?
Si se puede proba usando el nombre, en ves del index porque puede ser ahi el problema.

Saludos, En las propiedades del reporte no he visto la opcion, la unica que conozco es cuando haces un preview y en las opciones elijes otra impresora y le das a imprimir, pero lo que quiero es tenerlas guardaras en la base de datos, para usar varias impresoras dependiendo el tipo de reporte que se valla a imprimir.

feliz-58 07-11-2021 17:00:45

Cita:

Empezado por ecfisa (Mensaje 543726)
Hola.

No parece haber ningún error allí, solo por si acaso... ¿ Controlas el valor del índice del combo ?
Código Delphi [-]
begin
  if CBImpresora.ItemIndex = -1 then  // <-
    Exit;
  QImprimir1.QRep.QRPrinter.PrinterIndex := Printer.Printers.IndexOf(CBImpresora.Text);
end;

Saludos :)

Saludos, después de mucho buscar, encontré el error, en ves de poner:
Código Delphi [-]
 
QImprimir1.QRep.QRPrinter.PrinterIndex := Printer.Printers.IndexOf(CBImpresora.Text);

Es:
Código Delphi [-]
QImprimir1.QRep.PrinterSettings.PrinterIndex := Printer.Printers.IndexOf(CBImpresora.Text);

Vine a ponerlo por si otra persona le pasa lo mismo.
Gracias por todo...

ecfisa 07-11-2021 18:33:18

Cita:

Empezado por feliz-58 (Mensaje 543910)
Vine a ponerlo por si otra persona le pasa lo mismo.
Gracias por todo...

^\||/

Saludos :)


La franja horaria es GMT +2. Ahora son las 17:50:01.

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