Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/11/2009, 11:58
cristinakity
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Msscript control en net

Para usarlo solo importalo al formulario o a la clase donde lo vayas a usar:

Imports MSScriptControl
Public Class ProbarFormula


'''<summary>Función que calcula la fórmula, segun los datos capturados.</summary>
'''<remarks></remarks>
'''<param name="formula">Fórmula</param>
Private Function fnConvertirFormula(ByVal formula As String) As Decimal
Try
Me.lFormulaConvertida = formula.ToUpper

Dim precio As Decimal = 0.0
Dim cantidad As Decimal = 0.0
Dim porcentajeDescuento As Decimal = 0.0
Dim importeDescuento As Decimal = 0.0
Dim porcentajePromocion As Decimal = 0.0
Dim importePromocion As Decimal = 0.0
Dim porcentajeIva As Decimal = 0.0
Dim importeIva As Decimal = 0.0

precio = IIf(IIf(TypeOf (Me.txtPrecio.Value) Is DBNull, Nothing, Me.txtPrecio.Value) Is Nothing, 0.0, Me.txtPrecio.Value)
cantidad = IIf(IIf(TypeOf (Me.txtCantidad.Value) Is DBNull, Nothing, Me.txtCantidad.Value) Is Nothing, 0.0, Me.txtCantidad.Value)
porcentajeDescuento = IIf(IIf(TypeOf (Me.txtPorcentajeDescuento.Value) Is DBNull, Nothing, Me.txtPorcentajeDescuento.Value) Is Nothing, 0.0, Me.txtPorcentajeDescuento.Value)
porcentajePromocion = IIf(IIf(TypeOf (Me.txtPorcentajePromocion.Value) Is DBNull, Nothing, Me.txtPorcentajePromocion.Value) Is Nothing, 0.0, Me.txtPorcentajePromocion.Value)
porcentajeIva = IIf(IIf(TypeOf (Me.txtPorcentajeIva.Value) Is DBNull, Nothing, Me.txtPorcentajeIva.Value) Is Nothing, 0.0, Me.txtPorcentajeIva.Value)
importeDescuento = IIf(IIf(TypeOf (Me.txtImporteDescuento.Value) Is DBNull, Nothing, Me.txtImporteDescuento.Value) Is Nothing, 0.0, Me.txtImporteDescuento.Value)
importePromocion = IIf(IIf(TypeOf (Me.txtImportePromocion.Value) Is DBNull, Nothing, Me.txtImportePromocion.Value) Is Nothing, 0.0, Me.txtImportePromocion.Value)
importeIva = IIf(IIf(TypeOf (Me.txtImporteIva.Value) Is DBNull, Nothing, Me.txtImporteIva.Value) Is Nothing, 0.0, Me.txtImporteIva.Value)

'Agrego valore a la formula
Do
If Me.lFormulaConvertida.Contains("[precioPublico]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[precioPublico]".ToUpper, precio.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[cantidad]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[cantidad]".ToUpper, cantidad.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[porcentajeDescuento]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[porcentajeDescuento]".ToUpper, porcentajeDescuento.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[importeDescuento]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[importeDescuento]".ToUpper, importeDescuento.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[porcentajePromocion]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[porcentajePromocion]".ToUpper, porcentajePromocion.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[importePromocion]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[importePromocion]".ToUpper, importePromocion.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[porcentajeIva]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[porcentajeIva]".ToUpper, porcentajeIva.ToString)
Continue Do
ElseIf Me.lFormulaConvertida.Contains("[importeIva]".ToUpper) Then
Me.lFormulaConvertida = Me.lFormulaConvertida.Replace("[importeIva]".ToUpper, importeIva.ToString)
Continue Do
Else
Exit Do
End If
Loop
'_____________________________________________

'Calculo la formula y la regreso
Dim resultado As New ScriptControl
resultado.Language = "vbScript"
'resultado.Eval(Me.lFormulaConvertida)

Return Val(resultado.Eval(Me.lFormulaConvertida))
'_________________________________________
Catch ex As Exception
Throw New Exception(ex.Message, ex)
End Try
End Function

End Class


Bueno algo asi esta incompleta esa clase le falta la declaracion de variables... solo para que te des una idea.