none
sumatotal , total neto , iva , totalcotizacion gridview RRS feed

  • Pregunta

  • Buenas noches 

    aspx.net vb

    mysql

    ado net 

    experto si me puede  encaminar por favor soy muy novato estoy haciendo un formulario de ingreso de cotizaciones

    estoy en la parte ingresar productos para hacer la cotizacion  ingreso los productos todo bien hasta hay en el tema que necesito  los productos lo ingeso a travez de caja de texto y los visualiso en una grilla

    necesito cacular la suma de los productos introduciones en la columna total par hacer los calculos matematicos para que me los muestre en las  cajas de texto  : txtsumatotal , totalneto  txtiva, txtotalcotizacion

    el iva es  el 19%

    tengo este datable pero no se como hacer el calculo 

    el calculo lo debe hacer segun el numero de cotización que  este haciendo en ese momento 

     Public Function calcular() As DataSet
            'instanciamos nuestra conexion de MYSQL de nuestra Clase "Conexiones"'
            Dim cmd As New MySqlCommand
            'Usuamos nuestra conexion' 
            cmd.Connection = conn
            'Declaramos una variable para que ejecute nuestro procedimiento, con nuestra conexion'
            Dim da As New MySqlDataAdapter("select SUM(Total) From detalle_cotizacion where Numero_Cotizacion ='" & TxtNumeroCotizacion.Text & "'", conn)
            'Declaramos un dataset'
            Dim ds As New DataSet
            'Ahora poblamos el resultado de nuestro procedimiento en nuestro dataset (tabla temporal)'
    
            da.Fill(ds)
            'retornamos el dataset'
            Return ds
        End Function

     

    jueves, 26 de marzo de 2015 1:22

Respuestas

  • ok lo que recuperas de la db es un dato simple, el Recordset ya no existe en ado.net y este brinda el ExecuteScalar() para acceder al dato sin necesidad de datatable o dataset

    aconsejaria que estudies un poco sobre ado.net

    despues el resto son simples calculos que realizas sobre ese dato

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de marzo de 2015 2:50

Todas las respuestas

  • hola

    si solo quieres calcular el total podrias usar

    Public Function calcular() As Decimal
    
    	conn.Open()
    	
    	Dim query As String = "select SUM(Total) From detalle_cotizacion where Numero_Cotizacion = ?nrocotizacion"
    	Dim cmd As New MySqlCommand(query, conn)
            cmd.Parameters.AddWithValue("?nrocotizacion", TxtNumeroCotizacion.Text)
    	
            Dim total As Decimal = Convert.ToDecimal(cmd.ExecuteScalar())
    	
    	Return total
    	
    End Function

    en este caso lo defino como decinal porque no se si permite decimales el monto sumado, sino conviertelo a con Convert.ToInt32()

    y por sobre todo usa siempre parametros, NUNCA concatener un valor en un string

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 26 de marzo de 2015 1:52
  • pero de ese calculo segun el numero de cotizacion

    necesito mostrarlo en caja texto 

    sumatotal totalneto iva total cotizacion

    el iva es 19% del total de cotizacion

    txtsumatotal , totalneto  txtiva, txtotalcotizacion


    jueves, 26 de marzo de 2015 2:09

  • >>pero de ese calculo segun el numero de cotizacion necesito mostrarlo en caja texto 

    no veo cual es el problema, puedes mostrar el valor usando

    Dim total As Decimal = calcular()
    
    txtSumaTotal.Text = total.ToString("N2")

    y puedes usar ese total para aplicar en calculos que cargarias los otros textbox

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 26 de marzo de 2015 3:50
  • sigo sin entender lo que hace tu codigo  leandro

    necesito que muestre la suma y el iva  y el neto en caja de texto 


    • Editado djnilo jueves, 26 de marzo de 2015 20:57
    jueves, 26 de marzo de 2015 20:57
  • hola

    >>sigo sin entender lo que hace tu codigo

    ese metodo obtiene la suma, solo ejecuta la query que tu defines, cuando usas el SUM() en un SELECT este devuelve un unico dato que tomas por medio del ExecuteScalar()

    el iva y neto lo debes obtener con otra query, ademas estos datos de donde lo obtienes? esta tambien en la tabla esa info

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 26 de marzo de 2015 21:18
  • antiguamente ne mi aplicacion visual basic 6

    asi los calculos

                                      
    Sub CalculaTotales()
    Dim Total As String
    Dim Descuento As Integer
    Dim ConDescuento As String
    Dim PorcentajeIva As String
    Dim TotalFactura As String
    Dim TotalNeto As String
    
    
    
                Adodc3.RecordSource = "Select SUM(Total) From detalle_cotizacion where Numero_Cotizacion = '" & txtNumero_Cotizacion & "'"
                Adodc3.Refresh
                If Not Adodc3.Recordset.EOF And Adodc3.Recordset.Fields("SUM(Total)") <> "" Then
                    Total = Adodc3.Recordset.Fields("SUM(Total)")
                Else
                    Total = 0
                End If
                txtSumaTotal = Total
                'txtSumaTotal.Text = Val(txtSumaTotal.Text) + Round(txtTotal.Text)
                 If Descuento <> 0 Then
                    txtDescuento = Round(txtSumaTotal.Text * (Descuento / 100), 0)
                Else
                    txtDescuento = 0
                End If
    
                ConDescuento = txtDescuento
                txtTotalNeto = Round(txtSumaTotal.Text) - Round(txtDescuento, 0)
                TotalNeto = txtTotalNeto
                txtPorcentajeIva = Round(txtTotalNeto * (19 / 100), 0)
                PorcentajeIva = txtPorcentajeIva
                txtTotalFactura = Round(txtTotalNeto, 0) + Round(txtPorcentajeIva, 0)
                TotalFactura = txtTotalFactura
    
    
    End Sub

    Total quiero calcular el iva el neto 

    pero ahora estoy tratando de hacerla en aspx.net

    jueves, 26 de marzo de 2015 21:47
  • ok lo que recuperas de la db es un dato simple, el Recordset ya no existe en ado.net y este brinda el ExecuteScalar() para acceder al dato sin necesidad de datatable o dataset

    aconsejaria que estudies un poco sobre ado.net

    despues el resto son simples calculos que realizas sobre ese dato

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 27 de marzo de 2015 2:50