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 15-09-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Cantidad de columnas variables

Hola a todos ..
Tengo que hacer un reporte y la cantidad de columnas puede variar entre
5 y 12 dependiendo de ciertas condiciones . Mi idea es tratar de no hacer 8 reportes
por lo cual mi pregunta es si puede hacer un Qreport con la cant de columnas variables ..o si alguien hizo algo parecido ..
Gracias . Saludos a todos
Ingel
Responder Con Cita
  #2  
Antiguo 15-09-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Hace tiempo hice el reporte con las 12 columnas y cuando alguna no debería estar solamente la enviaba fuera del margen de impresión (qrdbtext.left:=5000; )

No se si sea lo más conveniente, pero por la urgencia de resolver eso fue lo que me funcionó. Igual y alguien responde algo más interesante y nos ayuda a ambos.
__________________

Responder Con Cita
  #3  
Antiguo 16-09-2005
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Hola:

Yo para imprimir en una página las fotos de un grupo que puede ser variable y llegar como máximo a 35 hice esto, no se si te puede servir.

Código Delphi [-]
procedure TFImpriOrla.FormCreate(Sender: TObject);
var
  iFotos : integer;
begin
  //contar registros
  DM.IBDSAlumnos.Last;
  iFotos := DM.IBDSAlumnos.RecordCount;
  //reparto de fotos según número (columnas, widthBanda)
  if iFotos < 16 then
    //5 columnas, 3 filas
    begin
      QROrla.Page.Columns := 5;
      QRBandFotos.Height := 232;
    end
  else if (iFotos > 15) and (iFotos < 19) then
    //6 columnas, 3 filas
    begin
      QROrla.Page.Columns := 6;
      QRBandFotos.Height := 232;
    end
  else if (iFotos > 18) and (iFotos < 22) then
    //7 columnas, 3 filas
    begin
      QROrla.Page.Columns := 7;
      QRBandFotos.Height := 232;
    end
  else if (iFotos > 21) and (iFotos < 25) then
    //8 columnas, 3 filas
    begin
      QROrla.Page.Columns := 8;
      QRBandFotos.Height := 232;
    end
  else if (iFotos > 24) and (iFotos < 29) then
    //7 columnas, 4 filas
    begin
      QROrla.Page.Columns := 7;
      QRBandFotos.Height := 178;
    end
  else if (iFotos > 28) and (iFotos < 33) then
    //8 columnas, 4 filas
    begin
      QROrla.Page.Columns := 8;
      QRBandFotos.Height := 178;
    end
  else if iFotos > 32 then
    //9 columnas, 4 filas
    begin
      QROrla.Page.Columns := 9;
      QRBandFotos.Height := 178;
    end;
  QROrla.Preview;
  QROrla.Free;
  Close;
end;
Un saludo.
Responder Con Cita
  #4  
Antiguo 16-09-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 22
sitrico Va por buen camino
Yo, trabaje de otra manera:

Creo las columnas en runtime con un ciclo (for i := 0 to q.FieldsCount-1)

Este el el código base para hacerlo:

Código Delphi [-]
With TQRDBText.Create(AOwner) do
   begin
   Parent := AOwner; // el Band
   Height := AltoStd;
   Top := 1;
   Left := PxCampo;  // comienza en 0 y se incrmenta en el ancho de cada campo
   ParentFont := True;
   AutoSize := False;
   Width := ElAncho;  // definido en parametros
   DataSet := Self.DataSet; // el mismo del Report
   DataField := ElCampo;  // Nombre del campo
   Tag := ElTag;  // 
   OnPrint := QRDBTextPrint;  // no es necesario generalmente
   WordWrap := False;
   Alignment := Alineacion;
   If Bold Then
      Font.Style := [fsBold];
   If DataSet.FieldByName(ElCampo) is TFloatField Then
      Begin
      Alignment := taRightJustify;
      Mask := '#,##0.00'; // ajustar mascara numericos
      End;
   End;
PXCampo := PxCampo + ElAncho + Separacion; // Separacion entre columnas
end;
__________________
Sitrico
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


La franja horaria es GMT +2. Ahora son las 05:01:22.


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