[RESUELTO] Duplicación de datos en informe

Discute sobre las herramientas de la base de datos
Responder
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

[RESUELTO] Duplicación de datos en informe

Mensaje por Fermarin »

Hola:
Acudo con frecuencia a este foro en busca de ayuda, dada mi evidente falta de experiencia en LibreOffice Base, en esta ocasión es para resolver ya el último paso del proyecto que comencé para pasar mi base Fonoteca de Access a LibreOffice, , mas o menos como la tenía allí.
Se trata de los dos últimos botones (Búsqueda por Título y Búsqueda por Disco) del FORM.CONSULTAS, que abren los formularios forObrasxTitulo y forObrasxDisco, respectivamente y vuelcan la información en los informes respectivos, InformexTitulo e InformexDisco.
En el primero (buscar por título):
1) cuando el título a buscar contiene un apóstrofo, ejemplo: J’AY MIS MON CUER, o L’ORFEO.SELECCION, da error.
2) Cuando el intérprete solista es uno solo, no hay problema, pero si son 2 repite 2 veces cada uno, si son 3 repite 3 veces cada uno, etc.
En el segundo (buscar por num. De disco):
cuando el solista es uno funciona bien aunque haya orquesta y director, pero siempre que el disco tenga un solo título, si tiene mas de una obra (títulos), repite el solista tantas veces como títulos tenga más las repeticiones de los solistas.
Yo me temo que el problema va estar en los filtros (FiltroTitulo y FiltroDisco), que están hechos sobre la tabla FONOTECA, ya que TITULO y DISCO son campos de dicha tabla y carecen de tabla propia y de su respectiva clave (IdTitulo e IdDisco) por lo que la unión del filtro a la tabla VisTotal1 en las consultas ConInformeTitulo y ConInformeDisco se realiza entre campos de texto[VARCHAR] en lugar de Entero[INTEGER].
¿Es posible aportar alguna solución?
Dejo aquí abajo el enlace de la Base subida a Dropbox, dado el tamaño.
Gracias anticipadas por vuestra atención.
https://www.dropbox.com/s/2ohlyuafa435c ... a.odb?dl=0
Última edición por mauricio el Sab Abr 01, 2017 3:29 pm, editado 1 vez en total.
Razón: Marcar icono de resuelto
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Duplicación de datos en informe

Mensaje por RMG »

Hola Fermarin

El problema de todo esto radica en el origen. Yo empece a darte soluciones sobre lo que tenias, pero lo mejor es haber empezado bien.

La vista total no recoge todos los campos cuando sí debería hacerlo, uno cree que no le van ha hacer falta y después se da cuenta que no es así. Mi sugerencia, aunque te cueste un poco más es que lo hagas así.

Si lo haces así a la hora de crear los filtros puedes trabajar con los Id y ya no tendrás los problemas de los apóstrofes ni duplicidades.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

Re: Duplicación de datos en informe

Mensaje por Fermarin »

Muchas gracias por la sugerencia:
Siguiendo el consejo he creado una nueva consulta con todos los campos para generar una tabla en modo vista "VisTotal" que ya contiene todos los campos incluidos los Id, en principio para generar un FiltroTitulo, y utilizando VisTotal, generar un CoinformeTitulo para mediante el formulario fortObrasxTitulo vuelque la información en el InformexTitulo.

Luego pensaba hacer lo mismo con la búsqueda por Nº de Disco.

Pero no lo consigo en modo alguno, genero el filtro:

Código: Seleccionar todo

SELECT "IdRelacion" FROM "FONOTECA" WHERE "TITULO" = '6 CANCIONES'
y cuando ejecuto el formulario "forObrasxTitulo" me da error e incluso me cambia la expresión del filtro.

Por tanto sigo atascado en el mismo punto.

He vuelto a subir la BASE a Dropbox, y el enlace para verla es : https://www.dropbox.com/s/rg8urvuabu9zd ... 2.odb?dl=0
De antemano quiero disculparme por mi torpeza.

:knock:
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
migwer
Mensajes: 6
Registrado: Mar Jun 16, 2015 9:04 pm
Ubicación: México

Re: Duplicación de datos en informe

Mensaje por migwer »

Lo que quieras que no se repita mételo en un grupo. Usa una cabecera de informe (contestando a tu primer planteamiento).
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

Re: Duplicación de datos en informe

Mensaje por Fermarin »

Muchísimas gracias, migwer, por la aclaración, no tenía nada claro lo de la relación entre agrupamiento y cabeceras, y muy confusamente los efectos en el detalle.

Ha quedado resuelta mi primera cuestión de las repeticiones. Ahora sí lo he entendido.

Además en la consulta de búsqueda por Número de Disco, ya no es necesario realizar ningún retoce, ya que funciona perfectamente con la modificación hecha en el informe al haber creado una cabecera de grupo y pasado a ella la información que entes tenía en el detalle.

Pero ahora sigo con el problema de la otra cuestión: "cuando el título a buscar contiene un apóstrofo, ejemplo: J’AY MIS MON CUER, o L’ORFEO.SELECCION, da error."

Y sigo pensando que el problema está en el filtro, que no sé exactamente como lo tengo que construir, ya que a pesar de que ahora la tabla VisTotal si que recoge toda la información de la Base, al ejecutar el formulario "forObrasxTitulo" me da error: "No se pudo abrir el formulario InformexTitulo" y al editar la consulta "FiltroTitulo" me ha cambiado la expresión que antes tenía por esta otra:

Código: Seleccionar todo

SELECT TITULO FROM VisTotal WHERE TITULO ='6 CANCIONES'
.

No sé donde está el error que cometo y cual es.
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Duplicación de datos en informe

Mensaje por RMG »

Hola,

Puesto que se dispone de los id en la vista total y ante tu problemática con los apóstrofos (que es real), se le puede dar otro enfoque a los filtro. En vez de crear onsultas creamos una tabla auxiliar que haga esta función. Mira el ejemplo con el filtro del título, los demás te los dejo para ti.

-Creada una nueva tabla, se llama tabFILTRO.
-fORMULARIO forObrasxTtitulo se vincula a esta tabla. Solo le permites modificar registro.
-Cuadro combinado se cambia a cuadro de lista, en la SQL recuerda poner además del campo a visualizar, el campo ID que es el que queda grabado en la tabla. Importante: donde pone campo ligado debes de poner el número que corresponda a la columna empezando a contar por la izquierda. En el ejemplo tiene el 1 pero si utilizas otra tabla y el id que quieres esta en la columna 7 de la tabla, debes poner este número.
-Botón para abrir el informe, en la propiedad información adicional debes poner el nombre del informe a abrir. Tiene como acción guardar el registro y además la macro que abre el informe.
-Consulta ConInformeTitulo, cambiar la tabla por la consulta.

Creo que con esto solucionamos el tema de los filtros. Lo único a tener en cuenta es que cuando abres el formulario aparece el último filtro creado, pero esto creo que no tiene el mayor problema.

https://mega.nz/#!V1FT0DRT!uxMihPXEdOfj ... 6e42TuqLQY

Saludos

NOTA: En la vista total, no aparecen todos los registros de la FONOTECA. Tenlo en cuenta a la hora de hacer pruebas.
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
migwer
Mensajes: 6
Registrado: Mar Jun 16, 2015 9:04 pm
Ubicación: México

Re: Duplicación de datos en informe

Mensaje por migwer »

He mejorado el manejo de los forms en tu bd, si te gusta coservalo y si no, conserva el anterior.
Fonoteca_2.odb
:D
Última edición por migwer el Jue Abr 06, 2017 3:54 am, editado 1 vez en total.
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

Re: Duplicación de datos en informe

Mensaje por Fermarin »

Muchas gracias por vuestras aportaciones.

Lo de la Tabla Filtro en lugar de la Consulta Filtro es algo que no se me hubiese ocurrido nunca, entre otras cosas porque no sabía que pudiera hacerse.

Hecho de menos un buen y completo manual sobre BASE en este LibreOffice que permitiera conocer y resolver todas estas cuestiones. La Ayuda del programa es muy básica e insuficiente.

Gracias a la existencia de este foro y a la inestimable colaboración de ustedes se puede avanzar en estas cuestiones, pero entiendo deben resultarles tediosas y repetitivas tantas intervenciones en temas que para mí son casi “misteriosos y ocultos”, cuando para vdes. son tan claros y evidentes en la mayoría de las ocasiones.

No me había dado cuenta que la tabla Vista Total, que es un modo vista de la Consulta Total, no abarcaba la totalidad de la FONOTECA. Veo que al incluir todos los Id, se omiten aquellos registros en los que no hay información en algunos campos (ejemplo no hay Orquesta, Director, Solista, instrumento, etc.). No se por qué ocurre, pero si ha de ser así esta tabla no me sirve para obtener resultado en la consulta Buscar por Título.

Me va a tocar hacer otra Vista Total que carezca de los Id de esos campos. Es decir que sólo contenga el IdRelacion, que está en todos los registros, ya que todos los registros tienen también TITULO.
Me pondré a ello si no hay otro modo y ya informaré si queda resuelto el tema.

Muy agradecido
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Duplicación de datos en informe

Mensaje por RMG »

Hola,

Aquí tienes una vista total completa. He tenido que usar una vista de apoyo (vSOLISTAS). Recuerda que con la tabla nueva para filtrar, puedes anular las consultas y sus respectivas macros.
Revisa la tabla solistas, creo que tienes dos registros que les falta la idRelacion.

https://mega.nz/#!JsNhTKqa!JoKYwYC-HA7_ ... h6v2NKiwnk

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

Re:RESUELTO. Duplicación de datos en informe

Mensaje por Fermarin »

Hola:
Muchísimas gracias, genial solución. Lo dicho anteriormente lo confirmo, imposible que yo por mí mismo hubiese podido dar solución.

Doy por resuelto el tema.

Mi más sincera felicitación al foro y a des. por sus ayudas.
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
Responder