Ver la Versión Completa : consuta dinamicas en report builder
lledesma
17-04-2004, 17:11:55
Hola a todos:
Tengo una consulta cuya estructura es variable:
Idcliente
campo1
campo2
..
campon
y necesito poder generar en Report Builder un informe donde los campos de esta consulta esten como columnas
idcliente campo1 campo2 .. campo n
1............ xxx.......xxx..........xx
2............ yyy.......yyy.........yyy
es decir poder armarlo en forma dinamica. Es posible o tengo que armarlo directamente con las funciones de impresion de Delphi.
Muchas Gracias.
Hola,
LbTitulo := TppLabel.Create(nil);
if( assigned(LbTitulo) ) then
try
LbTitulo.Name := 'NOMBRE';
LbTitulo.Caption := 'CAPTION';
...
...
...
LbTitulo.Band := Cabecera;
etc..
esto crea un objeto del tipo ppLabel, y luego lo pone en la cabecera del reporte... usalo como referencia para lo que quieres hacer. Tambien usa el objeto TppDBText para el detalle...
espero te sirva.
lledesma
21-04-2004, 16:11:19
Hola:
Antes que nada gracias. Te cuento que utilice el codigo que me indicas y cuando muestro el reporte( con Reporte.Printreport) no aparece nada. No entiendo bien lo de 'CABECERA' en tu ejemplo.
Hola,
'Cabecera' hace referencia a la banda (TppBand) donde quieres que el objeto aparezca. En el ejemplo yo pongo la etiqueta en la banda llamada 'Cabecera' del reporte.
Saludos.
lledesma
23-04-2004, 00:40:32
hola:
En realidad 'Cabecera' lo reemplace como vos indicas pero igual no muestra nada. Si tenes otra sugerencia te agradeceria. Tambien utilice la propiedad Parent (sugerido por otro usuario) del objeto pero me da un error algo asi como 'propiedad de solo lectura'.
Hola, yo quería hacer lo mismo que tú, y he encontrado este link donde lo explican :
http://www.digital-metaphors.com/Subpages/Products/Standard/CreateReports.html
Aqui tienes el cacho de codigo que yo he utilizado para mis pruebas, esta sacado de esa dirección :
[...]
lDBText1 := TppDBText.Create(Self);
lDBText1.Band := Report1.DetailBand;
lDBText1.spLeft := 2;
lDBText1.spTop := 0;
lDBText1.DataPipeline := DataPipeline;
lDBText1.DataField := 'Codigo';
[...]
"lDBText1.Band := Report1.DetailBand;" Observa esta línea, es lo que enlaza tú objecto con el informe.
Espero que te funcione. Saludos.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.