Power Builder - calculo

   
Vista:

calculo

Publicado por TANO (75 intervenciones) el 01/11/2007 14:24:44
Muchachos pido ayuda, necesito definir formulas en un editmask en una ventana, la formula incluye valores numericos y variables globales del programa, ejemplo: ( 20 * 0.11 * var1 ) / var2. Al apretar un boton se debe calcular e informar el resultado. Desde ya muchas gracias. Saludos cordiales.
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

Publicado por alberto (73 intervenciones) el 01/11/2007 18:01:07
te recomiendo lo siguiente.

antes de calcular la fórmula, el texto que la contiene debe pasar por un pre procesador, que permita reemplazar las variables globales por sus valores puntuales.

te recomiendo que las variables globales comiencen con un caracter especial que indique la presencia de las mismas.

Ej:
string formula = "( 20 * 0.11 * :var1 ) / :var2" fíjate en los : antes de cada variable.

segundo: aquí hay un problema de lógica, debido a que si vas a analizar cada variable global y reemplazar por el valor, vas a tener que preguntar y asignar de manera fija cada una de ellas.

entonces se soluciona así.
por un lado tienes tus variables globales, con sus valores puntuales.
por otro lado debes tener una clase que contenga dos arrays, uno de tipo string y otro de tipo any.

la idea es tener una asociación entre la variable global y su valor especificando un nombre para acceder de forma indexada.

//global variables
double g_var1 = 10

//variable registry : es un objeto que contiene los dos arrays
vreg.registerVariable("VAR1", g_var1)

//luego, para reemplazar la fórmula, necesitarías un método que permita tomar un valor //según su key
vreg.getVariableByKey("var1") //esto responde any y contiene el valor de la variable
//a ser reemplazada en la cadena de caracteres.

todo es cuestión de que los índices de los keys sean los valores que utilizas en la construcción de las fórmulas....

TIPS:
- Puedes hacer la asociación de key - value en un datawindow.

El resto es creatividad tuya.

OJO: aclaro que desde mi punto de vista, hay algo muy mal aquí, si usas variables globales. no es una buena arquitectura. deberías leer un poco sobre como estructurar mejor una programación OO. aunque el pb no es precisamente OO.

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

gracias Alberto

Publicado por TANO (75 intervenciones) el 01/11/2007 22:09:55
gracias
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