Power Builder - evaluando expressiones en dw

   
Vista:

evaluando expressiones en dw

Publicado por amilcar (406 intervenciones) el 13/08/2008 13:03:41
hola amigos, tengo esta consulta, resulta que tengo un dw con un campo calculado llamado calculador, a este campo le asigno en la propiedad expression, un string que es la formula que el usuario a generado en base a varias opciones que tiene,

digamos que este string contiene por ejemplo "sueldo basico * 2". y lo asigno de esta manera

1 ) ldst_exp.object.calculador.expression=ls_expresion

// aclaracion!!! en ls_expresion tengo dicho string, obviamento hay formulas mucho mas complejas como esta que pongo a continuacion, todas definidas por el usuario
case ( legajos.legajo_antiguedad when is<10 then 0 when 10 to 24 then ([basico] + [suma fija] + [antiguedad])*5/100 when is>=25 then ([basico] + [suma fija]+[antiguedad] ) * 15 / 100)

Luego yo obtengo este valor leyendo este campo de este forma
ldst_exp.getitemdecimal(1,"calculador").

Hasta ahi todo bien y funciona, el problema surge cuando el usuario arma mal la formula, al asignarle la expression al campo calculado en el punto 1 ) me tira un errror que la expresion es invalida y se me cierra la aplicacion..
Hay alguna forma de evaluar dicha expresion antes de asignarla, estoy buscando pero no logro encontrar ningun valor de retorno al asignarle la expresion al campo desde script..

desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:evaluando expressiones en dw

Publicado por MutouKazuki (11 intervenciones) el 13/08/2008 13:44:57
Creo que deverias usar modify asi podras controlar el error porque esto si da un retorno

ldst_exp.Modify("calculador.Expression='"+ls_expresion+"'")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:evaluando expressiones en dw

Publicado por amilcar (406 intervenciones) el 13/08/2008 14:13:22
tenias razon, modify si reporta el error, gracias por el dato, ya corregi el problema

saludos desde argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar