[Gvsig_usuarios] Expresiones avanzadas calculadora de campos

"Jose Manuel Vivó Arnal ( Chema ) "Jose Manuel Vivó Arnal ( Chema )
Mar Feb 1 17:00:22 CET 2011


Hola Alejandro.


El 01/02/11 11:07, Alejandro Lorenzo (Genea Consultores) escribió:
> Hola,
>
> Estoy comenzando con gvSIG, concretamente con la calculadora de campos.
>
> Me encuentro en que la forma de trabajar con expresiones avanzadas, es 
> en Phyton, y no conozco este lenguaje.
>
> Intenté convertir mis expresiones de vb a Phyton. En la página 
> http://vb2py.sourceforge.net/index.html, existe un convertidor de 
> código de vb a Phyton y este es el resultado:
>
>     prueba = str()
>
>     if [EMPRESA_CO] == 'XXX' and [Ejecutado] == 'SI':
>
>      [prueba] = 'Correcto'
>
>     elif  [EMPRESA_CO] == 'XXX' and [Ejecutado] == 'NO':
>
>     [prueba] = 'Inorrecto'
>
>     else:
>
>     prueba = '_'
>
> Genero el fichero .py, pero no funciona.
Me da la impresión que lo que te estás equivocando es en la forma de 
aplicar la expresión.

Prueba con esto:

def miPrueba(EMPRESA_CO,Ejecutado):
   prueba = '_'
   if EMPRESA_CO == 'XXX' and Ejecutado == 'SI':
     prueba = 'Correcto'
   elif EMPRESA_CO == 'XXX' and Ejecutado == 'NO':
     prueba = 'Inorrecto'
   return prueba

miPrueba([EMPRESA_CO],[Ejecutado])


Nota: MUUUCHO OJO con los sangrados, en python (bueno, realmente es 
jython ya que es el port de pyhton a java) sirven apara delimitar la 
expresiones (no hay "end if" ni llaves "{}")

Como ves, he definido una función "insitu" que me ha ayudado. También 
puedes definir varias funciones y meterlas en un fichero ".py" y 
cargarlas desde la pestaña "avanzado" de la calculadora.

Siempre tienes que tener en cuenta que, la expresión de la calculadora, 
espera que el resultado sea un valor.

Si quieres saber más, mira la documentación de python de la versión de 
gvSIG (creo que es la 2.4.2) que la puedes encontrar aquí:

http://docs.python.org/release/2.4.2/


>
> Lo que me gustaría sería conseguir una expresión condicional que 
> evaluase dos, o más campos, y en función del valor de los registros, 
> rellenar un nuevo campo con los valores asignados a cada una de las 
> combinaciones anteriores.
>
> Muchas gracias
>
> Alejandro
>
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
>
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios

Espero que te sea de ayuda.

Un Saludo.
Chema.

-- 
Jose Manuel Vivó Arnal
DiSiD Technologies S.L. (http://www.disid.com)

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20110201/78f1d6fc/attachment.htm 


Más información sobre la lista de distribución gvSIG_usuarios