Power Builder - Evaluar función en campo de DW

 
Vista:

Evaluar función en campo de DW

Publicado por Omar (11 intervenciones) el 09/10/2003 02:13:24
Saludos, tengo una duda, quiero evaluar una fórmula que el usuario escribe en base a unos campos de un DW, la deseo evaluar, como lo hace el DW Painter, sólo que no sé a que campo asignarle la fórmula(debido a que usando el EVALUATE dentro del DESCRIBE me pide el numero de renglón), he pensado crear un Campo COMPUTE y ahi evaluarla. Si alguien ha hecho algo al respecto se los agradecería debido a que no sé con precisión si sólo debo utilizar EVALUATE o hay otra forma de hacerlo.
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

prueba con esto

Publicado por Victor :-) (116 intervenciones) el 10/10/2003 05:59:33
Omar:
Yo les pido a mis usuarios que pongan formulas en un campo libre de captura en la ventana y luego lo evaluo:
new_syntax = SQLCA.SyntaxFromSQL(' select '+'(123/(456*789))^2 ','Style(Type=Tabular)', error_syntaxfromSQL)

if Len(error_syntaxfromSQL) > 0 then
ls_error= left(error_syntaxfromSQL, Pos(upper(error_syntaxfromSQL), "SELECT")-6)+"'"
messagebox('Error#1 en la Condicion','La Sintaxis de la Condicion es invalida,Por Favor rectifique la sintaxis.~r~n'+ ls_error+'~r~n'+ls_where,STOPSIGN!)
return
end if
Victor:-)
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 esto

Publicado por Victor :-) (116 intervenciones) el 10/10/2003 06:01:57
Con lo anterior los usuarios deben de respetar las formulas, signos de operacion , signos de agrupacion y devolucion de valores validos de SQL.
espero te sirva
atte. Victor:-)
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

Problemas con Evaluate

Publicado por Iván (28 intervenciones) el 02/07/2005 04:09:35
Disculpa Victor, si hice una consulta en el foro, talvez tu sepas algo al respecto, yo estoy en una situación parecida a la del colega, lo que yo hago ya esta evaluado y esta correcto, el problema que tengo es que no se como devolver el resultado de aplicar esa formula, agradeceríoa si me puedes ayudar.
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

para IVAN RE:Problemas con Evaluate

Publicado por Victor //:-) (116 intervenciones) el 04/07/2005 20:20:05
Tu ocupas validacion y extracion de datos, usa esto

string error_syntaxfromSQL,new_syntax,error_create
decimal {2} ldec_resultado=0.00
string ls_formula = '(123/(456*789))^2' //asinas la formula o
ls_formula= sle_1.text //capturas la formula en un SingleLineEdit

//asignas la formula a un campo-sql
new_syntax = SQLCA.SyntaxFromSQL('SELECT '+ls_formula +' as CAMPOX' , 'Style(Type=Form)', error_syntaxfromSQL)

if Len(error_syntaxfromSQL) > 0 then
ls_error= left(error_syntaxfromSQL, Pos(upper(error_syntaxfromSQL), "SELECT")-6)+"'"
messagebox('Error#1 en la Formula','La Sintaxis de la Formula es invalida,Por Favor rectifique la sintaxis.~r~n'+ ls_error,STOPSIGN!)
return
end if

// en tu W_ventana pon un marco de DW vacia y asignale esto:

dw_1.Create(new_syntax, error_create)

IF Len(error_create) > 0 THEN
messagebox('Error#2 en la Formula','La Sintaxis de la Formula es invalida o esta ma delimitado por las comas y comillas,Por Favor rectifique la sintaxis.~r~n'+ error_create,STOPSIGN!)
return
END IF

dw_1.insertrow(1)

ldec_resultado = dw_1.GetITemDecimal(1,'CAMPOX')

messagebox('El resultado de mi formula: '+ls_formula+' es ',ldec_resultado)

//fin
Espero te sirva
atte.
Victor //:-)

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:para IVAN RE:Problemas con Evaluate

Publicado por Iván (28 intervenciones) el 11/07/2005 20:51:15
Pura Vida, ya lo probé, ya logre hacer lo que buscaba realizar, de verdad muy agredecido, 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