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 27-01-2006
Pirucho Pirucho is offline
Registrado
 
Registrado: ene 2006
Posts: 2
Poder: 0
Pirucho Va por buen camino
Imprimir info de un StringGrid con un QuickRep

hola
necesito imprimir la informacion que tengo en un StringGrid, y estoy usando QuickRep,

Por ahi encontre un codigo:

Cita:
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurrentItem := 0; // Puntero de la lista a imprimir
//***
PrintReport := SomeStringList.Count 0; // Para verificar si hay algo para imprimir
//***
end;

procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
if CurrentItem < SomeStringList.Count then
QRLabel1.Caption := SomeStringList[CurrentItem]; // Impresion
Inc(CurrentItem); // Incrementa el Puntero en uno
MoreData := CurrentItem <= SomeStringList.Count; // Para indicar la Finalizacion del Reporte
end;

Pero me da un problema en ***, agradeceria su ayuda...
es que no entiendo porque si esa variable es boolean y le asigno un integer...

Si Alguien tiene un codigo que pueda postear...
Gracias
Responder Con Cita
  #2  
Antiguo 27-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Realmente esto nada tiene que ver con QuickReport ni StringGrids.

Y tú mismo sabes la respuesta:

Cita:
Empezado por Pirucho
es que no entiendo porque si esa variable es boolean y le asigno un integer...
así que ni siquiera entiendo qué estás preguntando.

// Saludos
Responder Con Cita
  #3  
Antiguo 28-01-2006
Pirucho Pirucho is offline
Registrado
 
Registrado: ene 2006
Posts: 2
Poder: 0
Pirucho Va por buen camino
nada, ese codigo con esa diferencia de tipos mo lo encontre en un foro por ahi...

Lo que necesito es poder imprimir la informacion que estan en las celdas de un StringGrid utilizando QuickRep u otro metodo...

Imagina que tengo una factura con 4 columnas: Codigo, cantidad, precio y total... Pero las filas son infinitas, necesito imprimir esta factura que se encuentra en el StringGrid

Gracias...
Responder Con Cita
  #4  
Antiguo 01-02-2006
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Exclamation

Puedes poner en tu componente TQuickRep 1 DetailBand (TQRBand) y dentro del DetailBand 4 TQRLabel. En el metodo QuickRep1BeforePrint inicializas tu variable global "CurrentItem" con el que controlarás la linea de tu StringGrid donde se te encuentras al ir imprimiendo cada renglon:

Código:
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurrentItem := 0; // Puntero de la lista a imprimir
end;
...
//por ejemplo, si los datos estan en un arreglo:
procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
 //si hay mas datos, QuickReport imprimirá otra banda de detalle
 MoreData := CurrentItem < High(arr);
 if MoreData then
 begin
  QRLCliente.Caption:=arr[CurrentItem,0];
  QRLFecha.Caption:=arr[CurrentItem,1];
  QRLNumero.Caption:=arr[CurrentItem,2];
  QRLImporte.Caption:=arr[CurrentItem,3];
 end;
 Inc(CurrentItem);
end;
Con algo similar imprimirá el contenido del StringGrid.
Espero te sirva

Yo lo solucioné así pero tengo problemas si intento agrupar por Cliente por ejemplo, no he podido agrupar que cada que sea un cliente diferente, muestre la suma del importe para el cliente, imprima el encabezado de las columnas para el siguiente cliente y su total y asi sucesivamente, Alguien sabe como hacerlo?

Saludos
Responder Con Cita
  #5  
Antiguo 10-04-2006
Roilo Roilo is offline
Miembro
 
Registrado: nov 2005
Ubicación: Mayarí, Cuba
Posts: 143
Poder: 19
Roilo Va por buen camino
Saludos

Un abraso al foro:
Que pasaría si la cantidad de columnas del StrigGrid fueran indeterminadas, es decir que no sea un número fijo (4 en el caso de Pirucho).
Responder Con Cita
  #6  
Antiguo 23-04-2006
josejm josejm is offline
Miembro
 
Registrado: abr 2006
Posts: 19
Poder: 0
josejm Va por buen camino
Wink Creación de componentes en ejecución.

Si no supieramos el numero de columnas a imprimir porque la stringgrid es de columnas variables por el usuario tendriamos que crear los TQRLabel en tiempo de ejecución:
Algo así:
este codigo seria en el create o antes del preview o del print del report.
for x:=0 to stringgrid.colcount-1 do begin
qlabeltemp:=tqrlabel.create(detalband);
qlabeltemp.tag:=x; //Asi identificamos a la columna que le corresponde
end;

luego en el oneeddata pondriamos algo asi.
for x:=0 to detailband.componentscount -1
with detailband.components[x] as tqrlabel do begin
caption:=stringgrid.cells[tag,linea];
end;
end;

Bueno espero que este codigo sirva de algo a alguien...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresion de dos StringGrid en Quick Report pkbza Impresión 7 23-11-2006 12:54:45
I/O ERROR 105 +imprimir desde delphi IVAND Impresión 5 02-10-2005 18:51:00
Problema con TQRCompositeReport y StringGrid BlueSteel Impresión 1 30-08-2005 19:09:30
Impresion de datos de un stringgrid Dayvis Impresión 1 24-02-2005 21:31:19
Imprimir composite report desde preview personalizado SnaKe Impresión 5 11-05-2004 09:31:50


La franja horaria es GMT +2. Ahora son las 13:04:58.


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