Processing math: 100%

8 votos

¿Actualizar automáticamente el valor de un campo en una columna en función de un cambio en otra columna de la misma tabla?

Al editar quiero poder cambiar los atributos de un campo y al hacerlo permitir la actualización automática de otro campo en la misma tabla de atributos.

Esencialmente tengo una capa con un código, descripción e información de la leyenda.

Me gustaría poder editar el código y que la descripción y la información de la leyenda se actualicen con esta edición con su descripción e información de la leyenda correctas.

¿Hay alguna manera de hacer esto dentro de las herramientas de ArcMap o un script asociado?

1 votos

Podrías únase a una tabla que contiene el código, la descripción y la información de la leyenda a la clase/tabla de características con el código que está editando.

4voto

aditya Puntos 111

Dependerá del tipo de base de datos espacial con la que se trabaje, por ejemplo, shapefile, geodatabase personal o de archivo, ArcSDE, etc.

Si está trabajando con una base de datos SDE en un RDBMS tradicional (MS SQL, ORACLE, Postgres) podría utilizar un activación de la base de datos para ayudar a actualizar automáticamente los campos cuando se realiza un cambio en otro.

Si trabajas con un shapefile o pgdb/fgdb, no tendrás esta opción ya que los triggers no son compatibles con sus estructuras de base de datos.

3voto

steveax Puntos 316

También puede intentar crear una tabla de relaciones si está trabajando con una geodatabase. Consulte el siguiente enlace:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//004t00000006000000.htm

1 votos

Una unión le permitirá consultar, etiquetar y simbolizar las columnas unidas, mientras que una clase de relación no lo hará: help.arcgis.com/es/arcgisdesktop/10.0/help/index.html#//

0 votos

Supongo que entonces no he entendido bien la pregunta. Estaba pensando en cuando hicimos un proyecto de señalización de la ciudad y Obras Públicas estaba utilizando un código MUTCD diferente al nuestro. Utilizamos una clase de relación atribuida para que, a medida que añadíamos nuevas señales con nuestro código MUTCD, el código que utilizaba Obras Públicas se unía automáticamente a nuestra tabla para que pudiéramos etiquetar las señales utilizando su código en lugar del nuestro. Estaba pensando que si la descripción y la información de la leyenda estuvieran ligadas a un valor específico en la tabla de atributos, esto funcionaría.

0 votos

Ciertamente se pueden utilizar tanto las clases de relación como las uniones, sólo estaba señalando que definitivamente necesitarás una unión si quieres utilizar la tabla relacionada para consultar/simbolizar/etiquetar.

2voto

Hameno Puntos 129

Podrías crear un simple calculador de campos en python script que ejecutes para actualizar los valores del campo descripción cuando termines de editarlo, ver ejemplo abajo:

def checkValue(c,d):
  if c == 1:
    return 'one'
  if c == 2:
    return 'two'
  if c == 3:
    return 'three'
  if c == 4:
    return 'four'

enter image description here

0 votos

Esto es exactamente lo que estaba buscando: una cláusula UPDATE.

1voto

zfz Puntos 111

Los campos definidos por el usuario en la clase de características a nivel de escritorio no pueden ser dinámicos. Lo más cercano que puedes conseguir es ejecutar un script de arcpy bajo demanda o programado. Podrías ponerte friki y jugar con los métodos para activar el script.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X