PDA

Ver la Versión Completa : Mostrar datos de distintas tablas en Lazreport


pedrolazarus
16-10-2012, 20:08:00
Buenas, use el buscador del foro y no encontre algo parecido, si lo hay discupen.

Estoy realizando un reporte de una factura la cual tiene en una BD la tabla factura y tabla cliente entre otras.

en el formulario coloco


frReport1

frDBDataSet1 //enlazado al query factura


En el reporte en la banda de datos coloco para solo probar un dos campos de texto y a cada uno le coloco el siguiente codigo

[factura."COD_FAC"]

[cliente."nombre"]

Cuando coloco solo el primer campo si muestra el dato pero cuando coloco los dos el segundo tira error Consulta vasia.

Me imagino que es porq el frDBDataSet1 esta enlazado solo al query factura y no al del cliente.

En resumen ¿Como mostrar datos de distintas tablas en un reporte?

pedrolazarus
16-10-2012, 21:02:51
Bueno, ya veo que las tablas deben ser tipo maestro detalle para poder hacerlo. Pero ahora cuando coloco un campo en reporte me muestra un solo valor cuando deberia mostrar todos los valores dependiendo del campo maestro. En todos los registros tengo mas de un dato pero solo muestra uno (el que en ese momento esta seleccionado en la grilla)

Casimiro Notevi
16-10-2012, 21:39:02
¿No trae ejemplos junto al programa?
He hecho una simple búsqueda por los foros porque se ha hablado de lazreport otras veces, incluso creo recordar que había un tutorial,
mira este enlace (http://www.clubdelphi.com/foros/search.php?searchid=2749082) e investiga un poco, a ver si encuentras lo que quieres.

Combat-F2D
16-10-2012, 21:47:15
creo que debe de haber algo mal en el dataset original... has revisado bien los enlaces a los frdataset?

pedrolazarus
16-10-2012, 23:23:25
creo que debe de haber algo mal en el dataset original... has revisado bien los enlaces a los frdataset?

Tengo Esto


frReport1 //propiedad Dataset=frDBDataSet1

frDBDataSet1 //Propiedad dataset=query1



zquer1 //fctura

zquery2 //productos

productos es detalle de factura por el campo codigofactura.



Activo los query y en las dbgribs aparecen los datos correctamente

Ahora lo que no logro hacer es que al yo seleccionar la factura 1 y darle clic a un boton en el reporte aparescan los productos de esa factura.

En una banda encabezado maestro coloco el campo factura y en una de datos maestros el campo producto pero se repite solo el primer producto tantas factura alla, ejemplo si tengo 10 facturas el producto 1 se repite 10 veces cuando deberia solo mostrarse solo los productos de la factura.

pedrolazarus
17-10-2012, 00:28:23
Si no se puede hacer asi directo se puede hacer pasando valores como el ejemplo del stringrid???????

Aunque asi seria ideal(como yo dije antes) ya que seria mas simple y mas rapido.

Combat-F2D
17-10-2012, 07:28:24
yo sin más no puedo decirte;
si quieres manda código y datos para verlos

lo siento ...

Casimiro Notevi
17-10-2012, 10:01:34
Este tipo de preguntas es casi imposible de contestar, hace falta mucha información adicional que es complicado de explicar.
Lo mejor, por supuesto, es estar delante del ordenador, echar un vistazo y dar la solución, pero es de las cosas que hace falta ver.
Así que tendrás que dar muchísimos más detalles, mostrar código, etc. tal y como dice Combat-F2D

pedrolazarus
17-10-2012, 19:05:31
Bueno ya me muestra Todos los datos, solo tenia que agregar otro frDBDataSet enlazado con el query2 y asignarselo a la banda detalle de datos.

Pero yo quero que se muestre solo los datos de la primera factura y no que se muestren todas. Que condicion hay que realizar alli.

pedrolazarus
17-10-2012, 19:31:04
Les dejo una imagen, muestra todas las facturas, ¿Que hay que hacer para que muestre una sola, Por lo menos denme una la idea no les estoy pidiendo que me hagan el codigo ni que me lo hagan.
http://www.subeimagenes.com/img/fact-434631.gif

Casimiro Notevi
17-10-2012, 19:56:43
Por lo menos denme una la idea no les estoy pidiendo que me hagan el codigo ni que me lo hagan.

Es que es eso, el código, ¿qué has puesto en el dataset que trae la factura?

pedrolazarus
17-10-2012, 20:51:57
Es que es eso, el código, ¿qué has puesto en el dataset que trae la factura?
Ok voy de nuevo.

http://www.subeimagenes.com/img/fac2-434682.gif

Casimiro Notevi
17-10-2012, 21:38:23
Pero si en el query1, el de las facturas, te traes todas: select * from factura entonces es normal que aparezcan todas.
Tendrás que filtrar por la que quieras presentar, algo como:
select * from facturas where codigo= :uncodigo
Y pasarle el parámetro, no sé cómo será con lazreport.

pedrolazarus
17-10-2012, 23:18:38
Pero si en el query1, el de las facturas, te traes todas: Código SQL [-] (http://www.clubdelphi.com/foros/#)select * from factura

entonces es normal que aparezcan todas.
Tendrás que filtrar por la que quieras presentar, algo como:
Código SQL [-] (http://www.clubdelphi.com/foros/#)select * from facturas where codigo= :uncodigo

Y pasarle el parámetro, no sé cómo será con lazreport.

Pues si, lo que hice fue desactivar los query, realizar la consulta para una sola factura y listo. No se si habra otra forma mas sencilla pero por lo menos ya funciona.

Combat-F2D
18-10-2012, 07:14:53
yo intentaria en una sola ZQuery (dataset) cargar todos los datos
usa inners join, podrias optener todos los detalles de cada factura con su encabezado correspondiente
en la impresion (lazreport) empleas grupos y podrías optener algo mas completo si lo que
quieres es no ir factura a factura

....no se si era eso lo que pretendías ......

pedrolazarus
18-10-2012, 15:58:49
yo intentaria en una sola ZQuery (dataset) cargar todos los datos
usa inners join, podrias optener todos los detalles de cada factura con su encabezado correspondiente
en la impresion (lazreport) empleas grupos y podrías optener algo mas completo si lo que
quieres es no ir factura a factura

....no se si era eso lo que pretendías ......

Lo que yo queria es que al seleccionar una de las facturas de la dbgrid y darle al boton que genera el reporte solo tomara los datos de esa factura, ya funciona pero agregando en el boton la consulta para la factura seleccionada y por supuesto la dbgribs toman tambien el valor de solo esa consulta por tanto debo volver a activar los query para que se muestren todas las facturas de nuevo luego de generar el reporte, creo que es una manera muy engorrosa de hacerlo.