gvSIG bugs #5199

Cuando tenemos un campo que se llama igual que la capa salta error en la calculadora de campos

Added by Mario Carrera about 4 years ago. Updated about 4 years ago.

Status:Closed% Done:

0%

Priority:UrgentSpent time:-
Assignee:Óscar Martínez
Category:Document table
Target version:2.5.1-3015
Severity:Minor Add-on version:
gvSIG version:2.5.1 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

Si tenemos un campo que se llama igual que la capa, si ejecutamos la calculadora de campos sobre dicho campo salta error.

Ej.: Capa "Parcela" de Catastro, que tiene un campo "Parcela" de tipo texto. Si aplico la expresión:

TOINTEGER(Parcela) 

salta error y no lo hace.

Adjunto SHP de ejemplo.

PARCELA.DBF (1.05 MB) Mario Carrera, 03/11/2020 01:18 PM

PARCELA.SHX (51.8 KB) Mario Carrera, 03/11/2020 01:18 PM

PARCELA.SHP (2.14 MB) Mario Carrera, 03/11/2020 01:18 PM

gvSIG.log (103 KB) Álvaro Anguix, 04/10/2020 12:23 PM

gvSIG.log.1 (512 KB) Álvaro Anguix, 04/10/2020 12:23 PM

gvSIG.log.2 (512 KB) Álvaro Anguix, 04/10/2020 12:23 PM

gvSIG.log.3 (512 KB) Álvaro Anguix, 04/10/2020 12:23 PM

error-calccampos (68 KB) Mario Carrera, 05/06/2020 10:28 AM

gvSIG-error.zip (45.9 KB) Mario Carrera, 05/06/2020 10:31 AM

Associated revisions

Revision 44891
Added by Óscar Martínez about 4 years ago

refs #5199 los campos de tipo integer utilicen el método del formater para integers

Revision 44892
Added by Óscar Martínez about 4 years ago

refs #5199 los campos de tipo long utilicen el método del formater para long

Revision 44897
Added by Óscar Martínez about 4 years ago

refs #5199 Ahora usa el coercion

History

#1 Updated by Álvaro Anguix about 4 years ago

  • Target version set to 2.5.1-3044

Por lo que parece al poner en una expresión el nombre, no sabe si se refiere a la capa o al campo.
Da "Runtime error. Problems calling function 'TOINTEGER' with args "PARCELA")

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

  • Priority changed from Normal to High

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

  • Assignee set to Joaquín del Cerro Murciano

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

  • Priority changed from High to Urgent

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

  • Description updated (diff)

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

  • Status changed from New to Fixed

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

Cuando se añade una variable con el nombre de la tabla asociada a la expresion, ese nombre pasa a tener el valor de la tabla. Esto esta heco asi a proposito ya que hay casos donde es necesario indicar de que tabla queremos coger los campos. El problema viene cuando hay un campo que se llama igual que la tabla. En ese caso para el nombre nos devuelbe la tabla y no el campo, con lo que si no lo usamos en el contexto de una tabla nos dara un error. Cuando se da este caso, podemos acceder al campo con "TABLA.CAMPO".

He modificado el constructor de expresiones para que intente dar un mensaje de error mas acorde con lo que esta pasasndo, y pueda presentar "sugerencias" que den pistas de cual puede ser el problema en caso de que el usuario no se de cuenta y solo ponga el nombre de la tabla cuando este coincida con el de algun campo. Ademas he hecho que la busqueda simplificada, cuando construlle la expresion de busqueda use la nomenclatura de "TABLA.CAMPO", con lo que esta aparecera siempre en la pestaña de avanzado.

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

  • Target version changed from 2.5.1-3044 to 2.5.1-3014

#9 Updated by Álvaro Anguix about 4 years ago

Da errores. Desde la calculadora de campos le doy a aplicar y parece que funciona (se ve como se rellena la columna), pero al darle a aceptar se quedan de nuevo los campos en blanco, y empiezan a aparecer errores en la barra de estado, dejando la capa en edición.
Adjunto logs

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

  • Target version changed from 2.5.1-3014 to 2.5.1-3015

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

  • Assignee changed from Joaquín del Cerro Murciano to Óscar Martínez

#12 Updated by Óscar Martínez about 4 years ago

El estado del error actual no está relacionado con la calculadora de campos. Habían dos.

1) el error que aparece es por no poder transformar algunos valores del campo parcela porque contiene letras como A0 en el registro 300.

ERROR 79663 Thread-2 org.gvsig.scripting.app.extension.ScriptingUtils - Exception updated features: org.gvsig.expressionevaluator.ExpressionRuntimeException: Problems calling function 'TOINTEGER' with args GETATTR

2) A la hora de cerrar edición y formatear el campo Integer, no usaba el formateador adecuado del dbf para ese tipo.

#13 Updated by Óscar Martínez about 4 years ago

  • Status changed from New to Fixed

#14 Updated by Álvaro Anguix about 4 years ago

  • Status changed from Fixed to Closed

#15 Updated by Mario Fevre about 4 years ago

Alguien podrá decir si esta solución resuelve un problema presente en el build 2915, por el cual da error selección por atributos de campos cuyo nombre contenga espacios en blanco?

#16 Updated by Álvaro Anguix about 4 years ago

Mario, he probado lo que dices en el build 3021 y no da error, por lo que el caso que comentas también parece resuelto.

#17 Updated by Mario Carrera about 4 years ago

Lo he probado y lo hace bien, pero salta un error en la parte inferior. En el log no se ve error (aunque sí que se han creado 3 ficheros log con el mismo mensaje repetido muchas veces). En la consola sí que se ve el error que ha saltado.

Adjunto captura con el error que salta en la consola por si es importante. Y adjunto los log también con el mensaje que se repite.

#18 Updated by Mario Carrera about 4 years ago

Mario F., yo también he probado a hacer un filtro en el BN 3020 sobre un csv con espacios en los nombres de campo y lo ha hecho correctamente.

Si es sobre un shp es porque las tablas dbf no deben tener espacios, por lo que habría que renombrar el campo y quitar los espacios. Es posible que te venga de una exportación de otro formato y te haya mantenido los espacios.

¿Es ese el caso?

#19 Updated by Álvaro Anguix about 4 years ago

Yo he renombrado un campo de un shape a un nombre con espacios "NAME LONG" y ha funcionado todo correcto.

Also available in: Atom PDF