SlideShare una empresa de Scribd logo
UNJBG
                                      ¡¡LÍDER EN CAPACITACIÓN INFORMÁTICA!!
           ITEL
                                 Garantía del proceso Enseñanza-Aprendizaje con las últimas
         CARRERA
                                    tecnologías, con computadoras de última generación,
      Técnico Analista                                                                                        CURSO
                                  impresoras, escáner, multimedia, redes, Internet, material
      Programador de                                                                                 Programación Visual .NET II
                               didáctico paso a paso, biblioteca y aula virtual con docentes del
         Sistemas
                                                        más alto nivel.


                                    GUÍA DE LABORATORIO N° 03
OBJETIVOS:
• Crear aplicaciones para actualizar y/o mantenimiento de tablas, realizando la misma sin el asistente o añadiendo
   objetos, todo con código para evitar las propiedades de enlace y trabajar en un ambiente desconectado

1.   ENTORNO INTEGRADO DE DESARROLLO
     • Proceda a ingresar Visual Studio .NET y realice lo siguiente:
     • Deberá Abrir la solución realizada en la práctica anterior (SisVentas)

2.   CREACION DE FORMULARIO DE Mantenimiento de Empleados (frmActualizarEmpleado.vb)
     2.1. Agregue un nuevo formulario a su proyecto y guárdelo con el nombre de frmActualizarEmpleado.vb
     2.2. Proceda a agregar los siguientes objetos según se observa a continuación:




                                       Esquema general de la estructura desconectada de datos




Bimestre Académico   : 2009-                                                               Docente    : José L. Ponce Segura
Ciclo                : V                                (1 de 11)                          Fecha      : Tacna, Mayo del 2009
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                                       Curso: Programación Visual .NET II

     2.3.   Agregando los botones del ToolStrip “Barra de Herramientas” para actualización y Desplazamiento
            • Para ello deberá agregar un componente ToolStrip
            • Luego haga clic derecho sobre el y seleccione Editar Elementos…
            • Nos visualizará la Ventana siguiente, en ella deberás agregar los elementos “miembros del
                ToolStrip”, para ello solo deberás hacer clic en el botón Agregar cuantas veces sea necesarios
                según la imagen.
            • Una vez que haz agregado todos los miembros del ToolStrip, procede a establecer las propiedades
                Name, ToolTiptext e Image para c/u de los elementos.
            • El Name a establecer a cada elemento es el que se aprecia en la imagen




     2.4.   Ahora procederemos a establecer las propiedades de los demás objetos


            Objeto                  Propiedad                                     Valor Asignado
    Form1                    Name                             frmActualizarEmpleado
                             BackgroundImage                  Haga clic en … y Seleccione la imagen que Ud. Desee
                             Icon                             Haga clic en … y busque un icono de su agrado
                             Startposition                    CenterScreen
    Label3, label4....       Text                             Agregar los textos respectivos en cada Etiqueta
    TextBox1                 Name                             TxtCodEmp
    TextBox2                 Name                             TxtNomEmp
    TextBox3                 Name                             TxtApeEmp
    TextBox4                 Name                             TxtDirEmp
    GroupBox2                Name                             grbsexo
                             Text                             Sexo
    RadioButton1             Name                             RbtMasculino
                             Text                             Masculino
    RadioButton2             Name                             RbtFemenino
                             Text                             Femenino
    TextBox5                 Name                             TxtTelEmp
    Combo1                   Name                             CboCargo
                             Text
    Button1                  Name                             btnNuevoCargo
                             Text                             Nuevo Cargo…
Docente: José Luis Ponce Segura                      Prac03 (2 de 11)                       e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                                          www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                                   Curso: Programación Visual .NET II

     Label1                  Name                             LblActivo
     TextBox6                Name                             txtObservacion
     Button2                 Name                             BtnAgregarFoto
                             Text                             Agregar Foto…
     Label10                 Name                             lblRutaFoto

     2.5.   Establecer el tamaño adecuado a cada control ú objeto que esta dentro del formulario.
     2.6.   A todas las etiquetas establecer la propiedad Autosize = True

3.   CREAR PROCEDIMIENTOS ALMACENADOS (ABRIR EL ANALIZADOR DE CONSULTAS)

     Ingresar al Analizador de Consultas y Crear los siguientes Procedimientos Almacenados de mantenimiento
     de Datos:

      Procedimiento para Insertar Registros:

      CREATE PROCEDURE AgregarEmpleado
      (
      @codemp varchar(5),
      @nomemp varchar(20),
      @apeemp varchar(20),
      @diremp varchar(25),
      @sexemp bit,
      @telemp varchar(8),
      @codcar varchar(5),
      @activo bit,
      @observacion varchar(80),
      @foto varchar(50)
      )
      AS
      begin transaction
      INSERT EMPLEADO(codemp,nomemp,apeemp,diremp,sexemp,telemp,codcar,activo,observacion,foto)
      VALUES
      (@codemp,@nomemp,@apeemp,@diremp,@sexemp,@telemp,@codcar,@activo,@observacion,@foto)
      if @@error=0
             commit transaction
      else
             rollback transaction
      Para agregarlo a la BD: Sombree el Procedimiento y pulse F5, o clic en el botón ejecutar.

      Procedimiento para Desactivar un Empleado:
      CREATE PROCEDURE DesactivaEmpleado
      (
      @codemp varchar(5),
      @activo bit
      )
      AS
      BEGIN TRANSACTION
      UPDATE EMPLEADO
      SET
      codemp=@codemp,
      activo=@activo
      WHERE codemp=@codemp
      IF @@ERROR=0
             COMMIT TRANSACTION
      ELSE
             ROLLBACK TRANSACTION

Docente: José Luis Ponce Segura                      Prac03 (3 de 11)                   e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                                      www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                                   Curso: Programación Visual .NET II


     Procedimiento para Eliminar Registros: (Sólo de referencia)
     CREATE PROCEDURE EliminarEmpleado
     @codemp varchar(5)
     AS
     BEGIN TRANSACTION
     DELETE FROM EMPLEADO WHERE codemp=@codemp
     IF @@ERROR=0
            COMMIT TRANSACTION
     ELSE
            ROLLBACK TRANSACTION

     Procedimiento para Modificar Registros :
     CREATE PROCEDURE ModificarEmpleado
     (
     @codemp varchar(5),
     @nomemp varchar(20),
     @apeemp varchar(20),
     @diremp varchar(25),
     @sexemp bit,
     @telemp varchar(8),
     @codcar varchar(5),
     @activo bit,
     @observacion varchar(100),
     @foto varchar(50)
     )
     AS
     BEGIN TRANSACTION
     UPDATE EMPLEADO
     SET
     codemp=@codemp,
     nomemp=@nomemp,
     apeemp=@apeemp,
     diremp=@diremp,
     sexemp=@sexemp,
     telemp=@telemp,
     codcar=@codcar,
     activo=@activo,
     observacion=@observacion,
     foto=@foto
     WHERE codemp=@codemp
     IF @@ERROR=0
            COMMIT TRANSACTION
     ELSE
            ROLLBACK TRANSACTION


4.   CODIFICACIÓN DEL FORMULARIO DE ACTUALIZACIÓN DE EMPLEADOS
     No olvide que para este formulario solo se trabaja con Procedimientos Almacenados para realizar el
     mantenimiento de los registros de Empleados.

     AHORA PROCEDEREMOS A ESCRIBIR EL CODIGO CORRESPONDIENTE:
     Agregar la Biblioteca de Clases SQLClient: Sirve para poder utilizar los objetos SQLconnection, SqlCommand,
     SqlDataAdapter




Docente: José Luis Ponce Segura                      Prac03 (4 de 11)                   e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                                      www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                      Curso: Programación Visual .NET II

Biblioteca de Clase:
     Option Compare Text
     Imports System.Data.SqlClient
     Imports System.Data

En la Sección de Declaraciones Generales escriba:
    Dim dacargo As SqlDataAdapter
    Dim objDataAdapter As SqlDataAdapter
    Dim objDataSet As New DataSet
    Dim objDataRow As DataRow
    Dim posicion, flag, resultado As Integer

Private Sub frmActualizarEmpleado_Load(ByVal sender As System.Object, ByVal e As
                                                  System.EventArgs) Handles MyBase.Load
  Conexion.Open()
  objDataAdapter = New SqlDataAdapter("SELECT * FROM EMPLEADO WHERE
activo=1",Conexion)
  objDataAdapter.Fill(objDataSet, "EMPLEADO")
  Conexion.Close()
  llenarcombos(False)
  posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1)
  CargarDatos()
  lblRutaFoto.Visible = False
  HabilitarControles(False)
  HabilitarBotones(True)
  'Estableciendo etiquetas a las cajas
  txtCodEmp.Tag = "Código"       :    txtNomEmp.Tag = "Nombres"
  txtApeEmp.Tag = "Apellidos"    :    txtDirEmp.Tag = "dirección"
  txtTelEmp.Tag = "Teléfono"     :    txtObservacion.Tag = "Observacion"
End Sub
Procedimientos de Usuario
Private Sub llenarcombos(ByVal cargo As Boolean)
  Conexion.Open()
  desconectarcombos()
  dacargo = New SqlDataAdapter("SELECT * FROM cargo", ModConexion.Conexion)
  If cargo = False Then
    dacargo.Fill(objDataSet, "cargo")
  Else
    objDataSet.Tables("cargo").Clear()
    dacargo.Fill(objDataSet, "cargo")
    cargo = False
  End If
  Conexion.Close()
  cboCargo.DataBindings.Add(New
System.Windows.Forms.Binding("SelectedValue",objDataSet, "Empleado.codcar"))
  cboCargo.DataSource = Me.objDataSet.Tables("Cargo")
  cboCargo.DisplayMember = "descar"
  cboCargo.ValueMember = "codcar"
  cboCargo.DropDownStyle = ComboBoxStyle.DropDownList
  ' si es que se ha agregado un nuevo cargo, lo selecionamos
  If cargo = False Then cboCargo.SelectedIndex = cboCargo.Items.Count - 1
End Sub
Private Sub CargarDatos()
  Dim valor As Boolean
  Try
    objDataRow = objDataSet.Tables("EMPLEADO").Rows(posicion)
    txtCodEmp.Text = objDataRow("codemp")
    txtNomEmp.Text = objDataRow("nomemp")
    txtApeEmp.Text = objDataRow("apeemp")
    txtDirEmp.Text = objDataRow("diremp")
    valor = objDataRow("sexemp")
Docente: José Luis Ponce Segura                      Prac03 (5 de 11)      e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                         www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                      Curso: Programación Visual .NET II

    If valor Then
      rbtMasculino.Checked = True
      rbtFemenino.Checked = False
    Else
      rbtMasculino.Checked = False
      rbtFemenino.Checked = True
    End If
    txtTelEmp.Text = objDataRow("telemp")
    cboCargo.SelectedValue = objDataRow("codcar")
    txtObservacion.Text = objDataRow("observacion").ToString
    If objDataRow("foto").ToString = Nothing Then
      PictureBox1.Image = Nothing
      lblRutaFoto.Text = Nothing
    Else
      lblRutaFoto.Text = objDataRow("foto")
    End If
    If objDataRow("activo") = True Then
      lblActivo.Text = "Activo" : lblActivo.ForeColor = Color.Blue
    End if
    If objDataRow("activo") = False Then
      lblActivo.Text = "Inactivo" : lblActivo.ForeColor = Color.Red
    End if
    tslRegistro.Text = "Registro: " & posicion + 1 & " de " & _
                                          objDataSet.Tables("EMPLEADO").Rows.Count
    actualizafoto()
  Catch exc As Exception
    MessageBox.Show(exc.Message)
  End Try
End Sub
Private Sub HabilitarControles(ByVal est As Boolean)
  Dim ctrl As Control
  For Each ctrl In Me.Controls
    If TypeOf ctrl Is TextBox Then ctrl.Enabled = est
  Next
  txtCodEmp.ReadOnly = True
  cboCargo.Enabled = est
  grbSexo.Enabled = est
End Sub
Private Sub HabilitarBotones(ByVal est As Boolean)
  Dim oitem As Windows.Forms.ToolStripItem
  For Each oitem In ToolStrip1.Items
    If TypeOf oitem Is ToolStripButton Then
      oitem.Enabled = est
    End If
  Next
  tsbGuardar.Enabled = Not est
  tsbCancelar.Enabled = Not est
  btnAgregarFoto.Visible = Not est
  btnNuevoCargo.Visible = Not est
End Sub
Function verificavacios() As Boolean
  Dim objetos As Object
  For Each objetos In Me.Controls
    If TypeOf objetos Is TextBox Then
      If objetos.name <> "txtTelEmp" And objetos.name <> "txtObservacion" And
                                                            objetos.TextLength = 0 Then
        MsgBox("Debe ingresar: " & objetos.tag)
        verificavacios = True
        Exit Function
      End If
    End If

Docente: José Luis Ponce Segura                      Prac03 (6 de 11)      e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                         www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                      Curso: Programación Visual .NET II

  Next
  If cboCargo.SelectedIndex < 0 Then
    MsgBox("Debe seleccionar un cargo")
    verificavacios = True
  End If
End Function
Private Sub GeneraCodigo()
  Dim codi As String
  Dim cmd As New SqlCommand("select max(codemp) from empleado",Conexion)
  Conexion.Open()
  codi = cmd.ExecuteScalar
  Conexion.Close()
  Me.txtCodEmp.Text = Format(Val(codi) + 1, "00000")
End Sub

Private Sub desconectarcombos()   ‘ IMPORTANTE: ESTE PROC. DEBE SER CREADO EN EL MÓDULO
  cboCargo.DataBindings.Clear()   Public Sub LimpiarTextBox(ByVal ofrm As Form)
End Sub                             For Each oControl As Control In ofrm.Controls
Private Sub LimpiarControles()        If TypeOf oControl Is TextBox Then
  LimpiarTextBox(Me)                    oControl.Text = ""
  PictureBox1.Image = Nothing         End If
End Sub                             Next
                                  End Sub
Private Sub Desplazar(ByVal op As Integer)
  Select Case op
    Case 1
      posicion = 0
      CargarDatos()
    Case 2
      If posicion = 0 Then
        MessageBox.Show("Primer Registro", "", 0, MessageBoxIcon.Information)
      Else
        posicion -= 1
        CargarDatos()
      End If
    Case 3
      If posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1) Then
        MessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information)
      Else
        posicion += 1
        CargarDatos()
      End If
    Case 4
      posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1)
      CargarDatos()
  End Select
End Sub
Private Sub actualizafoto()
  Dim mifoto As Bitmap
  If objDataRow("foto").ToString = Nothing Then
    PictureBox1.Image = Nothing
  Else
    mifoto = New Bitmap(Me.lblRutaFoto.Text)
    PictureBox1.Image = CType(mifoto, Image)
  End If
End Sub




Docente: José Luis Ponce Segura                      Prac03 (7 de 11)      e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                         www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                      Curso: Programación Visual .NET II


Private Sub AgregaCargo(ByVal codi As String, ByVal nombre As String)
  'Agregando el nuevo registro a la tabla cargo
  Dim objcomando As New SqlCommand("INSERT INTO Cargo (codcar,descar) VALUES
                                                            (@codcar,@descar)",Conexion)
  'Parámetros
  objcomando.Parameters.Add(New SqlParameter("@codcar", SqlDbType.VarChar))
  objcomando.Parameters("@codcar").Value = codi
  objcomando.Parameters.Add(New SqlParameter("@descar", SqlDbType.VarChar))
  objcomando.Parameters("@descar").Value = nombre
  Conexion.Open()
  objcomando.ExecuteNonQuery()
  ModConexion.Conexion.Close()
  llenarcombos(True)
End Sub
Private Sub Editar()                      Private Sub Actualizar()
  flag = 2                                  'Para actualizar el DataSet
  HabilitarControles(True)                  objDataSet.Clear()
  HabilitarBotones(False)                   objDataAdapter.Fill(objDataSet, "EMPLEADO")
  txtNomEmp.Focus()                       End Sub
End Sub
Private Sub Nuevo()                       Private Sub Cancelar()
  flag = 1                                  Conexion.Open()
  lblRutaFoto.Text = Nothing                objDataSet.RejectChanges()
  HabilitarControles(True)                  Conexion.Close()
  HabilitarBotones(False)                   HabilitarControles(False)
  LimpiarControles()                        HabilitarBotones(True)
  GeneraCodigo()                            Desplazar(4)
End Sub                                   End Sub
Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As
     System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
  Select Case e.ClickedItem.Name
    ' Actualización
    Case "tsbnuevo"   ' Botón Nuevo
      Nuevo()
    Case "tsbguardar"   ' Botón Guardar
      Guardar()
    Case "tsbeditar"   ' Botón Editar
      Editar()
    Case "tsbcancelar"   ' Botón Cancelar
      Cancelar()
    Case "tsbeliminar"   ' Botón Desactivar Empleado
      Dim rpta As MsgBoxResult
      rpta = MsgBox("Esta seguro que desea Desactivar Al Empleado :" & _
      Chr(13) & Chr(10) & txtCodEmp.Text & " - " & txtNomEmp.Text & " " & _
      txtApeEmp.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación")
      If rpta = vbYes Then DesactivaEmpleado(txtCodEmp.Text, 0)
    Case "tsbsalir"   ' Botón Salir
      Me.Close()
    ' Desplazamiento
    Case "tsbprimero"   ' Ir a al Primero
      Desplazar(1)
    Case "tsbanterior"    ' Ir al Anterior
      Desplazar(2)
    Case "tsbsiguiente" ' Ir al Siguiente
      Desplazar(3)
    Case "tsbultimo"       ' Ir al Último
    Desplazar(4)
  End Select
End Sub


Docente: José Luis Ponce Segura                      Prac03 (8 de 11)      e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                         www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                      Curso: Programación Visual .NET II



Private Sub Guardar()
  If verificavacios() = True Then    Exit Sub
  Dim objComando As New SqlCommand
  Dim oper As String, valor, activo As Boolean
  objComando.Connection = ModConexion.Conexion
  objComando.CommandType = CommandType.StoredProcedure
  If flag = 1 Then 'Agregar
    objComando.CommandText = "AgregarEmpleado"
    oper = " insertados : "
  Else ' Editar
    objComando.CommandText = "modificarEmpleado"
    oper = " modificados : "
  End If
  Try
    'Agregando Parametros
    objComando.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@nomemp", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@apeemp", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@diremp", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@sexemp", SqlDbType.Bit))
    objComando.Parameters.Add(New SqlParameter("@telemp", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@codcar", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@activo", SqlDbType.Bit))
    objComando.Parameters.Add(New SqlParameter("@observacion", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@foto", SqlDbType.VarChar))
    'asignando valores a parametros
    If rbtMasculino.Checked = True Then
      valor = True
    Else
      valor = False
    End If
    activo = True ' Todos los empleados nuevos son activos, ¿activar un empleado?
    objComando.Parameters("@codemp").Value = txtCodEmp.Text
    objComando.Parameters("@nomemp").Value = txtNomEmp.Text
    objComando.Parameters("@apeemp").Value = txtApeEmp.Text
    objComando.Parameters("@diremp").Value = txtDirEmp.Text
    objComando.Parameters("@sexemp").Value = valor
    objComando.Parameters("@telemp").Value = txtTelEmp.Text
    objComando.Parameters("@codcar").Value = cboCargo.SelectedValue
    objComando.Parameters("@activo").Value = activo
    objComando.Parameters("@observacion").Value = txtObservacion.Text
    objComando.Parameters("@foto").Value = lblRutaFoto.Text
    Conexion.Open()
    resultado = objComando.ExecuteNonQuery
    Actualizar()
    Conexion.Close()
    posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1)
    MessageBox.Show("Registros " & oper & resultado, "", 0,
MessageBoxIcon.Information)
  Catch exc As Exception
    MessageBox.Show(exc.Message)
  End Try
  llenarcombos(False)
  Desplazar(4)
  HabilitarControles(False)
  HabilitarBotones(True)
End Sub



Docente: José Luis Ponce Segura                      Prac03 (9 de 11)      e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                         www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                   Curso: Programación Visual .NET II



Private Sub DesactivaEmpleado(ByVal codi As String, ByVal estado As Boolean)
  Dim objComando As New SqlCommand
  objComando.Connection = ModConexion.Conexion
  objComando.CommandType = CommandType.StoredProcedure
  objComando.CommandText = "DesactivaEmpleado"
  Try
    'Agregando Parametros
    objComando.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@activo", SqlDbType.Bit))
    'asignando valores a parametros
    objComando.Parameters("@codemp").Value = codi
    objComando.Parameters("@activo").Value = estado
    Conexion.Open()
    resultado = objComando.ExecuteNonQuery
    Actualizar()
    Conexion.Close()
    MessageBox.Show(resultado & " Empleado Desactivado", "", 0,
MessageBoxIcon.Information)
    Desplazar(1)
  Catch exc As Exception
    MessageBox.Show(exc.Message)
  End Try
  llenarcombos(False)
  HabilitarControles(False)
  HabilitarBotones(True)
End Sub
Private Sub btnAgregarFoto_Click(ByVal sender As System.Object, ByVal e As
                                         System.EventArgs) Handles btnAgregarFoto.Click
  Dim mifoto As Bitmap
  Dim curfilename As String = ""
  Dim opendlg As OpenFileDialog = New OpenFileDialog
  opendlg.Filter = "All Bitmapfiles|*.*"
  Dim filter As String = opendlg.Filter
  opendlg.Title = "open a bitmap file"
  If opendlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
    curfilename = opendlg.FileName
    lblRutaFoto.Text = curfilename
    mifoto = New Bitmap(curfilename)
    PictureBox1.Image = CType(mifoto, Image)
  Else
    Exit Sub
  End If
End Sub
Private Sub btnNuevoCargo_Click(ByVal sender As System.Object, ByVal e As
                                          System.EventArgs) Handles btnNuevoCargo.Click
  'Generando código para el nuevo cargo
  Dim codi As String
  Dim cmd As New SqlCommand("select max(codcar) from cargo", ModConexion.Conexion)
  Conexion.Open()
  codi = cmd.ExecuteScalar
  codi = Format(Val(codi) + 1, "00000")
  Conexion.Close()
  ' Solicitando el nombre del nuevo cargo
  Dim nombre As String
  nombre = InputBox("Ingrese Nombre de nuevo cargo:", "Agregando Nuevo Cargo")
  If nombre.Length < 4 Then
    MsgBox("Debe ingresar mínimo 4 caracteres", MsgBoxStyle.Critical, "Error")
    Exit Sub
  Else

Docente: José Luis Ponce Segura                  Prac03 (10 de 11)      e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                      www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas.                                  Curso: Programación Visual .NET II

    Dim rpta As MsgBoxResult
    rpta = MsgBox("Esta seguro que desea agregar el nuevo cargo :" & _
    Chr(13) & Chr(10) & “codigo: " & codi & Chr(13) & Chr(10) & _
    "Nombre: " & nombre, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación")
    If rpta = vbYes Then
      AgregaCargo(codi, nombre)
    Else
      Exit Sub
    End If
  End If
End Sub
Private Sub tsbBuscarbasico_Click(ByVal sender As System.Object, ByVal e As
               System.EventArgs) Handles tsbBuscarbasico.Click, tsbBuscarAvanzado.Click
  Select Case sender.name
    Case "tsbbuscarbasico"
      Dim strDato As String
      Dim fila As Integer
      Dim dv As New DataView
      strDato = InputBox("Ingrese codigo del Empleado: ", "Buscar")
      dv.Table = objDataSet.Tables("Empleado")
      dv.Sort = "codemp"
      fila = dv.Find(strDato)
      If fila = -1 Then
        MessageBox.Show("Codigo del Empleado no Existe", "Cuidado")
        Exit Sub
      End If
      posicion = fila
      CargarDatos()
    Case "tsbbuscaravanzado"
      MessageBox.Show("Proximamente será implementado", "Busqueda Avanzada",
                                      MessageBoxButtons.OK, MessageBoxIcon.Information)
  End Select
End Sub


TAREA ENCARGADA: ….. / …… / ………….
      En base al presente formulario, proceda a realizar los formularios correspondientes para Clientes, Artículos y
      Categoría. Así mismo deberá enlazarlos c/u a la opción de Menú que corresponda.
      Haga los procedimientos necesarios para poder visualizar a los empleados Inactivos, y poder activar a uno
      de ellos según sea el caso.




Docente: José Luis Ponce Segura                  Prac03 (11 de 11)                     e-mail : jlponcesg@hotmail.com
Cel. : 952636911                                                                                     www.redtacna.net

Más contenido relacionado

PDF
Guia de Laboratorios 6 - VB.NET 2005
PDF
Guia de Laboratorios 2 - VB.NET 2005
PDF
Guía de Laboratorio 1 - VB.NET 2005
PDF
Guia de Laboratorios 4 - VB.NET 2005
PDF
Practica Siete Delphi
PDF
Guia de Laboratorios 5 - VB.NET 2005
PDF
Guia N4 Proyectos Web My Sql Y Php
PDF
Guia de Laboratorios 7 - VB.NET 2005
Guia de Laboratorios 6 - VB.NET 2005
Guia de Laboratorios 2 - VB.NET 2005
Guía de Laboratorio 1 - VB.NET 2005
Guia de Laboratorios 4 - VB.NET 2005
Practica Siete Delphi
Guia de Laboratorios 5 - VB.NET 2005
Guia N4 Proyectos Web My Sql Y Php
Guia de Laboratorios 7 - VB.NET 2005

La actualidad más candente (20)

PDF
Practica Dos Delphi
PDF
Practica Seis Delphi
PDF
Practica Uno Delphi
PDF
Manual poo-unidad-visual-basic
PDF
Practica Cuatro Delphi
PDF
Practica Cinco Delphi
PDF
Curso C M S 03
PDF
Guia n1 tam 2009 1
PDF
Practica 1 html_basico
PDF
Guia N3 Proyectos Web Php Css, Js
DOCX
Guía Practica conexión BD 2021
PDF
Visual Basic
DOCX
Copia de entorno de grado (1)
DOCX
Guía herramientas de BD PHP
PDF
C6 net beansentradasysalidas
DOCX
Formulario
PDF
Guia bootstrap
PDF
Introduccion a VB6
PPTX
Formularios y contenedores
PDF
manual visual basic 02
Practica Dos Delphi
Practica Seis Delphi
Practica Uno Delphi
Manual poo-unidad-visual-basic
Practica Cuatro Delphi
Practica Cinco Delphi
Curso C M S 03
Guia n1 tam 2009 1
Practica 1 html_basico
Guia N3 Proyectos Web Php Css, Js
Guía Practica conexión BD 2021
Visual Basic
Copia de entorno de grado (1)
Guía herramientas de BD PHP
C6 net beansentradasysalidas
Formulario
Guia bootstrap
Introduccion a VB6
Formularios y contenedores
manual visual basic 02
Publicidad

Destacado (20)

PDF
HTML
PDF
Guia N5 Proyectos Web Consultas Php Y My Sql
PDF
Guia N1 Proyectos Web Html
PDF
Guia N2 Proyectos Web Php
PDF
Ficha de codigos HTML
PDF
Guia4 java
PDF
Guia1 java
PDF
Guia2 java
PDF
Guia3 java
PDF
Guia8 java
PDF
Proyecto, PHP y MySQL
PDF
Guia7 java
PDF
Laboratorio 03
PDF
Insertar Videos Youtube en Moodle
PDF
Guia5 java
PDF
Guia6 java
PPSX
Cms vigil1
PDF
Ejercicios Basicos HTML
PPTX
Sistema electrico
PPTX
Auditoria informatica
HTML
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N1 Proyectos Web Html
Guia N2 Proyectos Web Php
Ficha de codigos HTML
Guia4 java
Guia1 java
Guia2 java
Guia3 java
Guia8 java
Proyecto, PHP y MySQL
Guia7 java
Laboratorio 03
Insertar Videos Youtube en Moodle
Guia5 java
Guia6 java
Cms vigil1
Ejercicios Basicos HTML
Sistema electrico
Auditoria informatica
Publicidad

Similar a Guia de Laboratorios 3 - VB.NET 2005 (20)

PDF
Guia no3 ado.net
PDF
Guia no3 ado.net
PDF
Control Data
PDF
Guia no4 ado.net
DOCX
3. planteamiento de las actividades y estrategias de aprendizaje
DOC
Bases de datos en sitios web
PDF
Guia n2 tam 2009 1
PDF
PDF
C:\fakepath\laboratorio nº 2
PDF
PDF
Guia n5 tam 2009 1
PDF
Manual Visual Basic .NET SQL Server paso a paso
DOC
Diseño web visual basic 2005
PDF
Modulo
PPTX
Como crear una mini agenda personal
PDF
PPS
Conexión Base de Datos Access con Visual 2005
PDF
Fundamentos.net-Guia n1 2012
DOC
Creacion de formularios en access 2007
PDF
Creación de informes y formularios
Guia no3 ado.net
Guia no3 ado.net
Control Data
Guia no4 ado.net
3. planteamiento de las actividades y estrategias de aprendizaje
Bases de datos en sitios web
Guia n2 tam 2009 1
C:\fakepath\laboratorio nº 2
Guia n5 tam 2009 1
Manual Visual Basic .NET SQL Server paso a paso
Diseño web visual basic 2005
Modulo
Como crear una mini agenda personal
Conexión Base de Datos Access con Visual 2005
Fundamentos.net-Guia n1 2012
Creacion de formularios en access 2007
Creación de informes y formularios

Más de Jose Ponce (13)

PPS
Net1 capitulo iii - estructuras condicionales
PPS
Net1 capitulo ii - variables de memoria & array
PDF
Sesion 1 introduccion a moodle
PPTX
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
PPS
ADO .NET
PDF
Practica Tres Delphi
PDF
Manual de Joomla
PPSX
Proyectos Web 1 Fundamentos
PPSX
Proyectos Web 3 Introduccion Php
PPSX
Proyectos Web 2 Introduccion Html
PDF
Curso Cms 03
PPSX
Curso Cms 2 Sistema De GestióN De Contenidos
PPSX
Curso Cms 1 Fundamentos
Net1 capitulo iii - estructuras condicionales
Net1 capitulo ii - variables de memoria & array
Sesion 1 introduccion a moodle
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
ADO .NET
Practica Tres Delphi
Manual de Joomla
Proyectos Web 1 Fundamentos
Proyectos Web 3 Introduccion Php
Proyectos Web 2 Introduccion Html
Curso Cms 03
Curso Cms 2 Sistema De GestióN De Contenidos
Curso Cms 1 Fundamentos

Último (20)

PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
biología es un libro sobre casi todo el tema de biología
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Tomo 1 de biologia gratis ultra plusenmas
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
Punto Critico - Brian Tracy Ccesa007.pdf
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
V UNIDAD - PRIMER GRADO. del mes de agosto
DI, TEA, TDAH.pdf guía se secuencias didacticas
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
biología es un libro sobre casi todo el tema de biología
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Escuela Sabática 6. A través del Mar Rojo.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf

Guia de Laboratorios 3 - VB.NET 2005

  • 1. UNJBG ¡¡LÍDER EN CAPACITACIÓN INFORMÁTICA!! ITEL Garantía del proceso Enseñanza-Aprendizaje con las últimas CARRERA tecnologías, con computadoras de última generación, Técnico Analista CURSO impresoras, escáner, multimedia, redes, Internet, material Programador de Programación Visual .NET II didáctico paso a paso, biblioteca y aula virtual con docentes del Sistemas más alto nivel. GUÍA DE LABORATORIO N° 03 OBJETIVOS: • Crear aplicaciones para actualizar y/o mantenimiento de tablas, realizando la misma sin el asistente o añadiendo objetos, todo con código para evitar las propiedades de enlace y trabajar en un ambiente desconectado 1. ENTORNO INTEGRADO DE DESARROLLO • Proceda a ingresar Visual Studio .NET y realice lo siguiente: • Deberá Abrir la solución realizada en la práctica anterior (SisVentas) 2. CREACION DE FORMULARIO DE Mantenimiento de Empleados (frmActualizarEmpleado.vb) 2.1. Agregue un nuevo formulario a su proyecto y guárdelo con el nombre de frmActualizarEmpleado.vb 2.2. Proceda a agregar los siguientes objetos según se observa a continuación: Esquema general de la estructura desconectada de datos Bimestre Académico : 2009- Docente : José L. Ponce Segura Ciclo : V (1 de 11) Fecha : Tacna, Mayo del 2009
  • 2. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II 2.3. Agregando los botones del ToolStrip “Barra de Herramientas” para actualización y Desplazamiento • Para ello deberá agregar un componente ToolStrip • Luego haga clic derecho sobre el y seleccione Editar Elementos… • Nos visualizará la Ventana siguiente, en ella deberás agregar los elementos “miembros del ToolStrip”, para ello solo deberás hacer clic en el botón Agregar cuantas veces sea necesarios según la imagen. • Una vez que haz agregado todos los miembros del ToolStrip, procede a establecer las propiedades Name, ToolTiptext e Image para c/u de los elementos. • El Name a establecer a cada elemento es el que se aprecia en la imagen 2.4. Ahora procederemos a establecer las propiedades de los demás objetos Objeto Propiedad Valor Asignado Form1 Name frmActualizarEmpleado BackgroundImage Haga clic en … y Seleccione la imagen que Ud. Desee Icon Haga clic en … y busque un icono de su agrado Startposition CenterScreen Label3, label4.... Text Agregar los textos respectivos en cada Etiqueta TextBox1 Name TxtCodEmp TextBox2 Name TxtNomEmp TextBox3 Name TxtApeEmp TextBox4 Name TxtDirEmp GroupBox2 Name grbsexo Text Sexo RadioButton1 Name RbtMasculino Text Masculino RadioButton2 Name RbtFemenino Text Femenino TextBox5 Name TxtTelEmp Combo1 Name CboCargo Text Button1 Name btnNuevoCargo Text Nuevo Cargo… Docente: José Luis Ponce Segura Prac03 (2 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 3. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Label1 Name LblActivo TextBox6 Name txtObservacion Button2 Name BtnAgregarFoto Text Agregar Foto… Label10 Name lblRutaFoto 2.5. Establecer el tamaño adecuado a cada control ú objeto que esta dentro del formulario. 2.6. A todas las etiquetas establecer la propiedad Autosize = True 3. CREAR PROCEDIMIENTOS ALMACENADOS (ABRIR EL ANALIZADOR DE CONSULTAS) Ingresar al Analizador de Consultas y Crear los siguientes Procedimientos Almacenados de mantenimiento de Datos: Procedimiento para Insertar Registros: CREATE PROCEDURE AgregarEmpleado ( @codemp varchar(5), @nomemp varchar(20), @apeemp varchar(20), @diremp varchar(25), @sexemp bit, @telemp varchar(8), @codcar varchar(5), @activo bit, @observacion varchar(80), @foto varchar(50) ) AS begin transaction INSERT EMPLEADO(codemp,nomemp,apeemp,diremp,sexemp,telemp,codcar,activo,observacion,foto) VALUES (@codemp,@nomemp,@apeemp,@diremp,@sexemp,@telemp,@codcar,@activo,@observacion,@foto) if @@error=0 commit transaction else rollback transaction Para agregarlo a la BD: Sombree el Procedimiento y pulse F5, o clic en el botón ejecutar. Procedimiento para Desactivar un Empleado: CREATE PROCEDURE DesactivaEmpleado ( @codemp varchar(5), @activo bit ) AS BEGIN TRANSACTION UPDATE EMPLEADO SET codemp=@codemp, activo=@activo WHERE codemp=@codemp IF @@ERROR=0 COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION Docente: José Luis Ponce Segura Prac03 (3 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 4. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Procedimiento para Eliminar Registros: (Sólo de referencia) CREATE PROCEDURE EliminarEmpleado @codemp varchar(5) AS BEGIN TRANSACTION DELETE FROM EMPLEADO WHERE codemp=@codemp IF @@ERROR=0 COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION Procedimiento para Modificar Registros : CREATE PROCEDURE ModificarEmpleado ( @codemp varchar(5), @nomemp varchar(20), @apeemp varchar(20), @diremp varchar(25), @sexemp bit, @telemp varchar(8), @codcar varchar(5), @activo bit, @observacion varchar(100), @foto varchar(50) ) AS BEGIN TRANSACTION UPDATE EMPLEADO SET codemp=@codemp, nomemp=@nomemp, apeemp=@apeemp, diremp=@diremp, sexemp=@sexemp, telemp=@telemp, codcar=@codcar, activo=@activo, observacion=@observacion, foto=@foto WHERE codemp=@codemp IF @@ERROR=0 COMMIT TRANSACTION ELSE ROLLBACK TRANSACTION 4. CODIFICACIÓN DEL FORMULARIO DE ACTUALIZACIÓN DE EMPLEADOS No olvide que para este formulario solo se trabaja con Procedimientos Almacenados para realizar el mantenimiento de los registros de Empleados. AHORA PROCEDEREMOS A ESCRIBIR EL CODIGO CORRESPONDIENTE: Agregar la Biblioteca de Clases SQLClient: Sirve para poder utilizar los objetos SQLconnection, SqlCommand, SqlDataAdapter Docente: José Luis Ponce Segura Prac03 (4 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 5. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Biblioteca de Clase: Option Compare Text Imports System.Data.SqlClient Imports System.Data En la Sección de Declaraciones Generales escriba: Dim dacargo As SqlDataAdapter Dim objDataAdapter As SqlDataAdapter Dim objDataSet As New DataSet Dim objDataRow As DataRow Dim posicion, flag, resultado As Integer Private Sub frmActualizarEmpleado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Conexion.Open() objDataAdapter = New SqlDataAdapter("SELECT * FROM EMPLEADO WHERE activo=1",Conexion) objDataAdapter.Fill(objDataSet, "EMPLEADO") Conexion.Close() llenarcombos(False) posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1) CargarDatos() lblRutaFoto.Visible = False HabilitarControles(False) HabilitarBotones(True) 'Estableciendo etiquetas a las cajas txtCodEmp.Tag = "Código" : txtNomEmp.Tag = "Nombres" txtApeEmp.Tag = "Apellidos" : txtDirEmp.Tag = "dirección" txtTelEmp.Tag = "Teléfono" : txtObservacion.Tag = "Observacion" End Sub Procedimientos de Usuario Private Sub llenarcombos(ByVal cargo As Boolean) Conexion.Open() desconectarcombos() dacargo = New SqlDataAdapter("SELECT * FROM cargo", ModConexion.Conexion) If cargo = False Then dacargo.Fill(objDataSet, "cargo") Else objDataSet.Tables("cargo").Clear() dacargo.Fill(objDataSet, "cargo") cargo = False End If Conexion.Close() cboCargo.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue",objDataSet, "Empleado.codcar")) cboCargo.DataSource = Me.objDataSet.Tables("Cargo") cboCargo.DisplayMember = "descar" cboCargo.ValueMember = "codcar" cboCargo.DropDownStyle = ComboBoxStyle.DropDownList ' si es que se ha agregado un nuevo cargo, lo selecionamos If cargo = False Then cboCargo.SelectedIndex = cboCargo.Items.Count - 1 End Sub Private Sub CargarDatos() Dim valor As Boolean Try objDataRow = objDataSet.Tables("EMPLEADO").Rows(posicion) txtCodEmp.Text = objDataRow("codemp") txtNomEmp.Text = objDataRow("nomemp") txtApeEmp.Text = objDataRow("apeemp") txtDirEmp.Text = objDataRow("diremp") valor = objDataRow("sexemp") Docente: José Luis Ponce Segura Prac03 (5 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 6. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II If valor Then rbtMasculino.Checked = True rbtFemenino.Checked = False Else rbtMasculino.Checked = False rbtFemenino.Checked = True End If txtTelEmp.Text = objDataRow("telemp") cboCargo.SelectedValue = objDataRow("codcar") txtObservacion.Text = objDataRow("observacion").ToString If objDataRow("foto").ToString = Nothing Then PictureBox1.Image = Nothing lblRutaFoto.Text = Nothing Else lblRutaFoto.Text = objDataRow("foto") End If If objDataRow("activo") = True Then lblActivo.Text = "Activo" : lblActivo.ForeColor = Color.Blue End if If objDataRow("activo") = False Then lblActivo.Text = "Inactivo" : lblActivo.ForeColor = Color.Red End if tslRegistro.Text = "Registro: " & posicion + 1 & " de " & _ objDataSet.Tables("EMPLEADO").Rows.Count actualizafoto() Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Private Sub HabilitarControles(ByVal est As Boolean) Dim ctrl As Control For Each ctrl In Me.Controls If TypeOf ctrl Is TextBox Then ctrl.Enabled = est Next txtCodEmp.ReadOnly = True cboCargo.Enabled = est grbSexo.Enabled = est End Sub Private Sub HabilitarBotones(ByVal est As Boolean) Dim oitem As Windows.Forms.ToolStripItem For Each oitem In ToolStrip1.Items If TypeOf oitem Is ToolStripButton Then oitem.Enabled = est End If Next tsbGuardar.Enabled = Not est tsbCancelar.Enabled = Not est btnAgregarFoto.Visible = Not est btnNuevoCargo.Visible = Not est End Sub Function verificavacios() As Boolean Dim objetos As Object For Each objetos In Me.Controls If TypeOf objetos Is TextBox Then If objetos.name <> "txtTelEmp" And objetos.name <> "txtObservacion" And objetos.TextLength = 0 Then MsgBox("Debe ingresar: " & objetos.tag) verificavacios = True Exit Function End If End If Docente: José Luis Ponce Segura Prac03 (6 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 7. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Next If cboCargo.SelectedIndex < 0 Then MsgBox("Debe seleccionar un cargo") verificavacios = True End If End Function Private Sub GeneraCodigo() Dim codi As String Dim cmd As New SqlCommand("select max(codemp) from empleado",Conexion) Conexion.Open() codi = cmd.ExecuteScalar Conexion.Close() Me.txtCodEmp.Text = Format(Val(codi) + 1, "00000") End Sub Private Sub desconectarcombos() ‘ IMPORTANTE: ESTE PROC. DEBE SER CREADO EN EL MÓDULO cboCargo.DataBindings.Clear() Public Sub LimpiarTextBox(ByVal ofrm As Form) End Sub For Each oControl As Control In ofrm.Controls Private Sub LimpiarControles() If TypeOf oControl Is TextBox Then LimpiarTextBox(Me) oControl.Text = "" PictureBox1.Image = Nothing End If End Sub Next End Sub Private Sub Desplazar(ByVal op As Integer) Select Case op Case 1 posicion = 0 CargarDatos() Case 2 If posicion = 0 Then MessageBox.Show("Primer Registro", "", 0, MessageBoxIcon.Information) Else posicion -= 1 CargarDatos() End If Case 3 If posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1) Then MessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information) Else posicion += 1 CargarDatos() End If Case 4 posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1) CargarDatos() End Select End Sub Private Sub actualizafoto() Dim mifoto As Bitmap If objDataRow("foto").ToString = Nothing Then PictureBox1.Image = Nothing Else mifoto = New Bitmap(Me.lblRutaFoto.Text) PictureBox1.Image = CType(mifoto, Image) End If End Sub Docente: José Luis Ponce Segura Prac03 (7 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 8. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Private Sub AgregaCargo(ByVal codi As String, ByVal nombre As String) 'Agregando el nuevo registro a la tabla cargo Dim objcomando As New SqlCommand("INSERT INTO Cargo (codcar,descar) VALUES (@codcar,@descar)",Conexion) 'Parámetros objcomando.Parameters.Add(New SqlParameter("@codcar", SqlDbType.VarChar)) objcomando.Parameters("@codcar").Value = codi objcomando.Parameters.Add(New SqlParameter("@descar", SqlDbType.VarChar)) objcomando.Parameters("@descar").Value = nombre Conexion.Open() objcomando.ExecuteNonQuery() ModConexion.Conexion.Close() llenarcombos(True) End Sub Private Sub Editar() Private Sub Actualizar() flag = 2 'Para actualizar el DataSet HabilitarControles(True) objDataSet.Clear() HabilitarBotones(False) objDataAdapter.Fill(objDataSet, "EMPLEADO") txtNomEmp.Focus() End Sub End Sub Private Sub Nuevo() Private Sub Cancelar() flag = 1 Conexion.Open() lblRutaFoto.Text = Nothing objDataSet.RejectChanges() HabilitarControles(True) Conexion.Close() HabilitarBotones(False) HabilitarControles(False) LimpiarControles() HabilitarBotones(True) GeneraCodigo() Desplazar(4) End Sub End Sub Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked Select Case e.ClickedItem.Name ' Actualización Case "tsbnuevo" ' Botón Nuevo Nuevo() Case "tsbguardar" ' Botón Guardar Guardar() Case "tsbeditar" ' Botón Editar Editar() Case "tsbcancelar" ' Botón Cancelar Cancelar() Case "tsbeliminar" ' Botón Desactivar Empleado Dim rpta As MsgBoxResult rpta = MsgBox("Esta seguro que desea Desactivar Al Empleado :" & _ Chr(13) & Chr(10) & txtCodEmp.Text & " - " & txtNomEmp.Text & " " & _ txtApeEmp.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación") If rpta = vbYes Then DesactivaEmpleado(txtCodEmp.Text, 0) Case "tsbsalir" ' Botón Salir Me.Close() ' Desplazamiento Case "tsbprimero" ' Ir a al Primero Desplazar(1) Case "tsbanterior" ' Ir al Anterior Desplazar(2) Case "tsbsiguiente" ' Ir al Siguiente Desplazar(3) Case "tsbultimo" ' Ir al Último Desplazar(4) End Select End Sub Docente: José Luis Ponce Segura Prac03 (8 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 9. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Private Sub Guardar() If verificavacios() = True Then Exit Sub Dim objComando As New SqlCommand Dim oper As String, valor, activo As Boolean objComando.Connection = ModConexion.Conexion objComando.CommandType = CommandType.StoredProcedure If flag = 1 Then 'Agregar objComando.CommandText = "AgregarEmpleado" oper = " insertados : " Else ' Editar objComando.CommandText = "modificarEmpleado" oper = " modificados : " End If Try 'Agregando Parametros objComando.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@nomemp", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@apeemp", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@diremp", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@sexemp", SqlDbType.Bit)) objComando.Parameters.Add(New SqlParameter("@telemp", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@codcar", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@activo", SqlDbType.Bit)) objComando.Parameters.Add(New SqlParameter("@observacion", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@foto", SqlDbType.VarChar)) 'asignando valores a parametros If rbtMasculino.Checked = True Then valor = True Else valor = False End If activo = True ' Todos los empleados nuevos son activos, ¿activar un empleado? objComando.Parameters("@codemp").Value = txtCodEmp.Text objComando.Parameters("@nomemp").Value = txtNomEmp.Text objComando.Parameters("@apeemp").Value = txtApeEmp.Text objComando.Parameters("@diremp").Value = txtDirEmp.Text objComando.Parameters("@sexemp").Value = valor objComando.Parameters("@telemp").Value = txtTelEmp.Text objComando.Parameters("@codcar").Value = cboCargo.SelectedValue objComando.Parameters("@activo").Value = activo objComando.Parameters("@observacion").Value = txtObservacion.Text objComando.Parameters("@foto").Value = lblRutaFoto.Text Conexion.Open() resultado = objComando.ExecuteNonQuery Actualizar() Conexion.Close() posicion = (objDataSet.Tables("EMPLEADO").Rows.Count - 1) MessageBox.Show("Registros " & oper & resultado, "", 0, MessageBoxIcon.Information) Catch exc As Exception MessageBox.Show(exc.Message) End Try llenarcombos(False) Desplazar(4) HabilitarControles(False) HabilitarBotones(True) End Sub Docente: José Luis Ponce Segura Prac03 (9 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 10. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Private Sub DesactivaEmpleado(ByVal codi As String, ByVal estado As Boolean) Dim objComando As New SqlCommand objComando.Connection = ModConexion.Conexion objComando.CommandType = CommandType.StoredProcedure objComando.CommandText = "DesactivaEmpleado" Try 'Agregando Parametros objComando.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@activo", SqlDbType.Bit)) 'asignando valores a parametros objComando.Parameters("@codemp").Value = codi objComando.Parameters("@activo").Value = estado Conexion.Open() resultado = objComando.ExecuteNonQuery Actualizar() Conexion.Close() MessageBox.Show(resultado & " Empleado Desactivado", "", 0, MessageBoxIcon.Information) Desplazar(1) Catch exc As Exception MessageBox.Show(exc.Message) End Try llenarcombos(False) HabilitarControles(False) HabilitarBotones(True) End Sub Private Sub btnAgregarFoto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarFoto.Click Dim mifoto As Bitmap Dim curfilename As String = "" Dim opendlg As OpenFileDialog = New OpenFileDialog opendlg.Filter = "All Bitmapfiles|*.*" Dim filter As String = opendlg.Filter opendlg.Title = "open a bitmap file" If opendlg.ShowDialog() = Windows.Forms.DialogResult.OK Then curfilename = opendlg.FileName lblRutaFoto.Text = curfilename mifoto = New Bitmap(curfilename) PictureBox1.Image = CType(mifoto, Image) Else Exit Sub End If End Sub Private Sub btnNuevoCargo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevoCargo.Click 'Generando código para el nuevo cargo Dim codi As String Dim cmd As New SqlCommand("select max(codcar) from cargo", ModConexion.Conexion) Conexion.Open() codi = cmd.ExecuteScalar codi = Format(Val(codi) + 1, "00000") Conexion.Close() ' Solicitando el nombre del nuevo cargo Dim nombre As String nombre = InputBox("Ingrese Nombre de nuevo cargo:", "Agregando Nuevo Cargo") If nombre.Length < 4 Then MsgBox("Debe ingresar mínimo 4 caracteres", MsgBoxStyle.Critical, "Error") Exit Sub Else Docente: José Luis Ponce Segura Prac03 (10 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net
  • 11. Universidad Nacional Jorge Basadre Grohmann - ITEL Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .NET II Dim rpta As MsgBoxResult rpta = MsgBox("Esta seguro que desea agregar el nuevo cargo :" & _ Chr(13) & Chr(10) & “codigo: " & codi & Chr(13) & Chr(10) & _ "Nombre: " & nombre, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación") If rpta = vbYes Then AgregaCargo(codi, nombre) Else Exit Sub End If End If End Sub Private Sub tsbBuscarbasico_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbBuscarbasico.Click, tsbBuscarAvanzado.Click Select Case sender.name Case "tsbbuscarbasico" Dim strDato As String Dim fila As Integer Dim dv As New DataView strDato = InputBox("Ingrese codigo del Empleado: ", "Buscar") dv.Table = objDataSet.Tables("Empleado") dv.Sort = "codemp" fila = dv.Find(strDato) If fila = -1 Then MessageBox.Show("Codigo del Empleado no Existe", "Cuidado") Exit Sub End If posicion = fila CargarDatos() Case "tsbbuscaravanzado" MessageBox.Show("Proximamente será implementado", "Busqueda Avanzada", MessageBoxButtons.OK, MessageBoxIcon.Information) End Select End Sub TAREA ENCARGADA: ….. / …… / …………. En base al presente formulario, proceda a realizar los formularios correspondientes para Clientes, Artículos y Categoría. Así mismo deberá enlazarlos c/u a la opción de Menú que corresponda. Haga los procedimientos necesarios para poder visualizar a los empleados Inactivos, y poder activar a uno de ellos según sea el caso. Docente: José Luis Ponce Segura Prac03 (11 de 11) e-mail : jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net