Power Builder - funcion

 
Vista:

funcion

Publicado por miguel (10 intervenciones) el 12/06/2003 02:11:55
como hacer una funcion que reciba como parametro un dato tipo string que contenga una operacion aritmetica ej:
(5+5)*3/6. y devuelva el resultado de esa operacion ej: 5.(en el ejemplo)
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:funcion

Publicado por Ricardo (1957 intervenciones) el 12/06/2003 15:49:39
Hola que tal:

En un post anterior, referente a una calculadora, se planteo algo muy similar, evaluar strings. El principio es el mismo, checa las respuestas, con ello de seguro solucionas el problema.

La idea es manejar una fila, donde controlas el dato anterio, el actual y el siguiente, para determinar y evaluar los signos.

Un saludo!
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:funcion

Publicado por pedro (6 intervenciones) el 13/06/2003 20:25:42
Lo que tienes que hacer es trabajar con el sqlsa, te explico como se hace:

creas una funcion y le pasas como parametro la formula (as_formula)

//declara un cursor dinamico
DECLARE lcur_frm DYNAMIC CURSOR FOR SQLSA ;

//para que no exista ;

// Hacemos un Select con una tabla cualquiera para obtener el resultado...
ls_select = "SELECT UNIQUE " + Trim(as_formula) + " FROM catg_objt"
PREPARE sqlsa FROM :ls_select ;
OPEN DYNAMIC lcur_frm ;
FETCH lcur_frm INTO :ldo_return ;
CLOSE lcur_frm;

y te devuelve el valor de la formula




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:funcion

Publicado por pedro (6 intervenciones) el 14/06/2003 00:14:39
Tienes que trabajar con el sqlsa , te explico como hacerlo

Tienes que crearte una funcion que reciba como parametro la formula (as_formula) y devuelva un double

//el script es el sgte :

as_formula = Upper(as_formula)

// Hacemos un Select con una tabla cualquiera para obtener el resultado...
ls_select = "SELECT UNIQUE " + Trim(as_formula) + " FROM catg_objt"
PREPARE sqlsa FROM :ls_select ;
OPEN DYNAMIC lcur_frm ;
FETCH lcur_frm INTO :ldo_return ;
CLOSE lcur_frm;

Return(ldo_return)

//con esto es suficiente , saludos
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

Checa esta página

Publicado por Luis Alberto (3 intervenciones) el 30/12/2003 19:31:27
Encontré una aplicación que tal vez sea lo que estás buscando, es algo sencillo, burdo pero ingenioso.

http://www.pbdr.com/software/comp/examples.htm

Expression Evaluation Object
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