Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Reportes con quiebres / impresion de variables (https://www.clubdelphi.com/foros/showthread.php?t=31155)

mrh_peru 29-04-2006 02:28:52

Reportes con quiebres / impresion de variables
 
Que tal foro lo que deseo es imprimir una cadena de texto para un campo logico o numerico.

P.e :
ten el sgte resultado de un query

CLIENTE DOCUMENTO SALDO TIPO
000A FT-0001 100 0
000A FT-0002 50 1
000A FT-0003 50 1
000B FT-0011 10
000B FT-0012 20
000B FT-0013 30
.....
...
.

Entonces con este resultado de mi query necesito imprimir :

Cliente : 000A-RICHAR VARGAS
DOCUMENTOS SALDO ESTADO
FT-0001 100 POR VENCER
FT-0002 50 VENCIDO
FT-0003 50 VENCIDO
TOTAL CLIENTE 200

Cliente : 000B-RICHAR VARGAS
DOCUMENTOS SALDO ESTADO
FT-0011 10 POR VENCER
FT-0012 20 VENCIDO
FT-0013 30 VENCIDO
TOTAL CLIENTE 60

Primero : Que bandas deberia utilizar ?
Segundo : Como hago para que aparezca la cadena del campo estado ya que
tego en mi tabla valores numericos ( no estan en ninguna tabla ) solo son valores 0= vencido , 1=por vencer .

Espero me puedan , cabe indicar que yo solo he trabajado hasta la fecha con bandas title , pageheader, pagefooter, detal, subdetail.

Este tipo de reporte con quiebres como deberia trabarlo en quicreport

luisgutierrezb 29-04-2006 17:08:33

Bueno no mencionas que motor de bases de datos usas, asi que ahi te van 2 soluciones
1.- desde el query a la base de datos puedes decirle algo asi como:
select documentos, saldo,
(case when estado = 0 then "Por Vencer" else "Vencido" end) as EstadoStr
from clientes, where blabla=algo

esto es para mssql, en otros motores esta el "iif" cuestion de buscar en la ayuda

2.- dentro del delphi, en el dataset, boton derecho seleccionar fields, boton derecho en la ventanita click en "add all fields" y luego boton derecho y click en "add new field" le pones el nombre, el tipo de datos (string en este caso), le pones que es calculado, y despues en los eventos de ese campo calculado seleccionas "oncalcfields" (que es donde se calcula un campo calculado) le puedes poner

if dataset.FieldByname('Estado').AsInteger = 1 Then
dataset.FieldByname('Campocalculado').AsString = 'Por Vencer';

en cuanto a que bandas utilizar, depende como tengas tu programa, puede ser detail y detailband si usas datasets maestro-detalle o puede ser con qrgroup si traes todos los datos en una sola consulta

mrh_peru 02-05-2006 22:09:16

Todo lo tengo en un solo query estoy usando Interbase y no se como sacar un reporte agrupado, asi mismo totalizar el campo numerico del saldo


La franja horaria es GMT +2. Ahora son las 17:50:59.

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