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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-08-2004
vichovi vichovi is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva (España)
Posts: 59
Poder: 22
vichovi Va por buen camino
Reportes multicolumnas con QREPORT

Hola a todos

Estoy intentando imprimir un reporte con varias columnas (en concreto 5), en principio lo he intentado dando el valor 5 a la propiedad Page.Columns del objeto TQuickRep, pero con esto me sale a 5 columnas la banda de titulo (TQRBand.BandType:=rbTitle), la banda de grupo (TQRGroup), la banda de detalles, y la banda de sumario; y yo solamente quiero que vaya a 5 columnas la banda de detalle (si la propiedad Page.Columns fuera a nivel de banda :-)).

Puesto que esta opción no me es válida (a menos que alguien me demuestre lo contario, lo cual agradeceria pues es la mas facil), me decidi por la implimentacion mediante codigo para lo cual en la banda de detalles introduje 4 TQRLabel mas, y el siguiente código en el BEFOREPRINT de la banda:

Código:
var
  origen:string;
  n,posicion:integer;
  lEti:TComponent;
begin
  n:=1;
  //Como la expresion del grupo es el origen lo guardo
  origen:=dmdatos.msqAlbaranes['origen'];
  //Voy imprimiendo los albaranes
  while (n<=5) and (not dmdatos.msqAlbaranes.EOF) and (origen=dmdatos.msqAlbaranes['origen']) do
  begin
    lEti:=self.FindComponent('lAlbaran'+inttostr(n));
    TQRLabel(lEti).Caption:=dmdatos.msqAlbaranes['numalbaran'];
    dmdatos.msqAlbaranes.Next;
    n:=n+1;
  end;
  //Si he salido del bucle porque no hay mas datos (EOF)
  //o el origen a cambiado limpio los TQRLabel que no han sido impresos
  if n<5 then
  begin
    for posicion:=n+1 to 5 do
    begin
      lEti:=self.FindComponent('lAlbaran'+inttostr(posicion));
      TQRLabel(lEti).Caption:=' ';
    end;
  end;
  //Pero si el origen a cambiado vuelvo al registro anterior
  if origen<>dmdatos.msqAlbaranes['origen'] then
  begin
    //Esto lo hago para que la banda de grupo se imprima al cambiar
    //el origen, y esto no funciona, la banda en cuestion no se imprime
    dmdatos.msqAlbaranes.Prior;
  end;
end;
Bueno pues con esto llevo atascado 4 dias haciendo pruebas y mas pruebas, he mirado en los foros antiguos y no vi nada.

Espero que alguien me pueda echar una mano.

Gracias a tod@s de antemano.
Un saludo.
__________________
Vivir a la deriva,
sentir,
que no se que hago aki...

(Extremo)
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 05:26:24.


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