Club Delphi  
    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
  #14  
Antiguo 17-09-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lo que hago yo con los reportes es tener un DataSet para ellos mismos.

Los componentes del Form (DBNavigator, DBGrid, DBEdit, etc.) tiran de un DataSource que a su vez tira de un DataSet.
Este DataSet se utiliza para hacer las inserciones, modificaciones y bajas.

Para los listados tengo otro DataSet que previo al listado se filtra según lo que se desee listar.
De esta manera, el DataSet de trabajo mantiene la posición y estado, mientras el DataSet de listado se va moviendo por los registros filtrados.

En tu caso, parece que el DataSet de trabajo es ADOQuery1.
Prueba crear un segundo DataSet ADOListado, en el que estén los registros que quieres listar.
El QuickReport y los componentes QRDBText deben tirar de ADOListado.
Utiliza QuickRep1BeforePrint para poner en visible/invisible el componente que corresponda a medida que va avanzando por los registros a listar.

Mirando en internet, he visto que también exite el método OnBeforePrint para la banda.
http://www.admind.info/help/system/i...ml?tqrband.htm

Supongo que es allí donde debes poner el código, ya que la banda es la que va pasando por cada registro y es en ese momento donde el valor de cession es el del regisro que se está imprimiendo.
Código Delphi [-]
procedure [Form_o_Datamodule].Listar;
begin
   // Filtrar ADOListado
   ADOListado.Close;
   ...
   ADOListado.Open;

   // Asignar DataSet
   FRMRELEVE.QuickRep1.DataSet:=ADOListado;

   FRMRELEVE.QRDBText1.DataSet:= ADOListado;
   FRMRELEVE.QRDBText1.DataField:='description' ;

   FRMRELEVE.QRDBText3.DataSet:= ADOListado;
   FRMRELEVE.QRDBText3.DataField:='notetotal';

   FRMRELEVE.QRDBText2.DataSet:= ADOListado;
   FRMRELEVE.QRDBText2.DataField:='notetotal';

   // MostrarListado
   FRMRELEVE.QuickRep1.Preview;
end;

// Metodo OnBeforePrint de la banda que muestra QRDBText 2 y 3.
procedure [Form_o_Datamodule].QRBand1BeforePrint(Sender: TObject; var PrintBand: Boolean);
begin
   // Si el registro que estoy imprimiendo es de cession II se muestra por QRDBText3
   if ADOListado.FieldValues['cession'] ='II' then
   begin
      FRMRELEVE.QRDBText3.Visible := True;
      FRMRELEVE.QRDBText2.Visible := False;
   end 
   else
   // Si el registro que estoy imprimiendo es de cession I se muestra por QRDBText2
   if ADOQuery1.FieldValues['cession'] ='I' then
   begin
      FRMRELEVE.QRDBText3.Visible := False;
      FRMRELEVE.QRDBText2.Visible := True;
   end;
end;
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
Variables session *help-- foetus PHP 5 06-12-2007 14:27:55
que es session.setAttribute cahosoft JAVA 1 04-08-2006 07:23:08
Session!!!! acertij022 PHP 9 02-09-2004 15:11:30


La franja horaria es GMT +2. Ahora son las 22:14:41.


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