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 10-11-2003
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Poder: 21
HombreSigma Va por buen camino
Columnas de longitud variable en QuickReport

En diseño doy click derecho al componente TQuickReport y me aparece la propiedad number of columns (entre otras) y la coloco en 20 por ejemplo.

Existe alguna manera de permitir que la primera columna tenga un ancho y las otras 19 otro ancho diferente. No se ve como. Y no es una propiedad que pueda editarse por el inspector de objetos.


Gracias.
__________________
SigmaMan
Responder Con Cita
  #2  
Antiguo 10-11-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

La idea de columnas de QuickReport es que te sirven para imprimir varias veces el mismo contenido, por ejemplo, etiquetas postales. De esa cuenta que no se puede alterar la longitud de cada columna, que es calculada internamente.

Si lo que queres es imprimir 20 columnas con información de diferentes fuentes (digamos, 20 campos de una tabla), entonces necesitas un reporte de una sola columna con 20 TqrdbText distintos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 20-11-2003
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Poder: 21
HombreSigma Va por buen camino
Hola de nuevo:

Precisamente lo que requiero es mostrar un campo de una tabla en forma de columnas y no de filas que es lo normal.

Por ejemplo agrupar de una tabla por un campo campo1 y mostrar los datos de un campo2 con sus valores en columnas.


Si la tabla tiene los siguientes registros:

Campo 1 - Campo2 - Cantidad
X1, Y1, 20
X1, Y2, 30
X1, Y3, 30
X1, Y4, 45
X2, Y1, 50
X2, Y3, 100
X3, Y1, 20
X3, Y2,15

Estos ocho registros (o n registros) debo presentarlos así:

Campo1 Y1--- Y2 --- Y3 --- Y4
X1 --------20----30----30----45
X2 --------50---- ----100--
X3--------- 20----15--- --
..
..

Como se ve es un reporte un tanto artificioso y poco convencional para el QuickReport, y quería obtenerlo de una forma simple y ojalá elegante.

Es posible hacerlo con forcenewcolumn pero el problema es que X1 que es una descripción larga (90 caracteres) no se ve de forma completa si utilizo el quickreport con n columnas y además las cantidades ocupan menos ancho del informe.

Por eso la pregunta. Si hay alguna otra solución agradezco de antemano cualquier ayuda.

Gracias de antemano.
__________________
SigmaMan

Última edición por HombreSigma fecha: 23-11-2003 a las 18:08:36.
Responder Con Cita
  #4  
Antiguo 21-11-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Si te estan pagando bien... creo que podrias meterte al camote de generar dinámicamente tantos qrlabels (o qrdbText) como sea necesario... no?

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 21-11-2003
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Poder: 21
HombreSigma Va por buen camino
De todas maneras gracias.

Pero los TQRDBText no sirven y los TQRLabels no son elegantes y el informe ya lo hice búrdamente con este método, y como decía antes, es más artificioso que simple y elegante.

Lo que ocurre es que a veces no lo sabemos todo de un determinado componente y nos desgastamos haciendo algo que puede hacerse de una forma que alguien de este foro podría ya saber hacer más sencillamente.

Para eso es el foro no?

Saludos de Colombia.
__________________
SigmaMan

Última edición por HombreSigma fecha: 21-11-2003 a las 15:03:12.
Responder Con Cita
  #6  
Antiguo 23-11-2003
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Poder: 21
HombreSigma Va por buen camino
Hola de nuevo:

Desarrolle la siguiente solución:

1) Armo un componente Tquery con la información que necesito.
2) Consulto el query y mando la información a un TStringGrid presentando la información en la forma de filas y columnas en las celdas alfanuméricas del TStringGrid, 'como caprichosamente necesitemos', la cual no necesariamente debe ser la misma presentación de filas y columnas del TQuery consultado. La ventaja del StringGrid es que puedo presentar esta información en un formulario en forma de rejilla de datos y dejar opcional el reporte.
3) Armo un reporte TQuickReport con una banda TQRStringsband en vez de una banda rbDetail, que permite presentar listas de cadenas no tomadas de un DataSet. (Ver nota 1)
4) Adiciono a la banda TQRStringsBand un componente TQRExpresion y la asocio con esta banda como una variable a la banda TQRStringsBand. (Ver nota 2)
5) Tomando cada fila del TStringGrid concateno cada una de las columnas de esta fila para armar una sola cadena por fila que este contenida en alguna variable, por ejemplo, 'TextoFila. (Ver nota 3)
6) Adiciono el contenido de cada fila almancena en la variable 'TextoFila' a la banda del reporte mediante el método Add a TQRStringsBand.Items.Add('TextoFila')
7) Imprimo el reporte.

Notas:
1)El reporte debe tener la propiedad PrintEmpty=True sino no se imprimiría ya que no estará conectada a un DataSet como fuente sino a la TQRStringsBand como fuente de datos.
2) La expresión agregada se asocia marcando los puntos suspensivos en el object inspector de 'Expression' y luego seleccionando variable. La variable seleccionada debe corresponder al nombre del TQRSTringsBand creado.
3) Si los datos deben quedar alineados por columnas el font debe ser Fixed (como el del Courier) y rellenar con blancos al ancho de la columna deseado para cada columna concatenada dentro de cada fila del TQRStringsBand.
__________________
SigmaMan
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 10:49:16.


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