Foros del Web » Programación para mayores de 30 ;) » .NET »

Remplazar valores a una formula creada por el usuario en vb.net

Estas en el tema de Remplazar valores a una formula creada por el usuario en vb.net en el foro de .NET en Foros del Web. Hola como estan. No se si me pueden ayudar con esto que me esta preocupando. tengo una formula en un textox por ejemplo caclular el ...
  #1 (permalink)  
Antiguo 15/07/2010, 11:45
Avatar de CarmenRocio  
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 14 años, 5 meses
Puntos: 8
De acuerdo Remplazar valores a una formula creada por el usuario en vb.net

Hola como estan.
No se si me pueden ayudar con esto que me esta preocupando. tengo una formula en un textox por ejemplo caclular el 10% de mi monto
en mi textbox.text se muestra asi:

(@monto * @porcentaje)

y yo tengo que asignar desde el formulario los valores
en mi txtmonto 1000,e internemente porcentaje es 0.10 y lo unico que necesito es remplazar
1000 por @monto
0.10 por @porcentaje
y que calcule con respecto a la formula dada y salga el resultado en una caja de texto espero me puedan ayudar les agradeceria mucho.
Garcias

Última edición por CarmenRocio; 15/07/2010 a las 14:09
  #2 (permalink)  
Antiguo 15/07/2010, 11:51
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 15 años
Puntos: 1
Respuesta: Remplazar valores a una formula en vb.net

perdon, no entendi bien.

lo que necesitas es enviar parametros a un store procedure????
  #3 (permalink)  
Antiguo 15/07/2010, 13:19
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Respuesta: Remplazar valores a una formula en vb.net

lo que tu estas buscando, es un analizador/parser de expresiones matematicas
mira en este enlace, hay algunas cosas que te pueden ayudar. ojo que el tema no es nada de sencillo.
http://www.c-sharpcorner.com/uploadf...alculator.aspx

plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #4 (permalink)  
Antiguo 15/07/2010, 13:40
Avatar de CarmenRocio  
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 14 años, 5 meses
Puntos: 8
De acuerdo Respuesta: Remplazar valores a una formula creada por el usuario en vb.net

hola plcha como estas gracias por brindarme el link que esta bueno es algo asi lo que nesecito poner una formula y remplazar valores para luego calcular pero el detalle es que necesito hacer esto en vb.net y por otro lado para entender todo ese codigo bueno tendre que revisarlo no me queda de otra si me das una ayuda mas te lo agradeceria mucho o talves tienes algunos link para yo solo revisarlo gracias.

Última edición por CarmenRocio; 15/07/2010 a las 14:08
  #5 (permalink)  
Antiguo 15/07/2010, 13:49
Avatar de CarmenRocio  
Fecha de Ingreso: junio-2010
Ubicación: Perú - Lima - Chorrillos
Mensajes: 116
Antigüedad: 14 años, 5 meses
Puntos: 8
Respuesta: Remplazar valores a una formula en vb.net

lo que hice hasta el momento es remplazar las variables con el REPLACE
TextBox1.Text=txtFormula.Text.Replace("@monto", MONTO.Text).Replace("@porcentaje", PORCENTAJE.text)

ya tengo la formula cambiada en el textobox se muestra de esta manera

(1000*0.10)
pero como ejecuto esta formula para que me de resultado
100. el detalle es que esto lo tengo un textbox.
Gacias por la ayuda
  #6 (permalink)  
Antiguo 16/07/2010, 14:36
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 16 años
Puntos: 5
Respuesta: Remplazar valores a una formula creada por el usuario en vb.net

Hola Carmen.... lo que necesitas es ver la forma de "ejecutar" lo que transformaste. en el ejemplo que te di antes (sorry si esta en C#) el autor utiliza una capacidad que se denomina reflextion. con eso es posible ejecutar codigo en forma dinamica, exactamente lo que haces tu con el replace.
Mira aca tengo una funcion, que ejecuta codigo, en base a ciertos valores que obtengo de una base de datos. la idea es que con un ciclo foreach recorro el datatable y voy obteniendo el nombre de una formula. esa formula, la tengo previamente codificada en mi codigo. Con reflextion, lo que hago es ejecutar codigo en forma dinamica. Esto no es exactamente lo que necesitas, pero te puede dar una idea por donde investigar.


Código:
foreach (DataRow drVarForm in dttVariablesFormulas.Rows)
                            {
                                double dResultado;
                                string sDescripcionFormula = drVarForm["Descripcion"].ToString().Trim();
                                string sCodigoVariableFormula = drVarForm["CodigoVariable"].ToString().Trim();
                                int iCodigoVariableFormula = Convert.ToInt16(sCodigoVariableFormula);
                                string sNombreMetodo = drVarForm["NombreMetodo"].ToString().Trim();

                                // aca llamamos al metodo
                                dResultado = dCalcularQBE(sNombreMetodo);
}


        private double dCalcularQBE(string sMetodo)
        {
            try
            {

                //Namespace.NombreClase
                Type variableTipo = Type.GetType("QBE2009.QBE_Formulas");
                // Que Metodo Invocar
                MethodInfo variableInfoMetodo = variableTipo.GetMethod(sMetodo);
                // Ojo esto solo funcionara si tu constructor es static sin parametros y si tus 
                //metodos son estaticos y no requieren que instancies la clase

                object instanciaResultado = variableInfoMetodo.Invoke(null, null);
                double resultado = 0;
                if (instanciaResultado == null) 
                {
                    // esto lo hace porque no tengo otra forma de generar un NAN
                    resultado = (System.Math.Log(3 / -1));
                }
                else
                {
                    resultado = Convert.ToDouble(instanciaResultado);
                }
                return resultado;
            }
            catch (Exception ex)
            {
                return (System.Math.Log(3 / -1)); ;
            }
        }


// aca una formula que puede estar en otra clase
        static public double? dCalculaSGRAcumulado()                            
        {
            try 
            {	        
               // aca una formula que hace algo y entrega un valor de vuelta  
             }
         }
pd: sorry pero no se de la sintaxis de VB. pero es facil converytirlo

salu2
plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...

Etiquetas: remplazar, formulas, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.