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.
[RESUELTO] Pasar datos capturados en Formulario a Informe
[RESUELTO] Pasar datos capturados en Formulario a Informe
Ú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.
Re: Pasar datos capturados en Formulario a Informe
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!
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
Libreoffice 6.4.2, en Windows 10
Re: Pasar datos capturados en Formulario a Informe
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.
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.
Re: Pasar datos capturados en Formulario a Informe
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!
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
Libreoffice 6.4.2, en Windows 10
Re: Pasar datos capturados en Formulario a Informe
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.
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.