Ver Mensaje Individual
  #6  
Antiguo 23-11-2003
HombreSigma HombreSigma is offline
Miembro
 
Registrado: jun 2003
Ubicación: World
Posts: 114
Reputación: 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