none
Deshabilitar un botón

    Pregunta

  • Hola, necesito comparar 2 fechas, la actual y la que esta guardada en el base sql. Si son iguales entonces quiero deshabilitar el botón.

    Como pueden ver la función sirve para mostrar las ventas del día quiero que me desahabilite el objeto mientras la fecha sea del mismo día, osea mientras sea el mismo día que se mostraron ventas del dia.

    No se si me logro explicar bien, solo comentenme si no comprenden

     Private Sub CerrarCajaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerrarCajaToolStripMenuItem.Click
    
            Dim importe As Double = 0
            Dim fecha As Date = DateTime.Now.ToString("dd/MM/yyyy")
    
    
            Dim Respuesta = MsgBox("¿Desea cerrar la caja de el dia de hoy " & fecha & "?", MsgBoxStyle.OkCancel)
            If Respuesta = vbOK Then
    
                Try
                    Using con As New SqlConnection("Data Source=MARTIN-PC;Initial Catalog=BASEDATOSCOMERCIO;Integrated Security=true")
                        con.Open()
    
                        Dim query = "Select isnull(sum(Total),0) from CierreCaja where Fecha = @fecha"
    
                        Dim cmd As New SqlCommand(query, con)
    
    
                        cmd.Parameters.AddWithValue("@fecha", fecha)
    
                        importe = CDbl(cmd.ExecuteScalar())
    
                        MessageBox.Show(String.Format("Ventas del dia " & fecha & " fueron $ {0:N2}", importe))
    
    
                        If --- = fecha Then
                            CerrarCajaToolStripMenuItem.Enabled = False
                        End If
    
                    End Using
                Catch ex As Exception
                    MessageBox.Show("Se produjo un error : " & ex.Message)
                End Try
            End If
        End Sub
    Felices fiestas, saludos.

    sábado, 24 de diciembre de 2016 19:30

Respuestas

  • EstebanQuito125478,

    No lo tomes a mal, pero que complicado es entenderte, te recomiendo que seas claro en tus redacciones para evitar perder tiempo ambos.

    ¿Será que lo que buscas es lo siguiente?

    '...
    importe = CDbl(cmd.ExecuteScalar())
    MessageBox.Show(String.Format("Ventas del dia " & fecha & " fueron $ {0:N2}", importe))
    CerrarCajaToolStripMenuItem.Enabled = importe = 0
    '...


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Federico32113 sábado, 24 de diciembre de 2016 20:42
    sábado, 24 de diciembre de 2016 20:15

Todas las respuestas

  • EstebanQuito125478,

    ¿Qué sentido tiene la siguiente instrucción?

    Dim fecha As Date = DateTime.Now.ToString("dd/MM/yyyy")
    

    Un tipo Date o DateTime almacena un valor de fecha sin formato, no tiene sentido intentar dar un formato a una representación de fecha, el formato que toma para la presentación -más no para almacenar el valor- es el que está definido en la configuración de tu equipo o de la aplicación o el que definas en la asignación del valor tal como escribes en la instrucción que muestro: ToString("dd/MM/yyyy").

    Al caso, la variable fecha almacena un valor de fecha que para el ejemplo que adjuntas es la fecha actual del sistema, y para ese valor de fecha es que recuperas el resumen de las ventas del día, en ese sentido la variable fecha y la fecha de las ventas es la misma, ¿cuándo es que son distintos?, creo que no tienes bien planteado el caso.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    sábado, 24 de diciembre de 2016 19:56
  • En resumen, quiero poder mantener el botón desabilitado durante todo ese día en el cual se hizo el resumen de venta.

    De esta manera lo hago en el LOAD

          Try
                Using cn As New SqlConnection(...")
    
                    Dim query = "SELECT COUNT(*) FROM CierreCaja WHERE CONVERT(date, fecha) = @fecha"
    
                    Dim fecha As Date = DateTime.Now.ToString("dd/MM/yyyy")
    
                    Dim cmd As New SqlCommand(query, cn)
                    cmd.Parameters.AddWithValue("@fecha", fecha.Date)
                    cn.Open()
    
                    CerrarCajaToolStripMenuItem.Enabled = CInt(cmd.ExecuteScalar()) = 0
                End Using
                           Catch ex As Exception
                MessageBox.Show("Se produjo un error " & ex.Message)
            End Try


    sábado, 24 de diciembre de 2016 20:02
  • EstebanQuito125478,

    No lo tomes a mal, pero que complicado es entenderte, te recomiendo que seas claro en tus redacciones para evitar perder tiempo ambos.

    ¿Será que lo que buscas es lo siguiente?

    '...
    importe = CDbl(cmd.ExecuteScalar())
    MessageBox.Show(String.Format("Ventas del dia " & fecha & " fueron $ {0:N2}", importe))
    CerrarCajaToolStripMenuItem.Enabled = importe = 0
    '...


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Federico32113 sábado, 24 de diciembre de 2016 20:42
    sábado, 24 de diciembre de 2016 20:15
  • Perdón, tratare de ser mas claro al explicarme.

    Me sirvió la respuesta.

    Felices fiestas, saludos.

    sábado, 24 de diciembre de 2016 20:42