Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   FastReport y duda en tiempo de ejecución (https://www.clubdelphi.com/foros/showthread.php?t=93814)

lago 18-03-2019 16:17:13

FastReport y duda en tiempo de ejecución
 
Hola, a ver si alguien me puede iluminar, estoy nuevo en esto de reportes...

Utilizo FastReport en un XE7, genero un informe (ticket de caja) en base a los datos del cliente, hasta ahí bien y a golpe de ratón... el problema viene cuando quiero mostrar el resultado de una tabla que se genera desde el programa...

Me explico:

Tengo un formulario con el código de cliente, según introduzco dicho código añado la sentencia SQL a un FDQuery y hago FDQuery->Open, este a su vez esta asociado a un DataSet que apunta al DBGrid donde se muestra el resultado.

El problema es que yo modifico la sentencia SQL y hago el Open desde código, con lo cual en el reporte no aparecen los campos de la tabla.

Alguien sabría decirme como poder hacerlo? En el peor de los casos podría añadir variables al formulario y leer el DBgrid celda a celda pero seguro que hay alguna manera..

Muchas gracias de antemano y un saludo!

Jorge.

juniorSoft 18-03-2019 16:46:26

Tengo unas preguntas

1-Cuales bandas tienes insertadas en tu reporte?

2-El sql siempre tiene los mismos campos o son variables?

3-Utilizas el componente TfrxDBDataset para representar el dataset de delphi en el reporte?


Saludos,

movorack 18-03-2019 17:26:26

Te vendría bien darle una leída al manual

lago 18-03-2019 20:18:00

Hola, gracias por responder... Tienes razón movorak debería documentarme un poco... Leeré el manual más a fondo...

Juniorsoft, cuando hago el reporte con el tdbdataset asociado a un fdquery lo hace bien si el SQL de dicho fdquery es estático. Select * from clientes

Pero necesito hacer select * from clientes where código = variable

Como ese SQL lo modifico desde código el editor de reportes no puede mostrarme el resultado de dicha consulta que yo muestro por pantalla en un dbgrid.

Gracias por responder!

juniorSoft 18-03-2019 20:52:14

Cita:

El problema es que yo modifico la sentencia SQL y hago el Open desde código, con lo cual en el reporte no aparecen los campos de la tabla.
como la consulta no va a cambiar la cantidad de campos puedes hacer lo siguiente:

abres el editor de consultas del FDQuery y realizas la consulta

Código SQL [-]
Select * from clientes
where codigoCliente = -1

Luego abres el editor de campos del mismo FDQuery y agregas todos los campos dando clic derecho y seleccionando "Add All Fields".

Haces Doble click en el TfrxDBDataset asociado al FDQuery y le das al boton Update que aparece en la parte inferior.

Ahora realizas el select dinámico y como los campos son persistentes deberian aparacer, claro dando por hecho que el FDQuery esta asociado al TfrxDBDataset y que el reporte tiene sus campos enlazados y que la banda de ser un masterData o un DetailData tiene conectado en su propiedad dataset el que le corresponde.

lago 20-03-2019 09:53:12

Hola! muchas gracias JuniorSoft, funcionó... no añadía los campos fijos... Igualmente tengo que leer bien el manual en cuanto tenga un poco de tiempo que estoy verde verdísimo...

Muchas gracias!

Un saludo

Jorge.

Casimiro Notevi 20-03-2019 14:00:24

Cita:

Empezado por lago (Mensaje 531157)
Hola! muchas gracias JuniorSoft, funcionó... no añadía los campos fijos... Igualmente tengo que leer bien el manual en cuanto tenga un poco de tiempo que estoy verde verdísimo...

El manual se lee antes, no después.


La franja horaria es GMT +2. Ahora son las 23:17:12.

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