evaluando expressiones en dw
Publicado por amilcar (407 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.
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


0