Ver Mensaje Individual
  #45  
Antiguo 08-07-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Suponemos que queremos imprimir todos estos campos:
Código:
TeFolio            Numero    Nombre analisis   Posicion  Resultado
Pero los datos del campo TeFolio son muy largos y solo caben las dos primeras columnas en una página.

Armamos el SELECT:
Código SQL [-]
SELECT TeFolio, Numero    , Nombre ,analisis   ,Posicion  ,Resultado 
FROM TABLE
Imagina que tu query tiene 180 registros, y en cada página caben 60 registros (uno debajo de otro), así que debemos imprimir 3 páginas, pues no, sacamos 6 páginas:
- 3 páginas con las columnas: TeFolio y Numero
- otras 3 páginas más, con las columnas : Nombre, analisis, posicion, resultado.

Si coges la primera página y a su derecha pones la cuarta página, tendrás un registro completo con sus 6 campos.
Código Delphi [-]

uses quickrpt, qrextra, qrprntr, qrctrls;

procedure TForm1.Button2Click(Sender: TObject);
var q:TQuickRep;
    listaCampos:TStringList;
    i:Integer;
begin
   listaCampos:= TStringList.Create;
   try
      // lista de campos a incluir en el informe, como sabemos que solo caben 2, pues los 2 primeros
    listacampos.add('TeFolio');
    listaCampos.add('Numero');
    query1.Open;
    q:=nil;

// esto crea un listado con los campos que se le han dicho
    QRCreateList(tcustomquickrep(q),nil,query1,'Listado Principal',listaCampos);
    q.Print; 

   finally
      FreeAndNil(q);
   end;
// ya está impreso las 2 primeras columnas, ahora imprimimos el resto:
// el código es copy y paste, solo cambia los nombres del campo:
   try
      // lista de campos a incluir en el informe, el resto de campos, 
// por simplificar, estoy suponiendo que las 4 columnas caben en el ancho de una página
    ListaCAmpos.Clear;
    listacampos.add('Nombre');    
    listacampos.add('analisis');
    listaCampos.add('Posicion');
    listaCampos.add('Resultado');   
    query1.First; // volvemos al primer registro.
    q:=nil;

// esto crea un listado con los campos que se le han dicho
    QRCreateList(tcustomquickrep(q),nil,query1,'Listado Principal',listaCampos);
    q.Print; 

   finally
      FreeAndNil(q);
   end;

end;

Yo si entiendo lo que quieres hacer, pero no se puede hacer de forma automática, tienes que hacerlo tú a mano, y ésta es la solución que se me ocurre.

¿Se me entiende ahora?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 08-07-2006 a las 00:43:53.
Responder Con Cita