domingo, 15 de abril de 2012

Código del Formulario de Encuesta

Una vez ya realizada el diseño del formulario pasamos a la programación de el y como paso importante tenemos la validación de la información a la hora de ingresar un dato. 
Para realizar esta validación ingresaremos el objeto ErrorProvider, este lo pegaremos al lado de uno de los cuadros de texto cambiándole las siguientes propiedades:

ErrorProvider
Name
Err


 
Quedando de la siguiente manera en nuestro Formulario:

Una vez hecho este paso pasamos a la programación de la validacion para esto nos vamos al código haciendo click derecho ver código o oprimiendo la tecla F7.

Antes de ir a validar nuestra informacion iremos a colocar unas lineas de codigo al inicio de de la pagina de codigo el cual sera:

Imports Encuesta.Entorno
Imports System.Data.OleDb
__________________________________________________________________________________
Public Class Form1

Una vez hecho esto podemos ya pasara a validar la información. Estas lineas de código que escribimos al inicio es para Importar todos los elementos especificados dentro de cada uno de ellos. Con el Imports System.Data.OleDb lo que hacemos es importar todo los objetos del OleDb que necesitemos como un lector de datos , un comando o una conexión.

Código:

Private Function validar() As Boolean
        'Creamos la funcion validar la cual sera de tipo lógico
        'Y creamos la condicion para un cuadro de texto el cual dira lo siguiente ,"Si el codigo ingresado en el cuadro de texto es igual a nada este llamará al objeto err y a su prosedimiento SetError
        'el cual este nos permite establecer la cadena de descripcion del error, enviandole un msj que debe ingresar lo indicado en esa casilla
        'y cuando esto suceda que este retorne en falso
        If CodigoTextBox.Text = " "  Then
            err.SetError(CodigoTextBox, "Ingrese un Codigo")
            Return False
        End If
        'De igual manera para la demas información personal
        If NombreTextBox.Text = " " Then
            err.SetError(NombreTextBox, " Ingrese un Nombre")
            Return False
        End If
        If DireccionTextBox.Text = " " Then
            err.SetError(DireccionTextBox, " Ingrese una direccion")
            Return False
        End If
        If E_mailTextBox.Text = " " Then
            err.SetError(E_mailTextBox, "Ingrese una direccion de E-Mail")
            Return False
        End If
        If TelefonoTextBox.Text = " " Then
            err.SetError(TelefonoTextBox, "Ingrese un número de Telefono")
            Return False
        End If
        'Tambien se validara la informacion de los combobox el cual al igual que en los cuadros de texto dira: " si la selecciion del combox especificado es igual -1 este llamara al objeto err y asu procedimiento SetError
        'Eviandole un msj que le diga que debe ingresar una opcion, La diferencia de este con los cuadros de texto esque en este en vez de usar la propiedad text se usara la propiedad SelectedIndex -1 , el cual hace referencia a un campo vacio
        ' y de igual manera que retorne en falso
        If ServicioComboBox.SelectedIndex = -1 Then
            err.SetError(ServicioComboBox, "Ingrese una opcion")
            Return False
        End If
        'Este mismo procedimiento se usara para los demas combobox
        If SatisfaccionComboBox.SelectedIndex = -1 Then
            err.SetError(SatisfaccionComboBox, "Ingrese una opcion")
            Return False
        End If
        If ProveedorComboBox.SelectedIndex = -1 Then
            err.SetError(ProveedorComboBox, "Ingrese una opcion")
            Return False
        End If
        If SeguridadComboBox.SelectedIndex = -1 Then
            err.SetError(SeguridadComboBox, "Ingrese una opcion")
            Return False
        End If
        If VelocidadComboBox.SelectedIndex = -1 Then
            err.SetError(VelocidadComboBox, "Ingrese una opcion")
            Return False
        End If
        If ColoniaComboBox.SelectedIndex = -1 Then
            err.SetError(ColoniaComboBox, "Ingrese una opcion")
            Return False
        End If
        If Cable_InternetComboBox.SelectedIndex = -1 Then
            err.SetError(Cable_InternetComboBox, "Ingrese una opcion")
            Return False
        End If
        ' una vez validado la informacion de los combox volveremos a llamar al objeto error y su procedimiento junto a cada uno de los objetos que se utilizaron enviandole con este una respuesta vacía
        err.SetError(CodigoTextBox, " ")
        err.SetError(NombreTextBox, " ")
        err.SetError(TelefonoTextBox, " ")
        err.SetError(DireccionTextBox, " ")
        err.SetError(E_mailTextBox, " ")
        err.SetError(ServicioComboBox, " ")
        err.SetError(SatisfaccionComboBox, " ")
        err.SetError(ProveedorComboBox, " ")
        err.SetError(SeguridadComboBox, " ")
        err.SetError(VelocidadComboBox, " ")
        err.SetError(ColoniaComboBox, " ")
        err.SetError(Cable_InternetComboBox, " ")
        'Este al final retornara verdadero para que la marca del error se quite.
        Return True
    End Function

Seguidamente pasamos a escribir unas lineas de código en el evento Load del Formulario.
Se Programara en este para que a la iniciación del formulario este se ejecute

Código:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Se llama al dsTablas mas el metodo merge y que este llame a la funcion obtener datos y el cual le traiga un valor falso
        DsTablas.Merge(Datos.obdatos, False)
        'tambien llamaremos al cuadro de texto del codigo mas la propiedad enabled la cual sera igual a falso, con esto lo que hacemos es que al iniciars el formulario este cuadro de texto salga inavilitado para que los datos personales no pueda ser modificados
        'De igual manera para los demas cuadros de los datos personales
        CodigoTextBox.Enabled = False
        NombreTextBox.Enabled = False
        DireccionTextBox.Enabled = False
        E_mailTextBox.Enabled = False
        TelefonoTextBox.Enabled = False
    End Sub

Terminado esto Programamos el botón agregar nuevo:

Código:



Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click

        'Aplicamos los diferentes cambios o finalizamos la edición mediante el endEdit()
        EncuestaBindingSource.EndEdit()
        'Mediante el EncuestaBindingSouce hacemos un enlace a la método AddNew Para agregar un registro nuevo a nuestra tabla
        EncuestaBindingSource.AddNew()
        'Enviamos un enfoque por medio de la método focus al cuadro de texto del código para que sea el primer cuadro donde se empiese a escribir
        CodigoTextBox.Focus()
        'luego Habilitamos los cuadros de texto de los datos personales con la propiedad enbled igual a verdadero
        CodigoTextBox.Enabled = True
        NombreTextBox.Enabled = True
        TelefonoTextBox.Enabled = True
        DireccionTextBox.Enabled = True
        E_mailTextBox.Enabled = True
        'Luedo que se deshabiliten mediante la método clear() que es la que nos permite limpiar, Que limpie los cuadros de texto de los datos personales
        NombreTextBox.Clear()
        DireccionTextBox.Clear()
        TelefonoTextBox.Clear()
        E_mailTextBox.Clear()
        'De igual manera que la informacion contenida en lo combobox pero en vez de usar la funcion clear usaremos la propiedad SelectedIndex de cada uno de ellos, la cual sera igua a -1 traendo una respuesta vacia para cada una de ellas
        ServicioComboBox.SelectedIndex = -1
        SatisfaccionComboBox.SelectedIndex = -1
        ProveedorComboBox.SelectedIndex = -1
        VelocidadComboBox.SelectedIndex = -1
        SeguridadComboBox.SelectedIndex = -1
        Cable_InternetComboBox.SelectedIndex = -1
        ColoniaComboBox.SelectedIndex = -1

    End Sub


Una vez hecho esto Pasamos a programar el botón guardar de nuestro BindignNavigator damos doble click en el y programamos los siguiente:

Código:

Private Sub EncuestaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EncuestaBindingNavigatorSaveItem.Click

        'Primero creamos una condicion  , Si la validacion es verdadera entonces
        If validar() = True Then
            'Finalizamos la edicion del registro actual mediante el EndEdit()
            EncuestaBindingSource.EndEdit()
            'Llamamos al metodo salvarencuesta y que la informacion guardada la almacene en el nuestro daaset que seria el dsTablas
            Datos.salvEncues(DsTablas)
            'Llamamos a nuestro dsTablas y le decimos que guarde los ultimos cambios realizados mediante del AcceptChanges()
            DsTablas.AcceptChanges()
            'finalmente que nos envie una retroalimentacion mediante un msg que diga que los datos se han almacenado
            MsgBox(" Los Datos se han almacenado", MsgBoxStyle.Information, "Salvar")
        End If
        'Al finalizar la condicion y los datos ya guardados que se vuelvan a inabilitar los cuadros de texto de los datos personaless mediante la propiedad enabled igual a falso
        CodigoTextBox.Enabled = False
        NombreTextBox.Enabled = False
        TelefonoTextBox.Enabled = False
        DireccionTextBox.Enabled = False
        E_mailTextBox.Enabled = False


    End Sub



Seguido Programamos el botón Eliminar:

Código:

Private Sub BindingNavigatorDeleteItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click

        'Primeramente enviamos un msg al usuario para Preguntarle si quiere o no eliminar este registro mediante el msgboxStyle.question mas el msgboxstyle.yesno y si la respuesta de este es igual a si sucedera lo siguiente
        If MsgBox(" Desea eliminar este Registro ", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Eliminar") = MsgBoxResult.Yes Then
            'Se aplicaran los cambios o finalizamos la edicion del registro actual
            EncuestaBindingSource.EndEdit()
            'Mediante el bindingSouce llamamos a la metodo RemovCurrent() el cual nos permitira quitar o en otras palabras eliminar el registro seleccionado de la tabla
            EncuestaBindingSource.RemoveCurrent()
            'llamamos a nuestra variable datos mas la funcion salvarencuesta para que se aplique la eliminacion en el
            Datos.salvEncues(DsTablas)
            'Se aceptan los cabios en nuestro Dataset
            DsTablas.AcceptChanges()
            ' Y enviamos una retralimentacion para decirle al usuario que la aliminacion fue exitosa
            MsgBox(" El registro se ha eliminado ", MsgBoxStyle.Information, "Confirmado")
            'Finalmente enviamos el enfoque al cuadro de texto del codigo.
            CodigoTextBox.Focus()
        End If
    End Sub


Una vez terminado esto hemos finalizado con la programación de nuestras operaciones básicas dentro de nuestro formulario. Con esto ya nos guarda, nos elimina y nos agrega un registro nuevo.
Ahora lo que nos falta es hacer una búsqueda sencilla de los registros por medio del código. 
Esto lo realizamos de la siguiente manera: Damos doble click en el botón buscar de nuestro formulario y programamos lo siguiente:

Código:


Private Sub cmdBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBuscar.Click
        'Declaramos la variable codigo la cual almacenara en el codigo escrito o contenido en el cuadro de texto codigo
        Dim codigo As String = txtCodigoBuscado.Text
        'Declaramos la variable fila la cual tendra como valor -1
        Dim Fila As Integer = -1
        'La variable fila nos realizara una busqueda de el valor del codigo en el bindgSource mediante el metodo find
        Fila = EncuestaBindingSource.Find("Codigo", codigo)
        'Realizaremos una condicion la cual sera, Si la fila es igual a -1 enviara un msg al Usuario diciendo que no se ha econtrado el codigo ingresado y que lo verifique
        If Fila = -1 Then
            MsgBox("No se ha encontrado el codigo del cliente, verifique el codigo ingresado", MsgBoxStyle.Information, "No se encuentra el codigo")
            'Y si no se encontro que termine su procedimiento en ese momento
            Exit Sub
        Else
            'Si no es asi que traiga el numero de registro o la posicion del registro mediante el bindingSource y que ese valor sea almacenado temporalmente en la variable fila
            EncuestaBindingSource.Position = Fila

        End If
    End Sub

Una vez finalizado toda la programación de cada uno de los botones nuestro Formulario esta listo para ser utilizado.




No hay comentarios:

Publicar un comentario