Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   QReport y Componente ListBox (https://www.clubdelphi.com/foros/showthread.php?t=36162)

charlie663 04-10-2006 00:08:47

QReport y Componente ListBox
 
Buenas a todos:

Tengo un componente QReport en donde quiero mostrar todos los datos de una factura de un bar (nº unidades, descripcion y precio). El problema es que veo que QReport se usa sobre todo para bases de datos y yo tengo en 3 ListBox, (uno de unidades, otro descripcion y el de precio unitario), los datos que tengo q ingresar en el QReport en 3 columnas con los mismos nombres.

Mi duda es: ¿Cómo puedo volcar los datos de un ListBox a un QReport?.
Estoy aprendiendo en el tema asi que si me lo podéis detallar perfectamente os lo agradecería mucho.

Un saludo a todos:)

Caral 04-10-2006 00:50:54

Hola
De poder se puede, creo, ya que el listbox se ve en general como Items, cada Item es una linea, lo puedes mostrar en el qreport en un qrlabel, en un Qrtext y asi ver por item lo que necesitas, especificando la linea o Item que vas a imprimir en este caso.
La pregunta es porque un listbox ?, es mera curiosidad.
Saludos

charlie663 04-10-2006 01:34:15

Porque para el programa que estoy diseñando no trabajo con bases de datos, y es una tontería crear una base de datos por cada ticket que genero, simplemente paso del contenido del listbox al qreport y listo.

Y respecto al tema que me has comentado hago lo siguiente:

QRDBText->Lines->AddStrings(ListBox->Items), de tal manera que lleno todos los items del listbox en las lineas del qrdbText, pero a la hora de imprimir, no me imprime el contenido de este y no se por qué :(

Héctor Randolph 04-10-2006 02:09:22

Hola charlie663!

Busca en las demos que vienen con Delphi para QuickReport, existe una que puede servirte en donde se hace uso del evento OnNeedData:

Código Delphi [-]
procedure TfrmNeedData.FormCreate(Sender: TObject);
var
  i: integer;
begin
  SomeList := TStringlist.Create;

  for i := 0 to 500 do
    SomeList.Add('Line ' + IntToStr(i));
end;

procedure TfrmNeedData.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  // You must reset your data in the BeforePrint event
  // or when you print from the preview, the report will
  // start with the last value(s)
  CurrentIndex := 0;
end;

procedure TfrmNeedData.QuickRep1NeedData(Sender: TObject;
  var MoreData: Boolean);
begin
  // If MoreData is true, then QuickReport will print
  // another detail band.  When you set it to false,
  // the report is done.  

  MoreData := (CurrentIndex < SomeList.Count);

  if MoreData then
  begin
    QRLabel1.Caption := SomeList[CurrentIndex];

    // Here's how to set the progress bar
    QuickRep1.QRPrinter.Progress := (Longint(CurrentIndex) * 100) div SomeList.Count;
  end
  else
    QuickRep1.QRPrinter.Progress := 100;

  Inc(CurrentIndex);
end;

Saludos


La franja horaria es GMT +2. Ahora son las 01:15:18.

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