anonymous Log in
Search
Recents:
v3.0
gxpatterns-l
variable calculada en base a una funcion
22/08/18 17:53

Luis Fabres

Replies: 3

Buenas tardes.

Trabajo con Genexus ev3 u15 C# sql server y WWP

Tengo una transacción, la cual genera un grid con movimientos contables y
despliega columnas que existen en la transacción. Hasta ahí todo bien.
Debo agregar una columna, la cual debe mostrar un valor en base a un cálculo
algo complejo.
Para lograr insertar esta columna en el grid, la agregue como un
GridVariable desde la raíz del grid. El campo se agregó correctamente, y
luego en las propiedades de la nueva columna en Load Code, me aparece una
ventana donde puedo ingresar la fórmula para calcular dicho valor.

Necesito poder en ese punto invocar una función o procedimiento, para poder
realizar dicho calculo.
Como debo llamar a esta función? He estado buscando información de cómo
hacer esto, pero no encuentro un ejemplo claro al respecto.
Alguien tiene algún ejemplo de cómo poder llamar a una función en esta
ventana?

Agradecido de antemano
Luis
Replies

jbusquets@grespania.

23/08/18 05:30

Hola,

No debería tener ningún problema el llamar una función en este código. Lo que hace wwp con lo que pongas en esa propiedad es simplemente "pegar" el código en el fuente de tu programa, durante la función load, así que lo que pongas ahí es lo que luego verás en el fuente, llamadas a procedimientos externos incluidos.

Eso sí, no conozco tu aplicación, pero yo, siempre que tengo un caso como el que me comentas, es decir, que hay una columna adicional en el grid del workwith de una transacción en el que debería poner un valor calculado, me pienso si debería hacerlo en lugar de utilizando una variable y colocando el código de carga en ese programa particular, mas bien definiendo un atributo calculado a nivel de la transacción, y éste lo asocio a un procedimiento de cálculo (habitualmente he de asociarlo a una función , ya que las fórmulas a nivel de atributo calculado suelen quedarse un poco cojas, y a veces actúan de forma un tanto inesperada).     La ventaja de este método es que a partir de aqui tienes el atributo disponible para mostrarlo no solo en tu wp sino en cualquier otro sitio que lo demande en el futuro.  Naturalmente, esto no puede hacerse si la fórmula para el cálculo de esta columna utiliza parámetros específicos que no están en el nivel de la transacción, por ejemplo, un campo de "fecha de cálculo" que pongas en la cabecera del webpanel o algo por el estilo.

Reitero: Genexus está pensado para utilizar atributos mejor que variables, así el trabajo se hace una sola vez. Cualquier concepto , almacenado o calculado, que pueda ser definido como un atributo, debería definirse como tal.


Saludos




El 22/08/2018 a las 22:53, Luis Fabres

frosello

23/08/18 10:46
Hola Luis, cómo estás? Tal como menciona Jesús dentro de esta propiedad puedes colocar lo que quieras ya que el pattern copia eso dentro del evento grid.load. Puedes poner un llamado a un procedimiento, un foreach o cualquier otra cosa que necesites para cargar tu variable. [image: image.png] Saludos, El jue., 23 ago. 2018 a las 5:48, Jesus Busquets ()

Luis Fabres

23/08/18 11:39
Estimados, muchísimas gracias por la ayuda, efectivamente de la manera en que lo indican pude ejecutar un procedimiento que rescata el valor que necesito y dejarlo como una columna. Nuevamente muchas gracias por la ayuda Saludos cordiales Luis


Back to gxpatterns-l