gvSIG bugs #4837

Campos vacíos al unir tablas

Added by Alonso Morilla about 6 years ago. Updated about 5 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:-
Category:Document table
Target version:2.5.0-2913 (rev. org.gvsig.desktop-2.0.241)
Severity:Minor Add-on version:
gvSIG version:2.4.0 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

Cuando se intenta unir una tabla de atributos de un shape cargado en la vista con otra tabla (dbf, csv o xls) se realiza la unión de los campos de la segunda tabla, pero aparecen todos los registros vacíos. Ocurre tanto en windows como en linux.

Si se realiza la unión de dos tablas sin que estas estén cargadas en la vista (sólo dentro del ámbito de tablas) sí lo realiza correctamente. Sin embargo, lo ideal sería poder realizar la unión de una tabla externa con una capa ya cargada en la vista.

datos-join.zip.nc (291 KB) Joaquín del Cerro Murciano, 02/28/2019 05:35 PM

Associated revisions

Revision 44165
Added by Joaquín del Cerro Murciano about 5 years ago

refs #4946, #4837 . Correcciones para acceder a los metadatos de la capa correctamente cuando se anidan varias transformaciones, por ejemplo un capa de eventos y luego un join, y se quiere acceder a la proyeccion.

Revision 44166
Added by Joaquín del Cerro Murciano about 5 years ago

refs #4946, #4837 . Correcciones para acceder a los metadatos de la capa correctamente cuando se anidan varias transformaciones, por ejemplo un capa de eventos y luego un join, y se quiere acceder a la proyeccion.

History

#1 Updated by Álvaro Anguix about 5 years ago

  • Target version set to 2.5.0-2930-final
  • Category set to Document table

#2 Updated by Joaquín del Cerro Murciano about 5 years ago

  • Target version changed from 2.5.0-2930-final to 2.5.0-2913 (rev. org.gvsig.desktop-2.0.241)

#4 Updated by Joaquín del Cerro Murciano about 5 years ago

Los pasos que estoy siguiendo:

  • Cargo la tabla "coordenadas.dbf"
  • Le aplico una transformacion de "thema de eventos" para obtener una capa.
  • Se me crea en la vista la capa "Event layer"
  • Desde la vista muestro la tabla asociada a la capa "Event layer", para que me aparezca en la lista de documentos tabla.
  • Cargo la tabla "Avistamientos.csv". He de cambiar el separador que viene por defecto y poner la coma.
  • Creo un join (tools->Transform->create) y seleccion "join".
  • Selecciono como primera tabla "Table of attributes: Event layer"
  • Selecciono como segunda tabla "Avistamientos"
  • Dejo los valores por defecto y selecciono el atributo "CHOHESION"
  • Siguiente y finish

Se produce el siguiente error:

 INFO 326818 [AWT-EventQueue-0] (DefaultActionInfo.java:304) - org.gvsig.daltransform.app.mainplugin:org.gvsig.daltransform.app.mainplugin.DataTransformExtension.execute('CREATE')
 INFO 449781 [AWT-EventQueue-0] (FeatureTableModel.java:349) - DelayAction.run[1] begin
 INFO 449826 [AWT-EventQueue-0] (FeatureTableModel.java:380) - DelayAction.run[0] end
ERROR 556749 [AWT-EventQueue-0] (DataTransformSelectionAction.java:145) - Error loading the layer
org.gvsig.fmap.mapcontext.exceptions.LoadLayerException: Can´t load the layer Join.
        at org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:190)
        at org.gvsig.fmap.mapcontext.impl.DefaultMapContextManager.createLayer(DefaultMapContextManager.java:581)
        at org.gvsig.daltransform.swing.impl.DataTransformSelectionAction.performAction(DataTransformSelectionAction.java:126)
        at jwizardcomponent.DefaultJWizardComponents.finishButton_actionPerformed(Unknown Source)
        at jwizardcomponent.DefaultJWizardComponents$4.actionPerformed(Unknown Source)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6589)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
        at java.desktop/java.awt.Component.processEvent(Component.java:6354)
        at java.desktop/java.awt.Container.processEvent(Container.java:2261)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4966)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2319)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4914)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4543)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4484)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2305)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
        at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:50)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
        at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
        at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
        at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
        at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
        at java.desktop/java.awt.Component.show(Component.java:1674)
        at java.desktop/java.awt.Component.setVisible(Component.java:1621)
        at java.desktop/java.awt.Window.setVisible(Window.java:1031)
        at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
        at org.gvsig.coreplugin.mdiManager.NewSkin.addJDialog(NewSkin.java:692)
        at org.gvsig.coreplugin.mdiManager.NewSkin.addWindow(NewSkin.java:301)
        at org.gvsig.daltransform.app.mainplugin.DataTransformExtension.execute(DataTransformExtension.java:69)
        at org.gvsig.andami.actioninfo.impl.DefaultActionInfo.execute(DefaultActionInfo.java:307)
        at org.gvsig.andami.actioninfo.impl.DefaultActionInfo.actionPerformed(DefaultActionInfo.java:352)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:369)
        at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:980)
        at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1024)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6589)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
        at java.desktop/java.awt.Component.processEvent(Component.java:6354)
        at java.desktop/java.awt.Container.processEvent(Container.java:2261)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4966)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2319)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4914)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4543)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4484)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2305)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4798)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
        at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
        at org.gvsig.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:50)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: The attribute CRS does not exist in a DynObject of the DynClass transform
        at org.gvsig.fmap.dal.feature.AbstractFeatureStoreTransform.getDynValue(AbstractFeatureStoreTransform.java:166)
        at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStoreTransforms.getDynValue(DefaultFeatureStoreTransforms.java:360)
        at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.getDynValue(DefaultFeatureStore.java:2544)
        at org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:183)
        ... 94 more

#5 Updated by Joaquín del Cerro Murciano about 5 years ago

Bueno, despues de corregir algunos errores que se habian generado a raiz de las corecciones relacionadas con #4946, obtengo ya la union de las tablas en la que, efectivamente, observo que la mayoria de los campos de la union salen en blanco, curiosamente todos menus uno.

Mirando mas detenidamente las tablas veo, que efectivamente solo hay un registro en el que coincidan los valores ID y AVISTAMIEN ¿¿??

#6 Updated by Joaquín del Cerro Murciano about 5 years ago

Vale, al cargar la tabla CSV hay que indicar en la "Configuracion regional" "Español".
Con eso ya carga la tabla correctamente, y tras el join sale lo que se esperaba.

Ya que el error que me estaba dando estaba relacionado con una correccion posterior al alta del ticket, me inclino a pensar que cuando le dio el error al usuario, le paso lo mismo que a mi, y no selecciono correctamente la configuracion regional al cargar el CSV.

#7 Updated by Joaquín del Cerro Murciano about 5 years ago

  • Status changed from New to Fixed

#8 Updated by Álvaro Anguix about 5 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF