[RESUELTO] Pasar datos capturados en Formulario a Informe

Discute sobre las herramientas de la base de datos
Responder
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

[RESUELTO] Pasar datos capturados en Formulario a Informe

Mensaje por pmartimor »

Buenos días: Me gustaría pasar unas fechas que pido a través de una caja de texto de un formulario (fecha_comienzo y fecha_fin) a un informe, para dar valor a un campo en el informe con estas fechas.
La fórmula que tengo ahora es algo complejo pero funciona...
IF(ISBLANK([FECHA_BAJA]);DATEDIF([FECHA_ALTA];"2018-12-31";"d")+1;(IF([FECHA_ALTA]<"2018-01-01";DATEDIF("2018-01-01";[FECHA_BAJA];"d")+1;DATEDIF([FECHA_ALTA];[FECHA_BAJA];"d")+1)))
lo que quiero es que esas fechas que aparecen como cadena "2018-12-31" etc... sean las fechas de dichas cajas de texto que se piden en el formulario [fecha_comienzo] y [fecha_fin], de forma que no tenga que substituirlas a mano en la fórmula para cada caso.
[img]

[/img]
Saludos y gracias anticipadas.
Adjuntos
dias entre fechas2.jpg
Última edición por pmartimor el Lun Feb 11, 2019 1:21 pm, editado 1 vez en total.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Pasar datos capturados en Formulario a Informe

Mensaje por Longi »

Buenas!

Como veo en tu firma estás usando LibreOffice, así que los informes van con ORB.....
No es un sistema que haya utilizado intensivamente (más bien muy poquito), así que igual meto la pata, pero me parece que no tendrías la opción de coger algo del formulario y clavárselo al informe. Tal cual me lo imagino, en el sistema antiguo se podría sin mucho problema, pero aquí tendrías que poner un campo basado en una fórmula que hiciese justo lo que quieres (pero eso supongo que ya lo has intentado).
La otra opción que se me ocurre es que bases el informe en una consulta, y precisamente allí, pones la fórmula, que te dará el campo que quieres para cada caso concreto.

Ya contarás!

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

Re: Pasar datos capturados en Formulario a Informe

Mensaje por pmartimor »

Gracias Longi, la verdad es que ahora estoy trabajando con OpenOffice 4.1.5, y por tanto con el método antiguo con el ORB para OpenOffice.
Si hay alguna forma de hacerlo con esto, me sería de gran ayuda saberlo.
En cuanto a la opción de crear una consulta con la fórmula, lo intentaré, aunque ya hice un intento por ahí y había algo que no iba bien, ya os cuento.
Gracias de nuevo y, aunque me repita, te agradecería mucho que me dijeses las posibles opciones de hacerlo con el oracle-report-builder.oxt para OpenOffice.
Saludos.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Longi
Mensajes: 810
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Pasar datos capturados en Formulario a Informe

Mensaje por Longi »

Buenas!

Los informes en el sistema antiguo son documentos de writer, con un formulario que tiene unos campos escondidos y al final termina dando una tabla, pero tiene la posibilidad de añadir subformularios.
Puedes añadir un subformulario y asignas los campos de fecha mínima y máxima (yo suelo hacerlo en la cabecera del informe, aunque lo puedes hacer debajo de la tabla.
Habría que abrir el informe con una macro desde el formulario al que le quieres coger los datos, y en esa macro, primero se recogen los datos que están escritos, y después de abierto el informe, se pegan en los campos que pusiste en ese 'subformulario' fantasma que has hecho.
Si es muy teórico, con un ejemplo sin datos comprometedores, lo arreglamos.
La otra opción, que te sirve para los dos casos es el de la consulta, así que si mandas el ejemplo intentamos la consulta y vemos el efecto.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

Re: Pasar datos capturados en Formulario a Informe

Mensaje por pmartimor »

He optado por hacerlo con una macro sobre una consulta de la forma:
SELECT datosninos.*, CASE WHEN IDNINOS > 0 THEN '05/02/2017' END AS Inicio, CASE WHEN IDNINOS > 0 THEN '30/06/2017' END AS Fin FROM datosninos WHERE (FECHA_BAJA IS NULL OR FECHA_BAJA >= '2017-02-05') AND (FECHA_FUGA IS NULL OR FECHA_CAMBIO >= '2017-02-05') AND FECHA_ALTA <= '2017-06-30' ORDER BY FECHA_ALTA
Las fechas que aparecen las toma de cajas de texto del formulario
Gracias y saludos.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Responder