Power Builder - Calculo de una formula

 
Vista:

Calculo de una formula

Publicado por Sergio (52 intervenciones) el 05/12/2002 14:24:34
Hola,

Tengo que hacer un programa de análisis contable y sacar los totales de varias fórmulas. Una fórmula podria ser esta (salarios):

"( ( ( 64007 + 6420 + 6421 + 645 + 646 ) / ( 6400 - 640007 ) ) * ( 640000 + 640005 + 640006 ) ) + 640000 + 6402"

Hay alguna función que me pueda sacar el resultado de la fórmula suponiendo que esta es un string o tendría que hacer un script que me desglosara la fórmula por partes, para poder calcularla?.

Gracias de antemano.
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:Calculo de una formula

Publicado por Jorge (900 intervenciones) el 05/12/2002 16:37:36
Hola
Quiza ahora te ayude yo

Fijate si es lo que necitas

dw_1.SetItem(fila_dw_1,"Formula",Expresion)
Formula = '"'+ Expresion + '"'
dw_1.Object.calculador.Expression = Formula
Calculo = dw_1.Object.calculador[fila_dw_1]
dw_1.Setitem(fila_dw_1,Impacta,Dec(Calculo))

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

Atencion Listeros FORMULAS!!!

Publicado por Victor //:-) (116 intervenciones) el 06/12/2002 07:53:16
Hola Sergio, espero te sirva y nuestros amigos de este Web:
//Evento Clicked del boton cb_calcular
//debe exitir en la ventana actual un marco de DW llamado dw_resultado

string error_syntaxfromSQL, error_create
string ls_sql, new_syntax
string ls_cadena
decimal ldec_resultado=0

//////AQUI ASIGNA TU FORMULA
////// PUEDES PONE UN sle_captura_foruma.text
ls_cadena="( ( ( 64007 + 6420 + 6421 + 645 + 646 ) / ( 6400 - 640007 ) ) * ( 640000 + 640005 + 640006 ) ) + 640000 + 6402"

ls_sql = 'SELECT '+ls_cadena+ ' as calculo'

new_syntax = SQLCA.SyntaxFromSQL(ls_sql,'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 Formula es invalida,Por Favor rectifique la sintaxis.~r~n'+ ls_error+'~r~n'+ls_cadena,STOPSIGN!)
return
end if

dw_resultado.Create(new_syntax, ls_error)

IF ls_error <> "" THEN
messagebox('Error#2 en la Condicion','La Sintaxis de la Formula es invalida,Por Favor rectifique la sintaxis.~r~n'+ls_error,STOPSIGN!)
return
END IF

dw_resultado.SetTransObject(SQLCA)

dw_resultado.Retrieve()

ldec_resultado=dw_resultado.GetItemNumber(1,'calculo')
%0
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:Calculo de una formula

Publicado por Sergio (52 intervenciones) el 09/12/2002 08:29:38
Gracias por vuestro interés,

He probado las dos soluciones, pero no he tenido éxito. :_(

Jorge, podrias aclararme un poco más tu solucion.

Victor, he probado tu solución con una operación sencilla 5 + 2, pero me da sintax error en la fórmula he probado poner la operación de varias formas, sin espacios, entre parentesis, entre comillas dobles, entre comillas simples, etc...

ls_cadena= "5 + 2" ls_cadena= "5+2"
ls_cadena= "(5 + 2)" ls_cadena= "(5+2)"
ls_cadena= "'5 + 2'" ls_cadena= "'5+2'" //comillas simples
ls_cadena= "'(5 + 2)'" ls_cadena= "'(5+2)'" //comillas simples

Victor, me podrías echar una mano?

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