SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
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
                                                           mas alto nivel.



                                       GUÍA DE LABORATORIO N° 05


OBJETIVOS: Uso de las Clases: DataTable, DataRow, DataColumn, Creación y uso de Objetos: Formularios de
Mantenimiento Maestro-Detalle, Uso de Objetos temporales en el Servidor. Cursores de Servidor SQL y DataSet,
Control de Excepciones en el Servidor y en el Cliente.


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 FACTURACION (frmFactura.vb)
     Recuperar el Proyecto de Solución SISVENTAS y realizar lo siguiente:
      • Ir al menú Proyecto, luego seleccione agregar nuevo elemento
      • Luego nos visualizará una ventana [Agregar nuevo elemento], usted deberá seleccionar Windows
         Forms. A continuación proceda a ingresar el nombre para su formulario: frmFactura.vb
      • Por último haga clic en el botón Abrir, luego éste formulario se habrá agregado al Explorador de
         soluciones.

              Proceda a Diseñar el Siguiente Formulario FrmFactura:
              a)    Deberá agregar los controles necesarios para el diseño del siguiente formulario y establezca las
                    propiedades según se observa:




Bimestre Acadêmico      : 2009-                                                             Docente   :   José Luis 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


           b)    El ToolStrip, es decir la barra de Herramientas (nuevo, guardar, etc..) deberá agregar los objetos y
                 establecer los nombres según se observa a continuación:




           c)    Modificar el Código del Módulo MODCONEXION, en el deberán declarar lo siguiente:


            Public bus, compra As Boolean
            Public cart, nart As String, part, iart, cnart, sart As Double
            Public factura As frmfactura


           d)    En el formulario principal agregar los enlaces para la barra de Menú. Escriba el siguiente código:

         Private Sub Mnufactura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                       Handles MnuconFactura.Click
              factura = New frmFactura
              factura.MdiParent = Me
              factura.Show()
         End Sub

           e)    En el botón de la barra de herramientas del formulario principal agregar el código:
                factura = New frmFactura
                factura.MdiParent = Me
                factura.Show()

           Creación de los procedimientos almacenados

           a)    PROCEDIMIENTO PARA AGREGARFACTURA

         CREATE procedure agregarfactura
         (
                @nrofac varchar(5),
                @fechfac datetime,
                @subtot float,
                @totigv float,
Docente: José Luis Ponce Segura                      Prac05 (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

                  @totfac   float,
                  @codcli   varchar(5),
                  @codemp   varchar(5),
                  @estado   bit
           )
           as
           begin transaction
           INSERT INTO Factura (nrofac,fechfac,subtot,totigv,totfac,codcli,codemp,estado)
           VALUES (@nrofac,@fechfac,@subtot,@totigv,@totfac,@codcli,@codemp,@estado)
           if @@error=0
                  Commit Transaction
           else
                  Rollback Transaction



            b)   CREACION DE LOS PROCEDIMIENTOS PARA ACTUALIZACION DE DETALLE
                                                Agregar Detalle
           CREATE procedure agregardetalle
           (
                  @nrofac varchar(5),
                  @codart varchar(5),
                  @candet int,
                  @impdet numeric
           )
           as
           Begin Transaction
           INSERT INTO detalle (nrofac,codart,candet,impdet)
           VALUES (@nrofac,@codart,@candet,@impdet)
           if @@error=0
                 Commit Transaction
           else
                 Rollback Transaction

            c)   CREAR EL PROCEDIMIENTO PARA ACTUALIZARSTOCK
           CREATE procedure actualizarStock
           (
           @codart varchar(5),
           @stoart int
           )
           as
           update articulo set
           codart=@codart,
           stoart=@stoart
           where codart=@codart
            AGREGAR EL CODIGO NECESARIO PARA EL FORMULARIO FRMFACTURA

            Biblioteca de Clase:

  Option Compare Text
  Imports System.Data
  Imports System.Data.SqlClient

En la Sección de Declaraciones Generales escriba:

     Dim   daFactura As SqlDataAdapter
     Dim   dadetalle As SqlDataAdapter
     Dim   daEmpleado As SqlDataAdapter
     Dim   daCliente As SqlDataAdapter
     Dim   daArticulo As SqlDataAdapter
     Dim   objDataSet As New DataSet
     Dim   flag As Integer
     Dim   resultado As Integer
     Dim   strNroFac As String
     Dim   fil As Integer
     Dim   objDataRow As DataRow

Docente: José Luis Ponce Segura                      Prac05 (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

     Dim posicion As Integer
     Dim nart As Byte

Código del Procedimiento Form_Load (Formulario)

Private Sub frmfactura_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
                                                                                              MyBase.Load
  Dim stremp, strcli As String
stremp = "SELECT nomemp,apeemp,codemp,diremp,sexemp,telemp,observacion,codcar,activo,nomemp + " & _
     "' '" & " + apeemp AS nomape FROM Empleado"
  strcli = "SELECT codcli,nomcli,apecli,dircli,ruccli,nomcli + " &         _
     "' '" & " + apecli AS nombres FROM cliente"
  Conexion.Open()
  daFactura = New SqlDataAdapter("select * from factura",Conexion)
  dadetalle = New SqlDataAdapter("select * from detalle",Conexion)
  daEmpleado = New SqlDataAdapter(stremp,Conexion)
  daCliente = New SqlDataAdapter(strcli, ModConexion.Conexion)
  daArticulo = New SqlDataAdapter("select * from articulo",Conexion)
  ' objDataSet = New DataSet()
  daFactura.Fill(objDataSet, "factura")
  dadetalle.Fill(objDataSet, "detalle")
  daEmpleado.Fill(objDataSet, "empleado")
  daCliente.Fill(objDataSet, "cliente")
  daArticulo.Fill(objDataSet, "articulo")
  ' relacionar las dos tablas del dataset por campo común
  objDataSet.Relations.Add("Factura_detalle", _
  objDataSet.Tables("Factura").Columns("nrofac"), _
  objDataSet.Tables("detalle").Columns("nrofac"))
  '
  Conexion.Close()
  llenarcombos()
  '
  posicion = (objDataSet.Tables("factura").Rows.Count - 1)
  CargarDatos()
  '
  ActivarControl(False)
  ActivarBoton(True)
  Me.dgvDetalleFactura.ReadOnly = True
End Sub
Private Sub CargarDatos() ' ya esta
  Try
    objDataRow = objDataSet.Tables("Factura").Rows(posicion)
    lblNroFactura.Text = objDataRow("nrofac")
    txtCodCli.Text = objDataRow("codcli")
    txtCodEmp.Text = objDataRow("codemp")
    dtpFechFac.Value = objDataRow("fechfac")
    txtSubTot.Text = objDataRow("subtot")
    txtTotIgv.Text = objDataRow("totigv")
    txtTotFac.Text = objDataRow("totfac")
    cboCliente.SelectedValue = objDataRow("codcli")
    cboEmpleado.SelectedValue = objDataRow("codemp")
    If objDataRow("estado") = True Then lblEstado.Text = Nothing : tsbEliminar.Enabled = True
    If objDataRow("estado") = False Then lblEstado.Text = "FACTURA ANULADA" :
tsbEliminar.Enabled = False
    ' Mostrar Posición en el ToolStripLabel
    Me.tslRegistro.Text = "Registro: " & posicion + 1 & " de " &         _
    objDataSet.Tables("factura").Rows.Count
    EnlazaGrilla()
  Catch exc As Exception
    MessageBox.Show(exc.Message)
  End Try
End Sub
Private Sub EnlazaGrilla()
  ' Declarando variables a utilizar
  Dim miDr As SqlDataReader
  Dim strSQL As String = "Select * from detalle where nrofac='" & lblNroFactura.Text & "'"
  Dim miDt As New DataTable
  Dim Cm As SqlCommand
  ' Establecemos la conexión con la base de datos
Docente: José Luis Ponce Segura                      Prac05 (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

  Cm = New SqlCommand(strSQL, Conexion)
  '
  Conexion.Open()
  ' Ejecutamos la sentencia SQL
  miDr = Cm.ExecuteReader
  ' Borramos el contenido del DataTable
  miDt.Clear()
  ' Cargamos los resultados en el objeto DataTable
  miDt.Load(miDr, LoadOption.OverwriteChanges)
  dgvDetalleFactura.Columns.Clear()
  dgvDetalleFactura.DataSource = miDt
  Conexion.Close()
End Sub
Private Sub llenarcombos()
  ' Conexion.Open()
  Call desconectarcombos()
  ' Enlazando el combo de cliente
  cboCliente.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objDataSet,
"factura.codcli"))
  cboCliente.DataSource = Me.objDataSet.Tables("cliente")
  cboCliente.DisplayMember = "nombres"
  cboCliente.ValueMember = "codcli"
  cboCliente.DropDownStyle = ComboBoxStyle.DropDownList
  ' enlazando el combo de empleado
  cboEmpleado.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objDataSet,
"factura.codemp"))
  cboEmpleado.DataSource = Me.objDataSet.Tables("empleado")
  cboEmpleado.DisplayMember = "nomape"
  cboEmpleado.ValueMember = "codemp"
  cboEmpleado.DropDownStyle = ComboBoxStyle.DropDownList
End Sub
Private Sub desconectarcombos()               Private Sub ActivarBoton(ByVal est As Boolean)
  cboCliente.DataBindings.Clear()               Dim oitem As Windows.Forms.ToolStripItem
  cboEmpleado.DataBindings.Clear()              For Each oitem In ToolStrip1.Items
End Sub                                           If TypeOf oitem Is ToolStripButton Then
                                                    oitem.Enabled = est
                                                  End If
                                                Next
                                                tsbGuardar.Enabled = Not est
                                                tsbCancelar.Enabled = Not est
                                              End Sub
Private Sub LimpiarControles()                Private Sub ActivarControl(ByVal est As Boolean)
  Dim ctrl As Control                           Dim ctrl As Control
  For Each ctrl In Me.Controls                  For Each ctrl In Me.Controls
 If TypeOf ctrl Is TextBox Then ctrl.Text =   If TypeOf ctrl Is GroupBox Then ctrl.Enabled = est
""                                            If TypeOf ctrl Is DateTimePicker Then ctrl.Enabled
  Next                                        = est
  cboEmpleado.Text = ""                         If TypeOf ctrl Is Button Then ctrl.Enabled = est
  cboCliente.Text = ""                          Next
End Sub                                       End Sub
Private Sub Actualizar()                                 Private Sub GeneraCodigo()
  objDataSet.Clear()                                       Dim cmd As New SqlCommand("select max(nrofac)
  daFactura.Fill(objDataSet, "factura")                                              from factura",Conexion)
  dadetalle.Fill(objDataSet, "detalle")                    Conexion.Open()
  daEmpleado.Fill(objDataSet, "empleado")                  strNroFac = cmd.ExecuteScalar
  daCliente.Fill(objDataSet, "cliente")                    Conexion.Close()
  daArticulo.Fill(objDataSet, "articulo")                  lblNroFactura.Text = Format(Val(strNroFac) + 1,
End Sub                                                  "00000")
                                                         End Sub
Public Sub totalizar()
  Dim i As Integer, st As Double
  For i = 0 To nart
    st = st + CDbl(Me.dgvDetalleFactura.Item(3, i).Value)
  Next
  Me.txtSubTot.Text = Format(st, "#######.00")
  Me.txtTotIgv.Text = Format(CDbl(Me.txtSubTot.Text) * 0.19, "#######.00")
  Me.txtTotFac.Text = Format(CDbl(Me.txtSubTot.Text) + CDbl(Me.txtTotIgv.Text), "#######.00")
End Sub

Docente: José Luis Ponce Segura                      Prac05 (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

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("Factura").Rows.Count - 1) Then
        MessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information)
      Else
        posicion += 1
        CargarDatos()
      End If
    Case 4
      posicion = (objDataSet.Tables("Factura").Rows.Count - 1)
      CargarDatos()
  End Select
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 "tsbcancelar"   ' Botón Cancelar
      cancelar()
    Case "tsbeliminar"   ' Botón Eliminar
      Dim rpta As MsgBoxResult
      rpta = MsgBox("Esta seguro que desea Anular la Factura Nro.: " & _
      lblNroFactura.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación")
      If rpta = vbYes Then AnularFactura(lblNroFactura.Text, 0)
    Case "tsbbuscar"   ' Botón Salir
      buscar()
    Case "tsbsalir"   ' Botón Salir
      Me.Close()
    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
Private Sub Nuevo()
  flag = 1
  ActivarControl(True)
  Desplazar(4)
  ActivarBoton(False)
  LimpiarControles()
  GeneraCodigo() ' llamar al proc. para generar Nro. Factura
  Me.dgvDetalleFactura.DataSource = Nothing
End Sub
Private Sub Guardar()
  Dim oper As String, estado As Boolean
  Dim cmF As New SqlCommand()
  Dim cmD As New SqlCommand()
  Dim cmA As New SqlCommand()
  'conexion de comandos
  cmF.Connection = Conexion

Docente: José Luis Ponce Segura                      Prac05 (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

  cmD.Connection = Conexion
  cmA.Connection = Conexion
  If flag = 1 Then ' Nuevo
    'asignando procedimientos almacenados
    cmF.CommandType = CommandType.StoredProcedure
    cmF.CommandText = "AgregarFactura"
    cmD.CommandType = CommandType.StoredProcedure
    cmD.CommandText = "AgregarDetalle"
    cmA.CommandType = CommandType.StoredProcedure
    cmA.CommandText = "ActualizarStock"
    oper = " insertados: "
  Else ' Editar
    cmF.CommandType = CommandType.StoredProcedure
    cmF.CommandText = "ModificarFactura"
    cmD.CommandType = CommandType.StoredProcedure
    cmD.CommandText = "ModificarDetalle"
    oper = " modificados: "
  End If
  Try
    'Para toda factura nueva el estado es activo
    estado = True
    cmF.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar))
    cmF.Parameters.Add(New SqlParameter("@fechfac", SqlDbType.DateTime))
    cmF.Parameters.Add(New SqlParameter("@subtot", SqlDbType.Float))
    cmF.Parameters.Add(New SqlParameter("@totigv", SqlDbType.Float))
    cmF.Parameters.Add(New SqlParameter("@totfac", SqlDbType.Float))
    cmF.Parameters.Add(New SqlParameter("@codcli", SqlDbType.VarChar))
    cmF.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar))
    cmF.Parameters.Add(New SqlParameter("@estado", SqlDbType.Bit))
    cmF.Parameters("@fechfac").Value = Me.dtpFechFac.Value.ToShortTimeString
    cmF.Parameters("@nrofac").Value = Me.lblNroFactura.Text
    cmF.Parameters("@subtot").Value = Me.txtSubTot.Text
    cmF.Parameters("@totigv").Value = Me.txtTotIgv.Text
    cmF.Parameters("@totfac").Value = Me.txtTotFac.Text
    cmF.Parameters("@codcli").Value = Me.txtCodCli.Text
    cmF.Parameters("@codemp").Value = Me.txtCodEmp.Text
    cmF.Parameters("@estado").Value = estado
    Conexion.Open()
    resultado = cmF.ExecuteNonQuery
    'Para detalle
    Dim i As Integer
    cmD.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar))
    cmD.Parameters.Add(New SqlParameter("@codart", SqlDbType.VarChar))
    cmD.Parameters.Add(New SqlParameter("@candet", SqlDbType.Money))
    cmD.Parameters.Add(New SqlParameter("@impdet", SqlDbType.Money))
    For i = 0 To nart - 1
      cmD.Parameters("@nrofac").Value = Me.dgvDetalleFactura.Item(0, i).Value
      cmD.Parameters("@codart").Value = Me.dgvDetalleFactura.Item(1, i).Value
      cmD.Parameters("@candet").Value = Me.dgvDetalleFactura.Item(2, i).Value
      cmD.Parameters("@impdet").Value = Me.dgvDetalleFactura.Item(3, i).Value
      resultado = cmD.ExecuteNonQuery
    Next
    'actualiza el stock
    Dim strdato1 As String
    Dim fila1, x As Integer
    Dim dv1 As New DataView()
    Dim objDatarow As DataRow
    Dim stock, nuevostock As Double
    cmA.Parameters.Add(New SqlParameter("@codart", SqlDbType.VarChar))
    cmA.Parameters.Add(New SqlParameter("@stoart", SqlDbType.VarChar))
    For i = 0 To nart - 1
      strdato1 = Me.dgvDetalleFactura.Item(1, i).Value
      dv1.Table = objDataSet.Tables("articulo")
      dv1.Sort = "codart"
      fila1 = dv1.Find(strdato1)
      If fila1 = -1 Then
         MsgBox("no existe")
      Else
        objDatarow = objDataSet.Tables("articulo").Rows(fila1)

Docente: José Luis Ponce Segura                      Prac05 (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

        stock = objDatarow("stoart")
        nuevostock = stock - Val(Me.dgvDetalleFactura.Item(2, i).Value)
        cmA.Parameters("@codart").Value = Me.dgvDetalleFactura.Item(1, i).Value
        cmA.Parameters("@stoart").Value = nuevostock
        x = cmA.ExecuteNonQuery
     End If
    Next
  Catch exc As Exception
    MessageBox.Show(exc.Message)
  End Try
  Conexion.Close()
  Actualizar()
  ActivarControl(False)
  ActivarBoton(True)
  EnlazaGrilla()
  Desplazar(1)
End Sub
Public Sub cancelar()
  Conexion.Open()
  objDataSet.RejectChanges()
  Conexion.Close()
  Desplazar(2)
  ActivarControl(False)
  ActivarBoton(True)
  EnlazaGrilla()
End Sub
Private Sub AnularFactura(ByVal codi As String, ByVal estado As Boolean)
  Dim objComando As New SqlCommand
  objComando.Connection = Conexion
  objComando.CommandType = CommandType.Text
objComando.CommandText = "UPDATE FACTURA SET nrofac=@nrofac,estado=@estado WHERE nrofac=@nrofac"
  Try
    'Agregando Parametros
    objComando.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar))
    objComando.Parameters.Add(New SqlParameter("@estado", SqlDbType.Bit))
    'asignando valores a parametros
    objComando.Parameters("@nrofac").Value = codi
    objComando.Parameters("@estado").Value = estado
    Conexion.Open()
    resultado = objComando.ExecuteNonQuery
    Actualizar()
    Conexion.Close()
    MessageBox.Show(resultado & " Factura Anualda", "", 0, MessageBoxIcon.Information)
    Desplazar(1)
  Catch exc As Exception
    MessageBox.Show(exc.Message)
  End Try
End Sub
Private Sub buscar()
  Dim strDato As String
  Dim fila As Integer
  Dim dv As DataView
  strDato = InputBox("Ingrese numero de factura", "Buscar")
  strDato = Format(Val(strDato), "00000")
  dv = objDataSet.Tables("FACTURA").DefaultView
  dv.Sort = "nrofac"
  fila = dv.Find(strDato)
  If fila = -1 Then
    MessageBox.Show("Numero de factura no existe", "Cuidado")
  Exit Sub
  End If
  posicion = fila     :     CargarDatos()
End Sub
Private Sub cboCliente_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
                                                          Handles cboCliente.SelectedIndexChanged
  If flag = 1 Then
    Me.txtCodCli.Text = Me.cboCliente.SelectedValue
  End If
End Sub

Docente: José Luis Ponce Segura                      Prac05 (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 cboEmpleado_SelectedIndexChanged(ByVal sender As Object, ByVal e As
                                       System.EventArgs) Handles cboEmpleado.SelectedIndexChanged
  If flag = 1 Then
    Me.txtCodEmp.Text = Me.cboEmpleado.SelectedValue
  End If
End Sub
Private Sub btnArticulos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                       Handles btnArticulos.Click
  Dim buscar As New FrmBuscarArticulo2005
  If buscar.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    nart = ncompras
    totalizar()
  End If
End Sub

3.   AGREGAR EL FORMULARIO DE BUSQUEDA DE ARTICULOS : FRMBUSCARARTICULO
     •    Ir al menú Proyecto, luego seleccione agregar nuevo elemento
     •    Luego nos visualizará una ventana [Agregar nuevo elemento], usted deberá seleccionar Windows
          Forms. A continuación proceda a ingresar el nombre para su formulario: frmBuscarArticulo.vb
     •    Por último haga clic en el botón Abrir, luego éste formulario se habrá agregado al Explorador de
          soluciones.

           Proceda a Diseñar el Siguiente Formulario FrmBuscarArticulo:

           a)    Diseñar el formulario de acuerdo a la siguiente presentación :




           b)    Agregar las propiedades del presente formulario de acuerdo a la tabla :

                 Objeto              Propiedad                               Valor Asignado
         Form1                Name                        frmBuscarArticulo
                              BackgroundImage             Haga clic en … y Seleccione la imagen
                              Startposition               CenterScreen
         Label1, label2 ...   Agregar las etiquetas que   Cambiar el texto que observa en la practica.
                              sean necesarias en Text
         TextBox1             Name                        TxtBusqueda
         GroupBox             Text                        Buscar por :
Docente: José Luis Ponce Segura                      Prac05 (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

         RadioButton1        Name                          RbtCodigo
         RadioButton2        Name                          RbtNombre
         DataGrid1           Name                          DataGridView1
         Label1              Name                          LblTitulo
         Label2              Name                          Lblencontrados
         Label3              Name                          LblSeleccion
         NumericUpDown       Name                          NumericUpDown1
         Textbox2            Name                          txtImporte
         Button1             Name                          Button1
                             Text                          BtnCancelar
         Button2             Name                          Button2
                             Text                          BtnAceptar

           Agregar el código necesario del presente formulario:

       Antes de cualquier codigo escriba la biblioteca de Clases :
       Imports System.Data
       Imports System.Data.SqlClient
       En Declaraciones Generales Escriba el Codigo :
           Dim strcampo As String
           Dim objDataAdapter As SqlDataAdapter
           Dim objDataSet As DataSet
           Dim sqlstr, oper As String
           Dim cod_art, des_art As String, pre_art, imp_art As Double
           Dim can_art, sto_art As Integer,f As Byte
       Private Sub FrmBuscarArticulo2005_Load(ByVal sender As System.Object, ByVal e As
                                                           System.EventArgs) Handles MyBase.Load
         txtBusqueda.Clear()
         txtBusqueda.Enabled = False
         DataGridView1.ReadOnly = True
         NumericUpDown1.Minimum = 0
       End Sub
       Private Sub rbtCodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
                                                                rbtCodigo.Click, rbtNombre.Click
         Select Case sender.name
           Case "rbtCodigo"
             strcampo = "codart"
             oper = " codigo "
           Case "rbtNombre"
             strcampo = "desart"
             oper = " nombre "
         End Select
         Me.lbltitulo.Text = "ingrese " & oper & " a buscar"
         Me.DataGridView1.DataSource = Nothing
         txtBusqueda.Enabled = True
         txtBusqueda.Clear()
         txtBusqueda.Focus()
         lblEncontrados.Text = ""
       End Sub
       Private Sub txtBusqueda_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
                                                                 Handles txtBusqueda.TextChanged
         Dim strSQL As String
         Dim total As Integer
         strSQL = "SELECT * FROM articulo WHERE " & Trim(strcampo) & " LIKE '" & _
                                                                Trim(Me.txtBusqueda.Text) & "%'"
         If txtBusqueda.Text = "" Then
           txtBusqueda.Clear()    :     txtBusqueda.Focus()
           DataGridView1.DataSource = Nothing
           Exit Sub
         End If
         objDataAdapter = New SqlDataAdapter(strSQL, Conexion)
         Conexion.Open()
         objDataSet = New DataSet()
         objDataAdapter.Fill(objDataSet, "Articulo")
         Conexion.Close()

Docente: José Luis Ponce Segura                      Prac05 (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

         total = Me.objDataSet.Tables("articulo").Rows.Count
         If total > 0 Then
           Me.DataGridView1.DataSource = objDataSet
           Me.DataGridView1.DataMember = "Articulo"
           lblEncontrados.Text = "Se encontraron " & Str(total) & " articulos"
         Else
           lblEncontrados.Text = "No se econtro el articulo...."
         End If
       End Sub
       Private Sub DataGridView1_CurrentCellChanged(ByVal sender As Object, ByVal e As
                                      System.EventArgs) Handles DataGridView1.CurrentCellChanged
         NumericUpDown1.Value = 0
         txtImporte.Clear()
         Dim fil As Integer
         fil = DataGridView1.CurrentRow.Index
         cod_art = Me.DataGridView1.Item(0, fil).Value
         des_art = Me.DataGridView1.Item(1, fil).Value
         pre_art = CDbl(Me.DataGridView1.Item(2, fil).Value)
         sto_art = CInt(Me.DataGridView1.Item(3, fil).Value)
         LblSeleccion.Text = "Artículo: " & des_art & ", Cantidad:"
         NumericUpDown1.Maximum = sto_art
       End Sub
       Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
                                                                        Handles btnAceptar.Click
         If Me.txtImporte.Text.Length = 0 Or Val(Me.txtImporte.Text) < 1 Then
             MsgBox("no se ha calculado el importe a pagar..")
             Exit Sub
         End If
         Dim rpta As String
         rpta = MsgBox("Esta seguro que desea comprar", MsgBoxStyle.YesNo +
                                                        MsgBoxStyle.Question, "Confirma Compra")
         If rpta = vbNo Then Exit Sub
         If f = 0 Then PreparaGrillaFactura()
         ncompras = f + 1
         factura.dgvDetalleFactura.Item(0, f).Value = factura.lblNroFactura.Text
         factura.dgvDetalleFactura.Item(1, f).Value = cod_art
         factura.dgvDetalleFactura.Item(2, f).Value = can_art
         factura.dgvDetalleFactura.Item(3, f).Value = imp_art
         rpta = MsgBox("Desea comprar otro artículo", MsgBoxStyle.YesNo + MsgBoxStyle.Question,
                                                                                    "Artículos")
         If rpta = vbYes Then
           f += 1
         Else
           factura.totalizar()
           Me.Dispose()
         End If
       End Sub
       Private Sub PreparaGrillaFactura()
         factura.dgvDetalleFactura.Columns.Add("NroFac", "Nro. Factura")
         factura.dgvDetalleFactura.Columns.Add("CodArt", "Cod. Artículo")
         factura.dgvDetalleFactura.Columns.Add("CanDet", "Cantidad")
         factura.dgvDetalleFactura.Columns.Add("ImpDet", "Importe")
         factura.dgvDetalleFactura.Rows.Add(4)
       End Sub
       Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As
                                                     System.EventArgs) Handles btnCancelar.Click
         factura.cancelar()
         Me.Dispose()
       End Sub
       Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As
                                           System.EventArgs) Handles NumericUpDown1.ValueChanged
         If NumericUpDown1.Value > sto_art Then
             MsgBox("La cantidad ingresada no debe ser mayor al stock del artículo")
         End If
         can_art = CInt(NumericUpDown1.Value)
         imp_art = CDbl(Format(pre_art * CDbl(NumericUpDown1.Value), "#######.00"))
         txtImporte.Text = imp_art
       End Sub


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

Weitere ähnliche Inhalte

Was ist angesagt?

C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidas
alenco
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
Darwin Durand
 

Was ist angesagt? (20)

Practica Cuatro Delphi
Practica Cuatro  DelphiPractica Cuatro  Delphi
Practica Cuatro Delphi
 
Practica Uno Delphi
Practica Uno DelphiPractica Uno Delphi
Practica Uno Delphi
 
Practica Seis Delphi
Practica Seis DelphiPractica Seis Delphi
Practica Seis Delphi
 
Guia N4 Proyectos Web My Sql Y Php
Guia N4   Proyectos Web   My Sql Y PhpGuia N4   Proyectos Web   My Sql Y Php
Guia N4 Proyectos Web My Sql Y Php
 
Guia de Laboratorios 7 - VB.NET 2005
Guia de Laboratorios 7 - VB.NET 2005Guia de Laboratorios 7 - VB.NET 2005
Guia de Laboratorios 7 - VB.NET 2005
 
5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios5. Interacción con el usuario: eventos y formularios
5. Interacción con el usuario: eventos y formularios
 
Guia no3 ado.net
Guia no3 ado.netGuia no3 ado.net
Guia no3 ado.net
 
Visual basic.net
Visual basic.netVisual basic.net
Visual basic.net
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, Js
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Practica Cinco Delphi
Practica Cinco DelphiPractica Cinco Delphi
Practica Cinco Delphi
 
C6 net beansentradasysalidas
C6 net beansentradasysalidasC6 net beansentradasysalidas
C6 net beansentradasysalidas
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
Copia de entorno de grado (1)
Copia de entorno de grado (1)Copia de entorno de grado (1)
Copia de entorno de grado (1)
 
Reporte unidad3
Reporte unidad3Reporte unidad3
Reporte unidad3
 
Semana 7 Proyecto Misión TIC 2022
Semana 7 Proyecto Misión TIC 2022Semana 7 Proyecto Misión TIC 2022
Semana 7 Proyecto Misión TIC 2022
 
Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)
 
Guia n1 tam 2009 1
Guia n1 tam 2009 1Guia n1 tam 2009 1
Guia n1 tam 2009 1
 
Enclausulamiento java
Enclausulamiento javaEnclausulamiento java
Enclausulamiento java
 

Andere mochten auch

Insertar Videos Youtube en Moodle
Insertar Videos Youtube en MoodleInsertar Videos Youtube en Moodle
Insertar Videos Youtube en Moodle
Jose Ponce
 

Andere mochten auch (20)

HTML
HTMLHTML
HTML
 
Guia N5 Proyectos Web Consultas Php Y My Sql
Guia N5   Proyectos Web   Consultas Php Y My SqlGuia N5   Proyectos Web   Consultas Php Y My Sql
Guia N5 Proyectos Web Consultas Php Y My Sql
 
Guia N1 Proyectos Web Html
Guia N1   Proyectos Web   HtmlGuia N1   Proyectos Web   Html
Guia N1 Proyectos Web Html
 
Guia N2 Proyectos Web Php
Guia N2   Proyectos Web   PhpGuia N2   Proyectos Web   Php
Guia N2 Proyectos Web Php
 
Guia4 java
Guia4 javaGuia4 java
Guia4 java
 
Guia1 java
Guia1 javaGuia1 java
Guia1 java
 
Guia2 java
Guia2 javaGuia2 java
Guia2 java
 
Guia3 java
Guia3 javaGuia3 java
Guia3 java
 
Guia8 java
Guia8 javaGuia8 java
Guia8 java
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQL
 
Guia7 java
Guia7 javaGuia7 java
Guia7 java
 
Laboratorio 03
Laboratorio 03Laboratorio 03
Laboratorio 03
 
Insertar Videos Youtube en Moodle
Insertar Videos Youtube en MoodleInsertar Videos Youtube en Moodle
Insertar Videos Youtube en Moodle
 
Guia6 java
Guia6 javaGuia6 java
Guia6 java
 
Guia5 java
Guia5 javaGuia5 java
Guia5 java
 
Cms vigil1
Cms vigil1Cms vigil1
Cms vigil1
 
Sistema electrico
Sistema electricoSistema electrico
Sistema electrico
 
Auditoria informatica
Auditoria informaticaAuditoria informatica
Auditoria informatica
 
Ficha de codigos HTML
Ficha de codigos HTMLFicha de codigos HTML
Ficha de codigos HTML
 
HTML 2011
HTML 2011HTML 2011
HTML 2011
 

Ähnlich wie Guia de Laboratorios 5 - VB.NET 2005

Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
Ronal Palomino
 
Guia laboratorios no2-programacion_avanzada
Guia laboratorios no2-programacion_avanzadaGuia laboratorios no2-programacion_avanzada
Guia laboratorios no2-programacion_avanzada
haroldhicc
 
Utp pds_lab1 introduccion a mat_lab
 Utp pds_lab1 introduccion a mat_lab Utp pds_lab1 introduccion a mat_lab
Utp pds_lab1 introduccion a mat_lab
jcbenitezp
 
Fast 1213-3-practica
Fast 1213-3-practicaFast 1213-3-practica
Fast 1213-3-practica
Juanan_Tejero
 

Ähnlich wie Guia de Laboratorios 5 - VB.NET 2005 (20)

Manual Tecnico
Manual TecnicoManual Tecnico
Manual Tecnico
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Practica 1 html_basico
Practica 1 html_basicoPractica 1 html_basico
Practica 1 html_basico
 
Manual tecnico
Manual tecnicoManual tecnico
Manual tecnico
 
Guia no2 ado.net
Guia no2 ado.netGuia no2 ado.net
Guia no2 ado.net
 
Guia laboratorios no2-programacion_avanzada
Guia laboratorios no2-programacion_avanzadaGuia laboratorios no2-programacion_avanzada
Guia laboratorios no2-programacion_avanzada
 
Utp pds_lab1 introduccion a mat_lab
 Utp pds_lab1 introduccion a mat_lab Utp pds_lab1 introduccion a mat_lab
Utp pds_lab1 introduccion a mat_lab
 
Computación 3
Computación 3Computación 3
Computación 3
 
1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx1TAP Tema 1-GUI.pptx
1TAP Tema 1-GUI.pptx
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Administracionppt
AdministracionpptAdministracionppt
Administracionppt
 
Fast 1213-3-practica
Fast 1213-3-practicaFast 1213-3-practica
Fast 1213-3-practica
 
Computación 3
Computación 3Computación 3
Computación 3
 
Modelo Cocomo
Modelo CocomoModelo Cocomo
Modelo Cocomo
 
Laboratorio 2 arquitectura de computadores
Laboratorio 2 arquitectura de computadoresLaboratorio 2 arquitectura de computadores
Laboratorio 2 arquitectura de computadores
 
Actividad no18 2do_parcial_lema_evelyn
Actividad no18 2do_parcial_lema_evelynActividad no18 2do_parcial_lema_evelyn
Actividad no18 2do_parcial_lema_evelyn
 
Crack Distribuido Atabuido
Crack Distribuido AtabuidoCrack Distribuido Atabuido
Crack Distribuido Atabuido
 
Analizador de una matriz utilizando compiladores
Analizador de una matriz utilizando compiladoresAnalizador de una matriz utilizando compiladores
Analizador de una matriz utilizando compiladores
 
Actividad no18 2do_parcial
Actividad no18 2do_parcialActividad no18 2do_parcial
Actividad no18 2do_parcial
 
Laboratorio 2 juan_pinzon
Laboratorio 2 juan_pinzonLaboratorio 2 juan_pinzon
Laboratorio 2 juan_pinzon
 

Mehr von Jose Ponce (12)

Net1 capitulo iii - estructuras condicionales
Net1   capitulo iii - estructuras condicionalesNet1   capitulo iii - estructuras condicionales
Net1 capitulo iii - estructuras condicionales
 
Net1 capitulo ii - variables de memoria & array
Net1   capitulo ii - variables de memoria & arrayNet1   capitulo ii - variables de memoria & array
Net1 capitulo ii - variables de memoria & array
 
Sesion 1 introduccion a moodle
Sesion 1  introduccion a moodleSesion 1  introduccion a moodle
Sesion 1 introduccion a moodle
 
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
PROYECTO “MEJORAMIENTO DE LA PRODUCCIÓN AGROPECUARIA RECURSOS NATURALES Y MED...
 
ADO .NET
ADO .NETADO .NET
ADO .NET
 
Manual de Joomla
Manual de JoomlaManual de Joomla
Manual de Joomla
 
Proyectos Web 1 Fundamentos
Proyectos Web   1 FundamentosProyectos Web   1 Fundamentos
Proyectos Web 1 Fundamentos
 
Proyectos Web 3 Introduccion Php
Proyectos Web   3 Introduccion PhpProyectos Web   3 Introduccion Php
Proyectos Web 3 Introduccion Php
 
Proyectos Web 2 Introduccion Html
Proyectos Web   2 Introduccion HtmlProyectos Web   2 Introduccion Html
Proyectos Web 2 Introduccion Html
 
Curso Cms 03
Curso Cms 03Curso Cms 03
Curso Cms 03
 
Curso Cms 2 Sistema De GestióN De Contenidos
Curso Cms   2 Sistema De GestióN De ContenidosCurso Cms   2 Sistema De GestióN De Contenidos
Curso Cms 2 Sistema De GestióN De Contenidos
 
Curso Cms 1 Fundamentos
Curso Cms   1 FundamentosCurso Cms   1 Fundamentos
Curso Cms 1 Fundamentos
 

Kürzlich hochgeladen

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Kürzlich hochgeladen (20)

FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptxPLAN LECTOR 2024  integrado nivel inicial-miercoles 10.pptx
PLAN LECTOR 2024 integrado nivel inicial-miercoles 10.pptx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 

Guia de Laboratorios 5 - 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 mas alto nivel. GUÍA DE LABORATORIO N° 05 OBJETIVOS: Uso de las Clases: DataTable, DataRow, DataColumn, Creación y uso de Objetos: Formularios de Mantenimiento Maestro-Detalle, Uso de Objetos temporales en el Servidor. Cursores de Servidor SQL y DataSet, Control de Excepciones en el Servidor y en el Cliente. 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 FACTURACION (frmFactura.vb) Recuperar el Proyecto de Solución SISVENTAS y realizar lo siguiente: • Ir al menú Proyecto, luego seleccione agregar nuevo elemento • Luego nos visualizará una ventana [Agregar nuevo elemento], usted deberá seleccionar Windows Forms. A continuación proceda a ingresar el nombre para su formulario: frmFactura.vb • Por último haga clic en el botón Abrir, luego éste formulario se habrá agregado al Explorador de soluciones. Proceda a Diseñar el Siguiente Formulario FrmFactura: a) Deberá agregar los controles necesarios para el diseño del siguiente formulario y establezca las propiedades según se observa: Bimestre Acadêmico : 2009- Docente : José Luis 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 b) El ToolStrip, es decir la barra de Herramientas (nuevo, guardar, etc..) deberá agregar los objetos y establecer los nombres según se observa a continuación: c) Modificar el Código del Módulo MODCONEXION, en el deberán declarar lo siguiente: Public bus, compra As Boolean Public cart, nart As String, part, iart, cnart, sart As Double Public factura As frmfactura d) En el formulario principal agregar los enlaces para la barra de Menú. Escriba el siguiente código: Private Sub Mnufactura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MnuconFactura.Click factura = New frmFactura factura.MdiParent = Me factura.Show() End Sub e) En el botón de la barra de herramientas del formulario principal agregar el código: factura = New frmFactura factura.MdiParent = Me factura.Show() Creación de los procedimientos almacenados a) PROCEDIMIENTO PARA AGREGARFACTURA CREATE procedure agregarfactura ( @nrofac varchar(5), @fechfac datetime, @subtot float, @totigv float, Docente: José Luis Ponce Segura Prac05 (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 @totfac float, @codcli varchar(5), @codemp varchar(5), @estado bit ) as begin transaction INSERT INTO Factura (nrofac,fechfac,subtot,totigv,totfac,codcli,codemp,estado) VALUES (@nrofac,@fechfac,@subtot,@totigv,@totfac,@codcli,@codemp,@estado) if @@error=0 Commit Transaction else Rollback Transaction b) CREACION DE LOS PROCEDIMIENTOS PARA ACTUALIZACION DE DETALLE Agregar Detalle CREATE procedure agregardetalle ( @nrofac varchar(5), @codart varchar(5), @candet int, @impdet numeric ) as Begin Transaction INSERT INTO detalle (nrofac,codart,candet,impdet) VALUES (@nrofac,@codart,@candet,@impdet) if @@error=0 Commit Transaction else Rollback Transaction c) CREAR EL PROCEDIMIENTO PARA ACTUALIZARSTOCK CREATE procedure actualizarStock ( @codart varchar(5), @stoart int ) as update articulo set codart=@codart, stoart=@stoart where codart=@codart AGREGAR EL CODIGO NECESARIO PARA EL FORMULARIO FRMFACTURA Biblioteca de Clase: Option Compare Text Imports System.Data Imports System.Data.SqlClient En la Sección de Declaraciones Generales escriba: Dim daFactura As SqlDataAdapter Dim dadetalle As SqlDataAdapter Dim daEmpleado As SqlDataAdapter Dim daCliente As SqlDataAdapter Dim daArticulo As SqlDataAdapter Dim objDataSet As New DataSet Dim flag As Integer Dim resultado As Integer Dim strNroFac As String Dim fil As Integer Dim objDataRow As DataRow Docente: José Luis Ponce Segura Prac05 (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 Dim posicion As Integer Dim nart As Byte Código del Procedimiento Form_Load (Formulario) Private Sub frmfactura_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim stremp, strcli As String stremp = "SELECT nomemp,apeemp,codemp,diremp,sexemp,telemp,observacion,codcar,activo,nomemp + " & _ "' '" & " + apeemp AS nomape FROM Empleado" strcli = "SELECT codcli,nomcli,apecli,dircli,ruccli,nomcli + " & _ "' '" & " + apecli AS nombres FROM cliente" Conexion.Open() daFactura = New SqlDataAdapter("select * from factura",Conexion) dadetalle = New SqlDataAdapter("select * from detalle",Conexion) daEmpleado = New SqlDataAdapter(stremp,Conexion) daCliente = New SqlDataAdapter(strcli, ModConexion.Conexion) daArticulo = New SqlDataAdapter("select * from articulo",Conexion) ' objDataSet = New DataSet() daFactura.Fill(objDataSet, "factura") dadetalle.Fill(objDataSet, "detalle") daEmpleado.Fill(objDataSet, "empleado") daCliente.Fill(objDataSet, "cliente") daArticulo.Fill(objDataSet, "articulo") ' relacionar las dos tablas del dataset por campo común objDataSet.Relations.Add("Factura_detalle", _ objDataSet.Tables("Factura").Columns("nrofac"), _ objDataSet.Tables("detalle").Columns("nrofac")) ' Conexion.Close() llenarcombos() ' posicion = (objDataSet.Tables("factura").Rows.Count - 1) CargarDatos() ' ActivarControl(False) ActivarBoton(True) Me.dgvDetalleFactura.ReadOnly = True End Sub Private Sub CargarDatos() ' ya esta Try objDataRow = objDataSet.Tables("Factura").Rows(posicion) lblNroFactura.Text = objDataRow("nrofac") txtCodCli.Text = objDataRow("codcli") txtCodEmp.Text = objDataRow("codemp") dtpFechFac.Value = objDataRow("fechfac") txtSubTot.Text = objDataRow("subtot") txtTotIgv.Text = objDataRow("totigv") txtTotFac.Text = objDataRow("totfac") cboCliente.SelectedValue = objDataRow("codcli") cboEmpleado.SelectedValue = objDataRow("codemp") If objDataRow("estado") = True Then lblEstado.Text = Nothing : tsbEliminar.Enabled = True If objDataRow("estado") = False Then lblEstado.Text = "FACTURA ANULADA" : tsbEliminar.Enabled = False ' Mostrar Posición en el ToolStripLabel Me.tslRegistro.Text = "Registro: " & posicion + 1 & " de " & _ objDataSet.Tables("factura").Rows.Count EnlazaGrilla() Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Private Sub EnlazaGrilla() ' Declarando variables a utilizar Dim miDr As SqlDataReader Dim strSQL As String = "Select * from detalle where nrofac='" & lblNroFactura.Text & "'" Dim miDt As New DataTable Dim Cm As SqlCommand ' Establecemos la conexión con la base de datos Docente: José Luis Ponce Segura Prac05 (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 Cm = New SqlCommand(strSQL, Conexion) ' Conexion.Open() ' Ejecutamos la sentencia SQL miDr = Cm.ExecuteReader ' Borramos el contenido del DataTable miDt.Clear() ' Cargamos los resultados en el objeto DataTable miDt.Load(miDr, LoadOption.OverwriteChanges) dgvDetalleFactura.Columns.Clear() dgvDetalleFactura.DataSource = miDt Conexion.Close() End Sub Private Sub llenarcombos() ' Conexion.Open() Call desconectarcombos() ' Enlazando el combo de cliente cboCliente.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objDataSet, "factura.codcli")) cboCliente.DataSource = Me.objDataSet.Tables("cliente") cboCliente.DisplayMember = "nombres" cboCliente.ValueMember = "codcli" cboCliente.DropDownStyle = ComboBoxStyle.DropDownList ' enlazando el combo de empleado cboEmpleado.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.objDataSet, "factura.codemp")) cboEmpleado.DataSource = Me.objDataSet.Tables("empleado") cboEmpleado.DisplayMember = "nomape" cboEmpleado.ValueMember = "codemp" cboEmpleado.DropDownStyle = ComboBoxStyle.DropDownList End Sub Private Sub desconectarcombos() Private Sub ActivarBoton(ByVal est As Boolean) cboCliente.DataBindings.Clear() Dim oitem As Windows.Forms.ToolStripItem cboEmpleado.DataBindings.Clear() For Each oitem In ToolStrip1.Items End Sub If TypeOf oitem Is ToolStripButton Then oitem.Enabled = est End If Next tsbGuardar.Enabled = Not est tsbCancelar.Enabled = Not est End Sub Private Sub LimpiarControles() Private Sub ActivarControl(ByVal est As Boolean) Dim ctrl As Control Dim ctrl As Control For Each ctrl In Me.Controls For Each ctrl In Me.Controls If TypeOf ctrl Is TextBox Then ctrl.Text = If TypeOf ctrl Is GroupBox Then ctrl.Enabled = est "" If TypeOf ctrl Is DateTimePicker Then ctrl.Enabled Next = est cboEmpleado.Text = "" If TypeOf ctrl Is Button Then ctrl.Enabled = est cboCliente.Text = "" Next End Sub End Sub Private Sub Actualizar() Private Sub GeneraCodigo() objDataSet.Clear() Dim cmd As New SqlCommand("select max(nrofac) daFactura.Fill(objDataSet, "factura") from factura",Conexion) dadetalle.Fill(objDataSet, "detalle") Conexion.Open() daEmpleado.Fill(objDataSet, "empleado") strNroFac = cmd.ExecuteScalar daCliente.Fill(objDataSet, "cliente") Conexion.Close() daArticulo.Fill(objDataSet, "articulo") lblNroFactura.Text = Format(Val(strNroFac) + 1, End Sub "00000") End Sub Public Sub totalizar() Dim i As Integer, st As Double For i = 0 To nart st = st + CDbl(Me.dgvDetalleFactura.Item(3, i).Value) Next Me.txtSubTot.Text = Format(st, "#######.00") Me.txtTotIgv.Text = Format(CDbl(Me.txtSubTot.Text) * 0.19, "#######.00") Me.txtTotFac.Text = Format(CDbl(Me.txtSubTot.Text) + CDbl(Me.txtTotIgv.Text), "#######.00") End Sub Docente: José Luis Ponce Segura Prac05 (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 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("Factura").Rows.Count - 1) Then MessageBox.Show("Último Registro", "", 0, MessageBoxIcon.Information) Else posicion += 1 CargarDatos() End If Case 4 posicion = (objDataSet.Tables("Factura").Rows.Count - 1) CargarDatos() End Select 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 "tsbcancelar" ' Botón Cancelar cancelar() Case "tsbeliminar" ' Botón Eliminar Dim rpta As MsgBoxResult rpta = MsgBox("Esta seguro que desea Anular la Factura Nro.: " & _ lblNroFactura.Text, MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirmación") If rpta = vbYes Then AnularFactura(lblNroFactura.Text, 0) Case "tsbbuscar" ' Botón Salir buscar() Case "tsbsalir" ' Botón Salir Me.Close() 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 Private Sub Nuevo() flag = 1 ActivarControl(True) Desplazar(4) ActivarBoton(False) LimpiarControles() GeneraCodigo() ' llamar al proc. para generar Nro. Factura Me.dgvDetalleFactura.DataSource = Nothing End Sub Private Sub Guardar() Dim oper As String, estado As Boolean Dim cmF As New SqlCommand() Dim cmD As New SqlCommand() Dim cmA As New SqlCommand() 'conexion de comandos cmF.Connection = Conexion Docente: José Luis Ponce Segura Prac05 (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 cmD.Connection = Conexion cmA.Connection = Conexion If flag = 1 Then ' Nuevo 'asignando procedimientos almacenados cmF.CommandType = CommandType.StoredProcedure cmF.CommandText = "AgregarFactura" cmD.CommandType = CommandType.StoredProcedure cmD.CommandText = "AgregarDetalle" cmA.CommandType = CommandType.StoredProcedure cmA.CommandText = "ActualizarStock" oper = " insertados: " Else ' Editar cmF.CommandType = CommandType.StoredProcedure cmF.CommandText = "ModificarFactura" cmD.CommandType = CommandType.StoredProcedure cmD.CommandText = "ModificarDetalle" oper = " modificados: " End If Try 'Para toda factura nueva el estado es activo estado = True cmF.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar)) cmF.Parameters.Add(New SqlParameter("@fechfac", SqlDbType.DateTime)) cmF.Parameters.Add(New SqlParameter("@subtot", SqlDbType.Float)) cmF.Parameters.Add(New SqlParameter("@totigv", SqlDbType.Float)) cmF.Parameters.Add(New SqlParameter("@totfac", SqlDbType.Float)) cmF.Parameters.Add(New SqlParameter("@codcli", SqlDbType.VarChar)) cmF.Parameters.Add(New SqlParameter("@codemp", SqlDbType.VarChar)) cmF.Parameters.Add(New SqlParameter("@estado", SqlDbType.Bit)) cmF.Parameters("@fechfac").Value = Me.dtpFechFac.Value.ToShortTimeString cmF.Parameters("@nrofac").Value = Me.lblNroFactura.Text cmF.Parameters("@subtot").Value = Me.txtSubTot.Text cmF.Parameters("@totigv").Value = Me.txtTotIgv.Text cmF.Parameters("@totfac").Value = Me.txtTotFac.Text cmF.Parameters("@codcli").Value = Me.txtCodCli.Text cmF.Parameters("@codemp").Value = Me.txtCodEmp.Text cmF.Parameters("@estado").Value = estado Conexion.Open() resultado = cmF.ExecuteNonQuery 'Para detalle Dim i As Integer cmD.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar)) cmD.Parameters.Add(New SqlParameter("@codart", SqlDbType.VarChar)) cmD.Parameters.Add(New SqlParameter("@candet", SqlDbType.Money)) cmD.Parameters.Add(New SqlParameter("@impdet", SqlDbType.Money)) For i = 0 To nart - 1 cmD.Parameters("@nrofac").Value = Me.dgvDetalleFactura.Item(0, i).Value cmD.Parameters("@codart").Value = Me.dgvDetalleFactura.Item(1, i).Value cmD.Parameters("@candet").Value = Me.dgvDetalleFactura.Item(2, i).Value cmD.Parameters("@impdet").Value = Me.dgvDetalleFactura.Item(3, i).Value resultado = cmD.ExecuteNonQuery Next 'actualiza el stock Dim strdato1 As String Dim fila1, x As Integer Dim dv1 As New DataView() Dim objDatarow As DataRow Dim stock, nuevostock As Double cmA.Parameters.Add(New SqlParameter("@codart", SqlDbType.VarChar)) cmA.Parameters.Add(New SqlParameter("@stoart", SqlDbType.VarChar)) For i = 0 To nart - 1 strdato1 = Me.dgvDetalleFactura.Item(1, i).Value dv1.Table = objDataSet.Tables("articulo") dv1.Sort = "codart" fila1 = dv1.Find(strdato1) If fila1 = -1 Then MsgBox("no existe") Else objDatarow = objDataSet.Tables("articulo").Rows(fila1) Docente: José Luis Ponce Segura Prac05 (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 stock = objDatarow("stoart") nuevostock = stock - Val(Me.dgvDetalleFactura.Item(2, i).Value) cmA.Parameters("@codart").Value = Me.dgvDetalleFactura.Item(1, i).Value cmA.Parameters("@stoart").Value = nuevostock x = cmA.ExecuteNonQuery End If Next Catch exc As Exception MessageBox.Show(exc.Message) End Try Conexion.Close() Actualizar() ActivarControl(False) ActivarBoton(True) EnlazaGrilla() Desplazar(1) End Sub Public Sub cancelar() Conexion.Open() objDataSet.RejectChanges() Conexion.Close() Desplazar(2) ActivarControl(False) ActivarBoton(True) EnlazaGrilla() End Sub Private Sub AnularFactura(ByVal codi As String, ByVal estado As Boolean) Dim objComando As New SqlCommand objComando.Connection = Conexion objComando.CommandType = CommandType.Text objComando.CommandText = "UPDATE FACTURA SET nrofac=@nrofac,estado=@estado WHERE nrofac=@nrofac" Try 'Agregando Parametros objComando.Parameters.Add(New SqlParameter("@nrofac", SqlDbType.VarChar)) objComando.Parameters.Add(New SqlParameter("@estado", SqlDbType.Bit)) 'asignando valores a parametros objComando.Parameters("@nrofac").Value = codi objComando.Parameters("@estado").Value = estado Conexion.Open() resultado = objComando.ExecuteNonQuery Actualizar() Conexion.Close() MessageBox.Show(resultado & " Factura Anualda", "", 0, MessageBoxIcon.Information) Desplazar(1) Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Private Sub buscar() Dim strDato As String Dim fila As Integer Dim dv As DataView strDato = InputBox("Ingrese numero de factura", "Buscar") strDato = Format(Val(strDato), "00000") dv = objDataSet.Tables("FACTURA").DefaultView dv.Sort = "nrofac" fila = dv.Find(strDato) If fila = -1 Then MessageBox.Show("Numero de factura no existe", "Cuidado") Exit Sub End If posicion = fila : CargarDatos() End Sub Private Sub cboCliente_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboCliente.SelectedIndexChanged If flag = 1 Then Me.txtCodCli.Text = Me.cboCliente.SelectedValue End If End Sub Docente: José Luis Ponce Segura Prac05 (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 cboEmpleado_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboEmpleado.SelectedIndexChanged If flag = 1 Then Me.txtCodEmp.Text = Me.cboEmpleado.SelectedValue End If End Sub Private Sub btnArticulos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnArticulos.Click Dim buscar As New FrmBuscarArticulo2005 If buscar.ShowDialog() = Windows.Forms.DialogResult.Cancel Then nart = ncompras totalizar() End If End Sub 3. AGREGAR EL FORMULARIO DE BUSQUEDA DE ARTICULOS : FRMBUSCARARTICULO • Ir al menú Proyecto, luego seleccione agregar nuevo elemento • Luego nos visualizará una ventana [Agregar nuevo elemento], usted deberá seleccionar Windows Forms. A continuación proceda a ingresar el nombre para su formulario: frmBuscarArticulo.vb • Por último haga clic en el botón Abrir, luego éste formulario se habrá agregado al Explorador de soluciones. Proceda a Diseñar el Siguiente Formulario FrmBuscarArticulo: a) Diseñar el formulario de acuerdo a la siguiente presentación : b) Agregar las propiedades del presente formulario de acuerdo a la tabla : Objeto Propiedad Valor Asignado Form1 Name frmBuscarArticulo BackgroundImage Haga clic en … y Seleccione la imagen Startposition CenterScreen Label1, label2 ... Agregar las etiquetas que Cambiar el texto que observa en la practica. sean necesarias en Text TextBox1 Name TxtBusqueda GroupBox Text Buscar por : Docente: José Luis Ponce Segura Prac05 (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 RadioButton1 Name RbtCodigo RadioButton2 Name RbtNombre DataGrid1 Name DataGridView1 Label1 Name LblTitulo Label2 Name Lblencontrados Label3 Name LblSeleccion NumericUpDown Name NumericUpDown1 Textbox2 Name txtImporte Button1 Name Button1 Text BtnCancelar Button2 Name Button2 Text BtnAceptar Agregar el código necesario del presente formulario: Antes de cualquier codigo escriba la biblioteca de Clases : Imports System.Data Imports System.Data.SqlClient En Declaraciones Generales Escriba el Codigo : Dim strcampo As String Dim objDataAdapter As SqlDataAdapter Dim objDataSet As DataSet Dim sqlstr, oper As String Dim cod_art, des_art As String, pre_art, imp_art As Double Dim can_art, sto_art As Integer,f As Byte Private Sub FrmBuscarArticulo2005_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtBusqueda.Clear() txtBusqueda.Enabled = False DataGridView1.ReadOnly = True NumericUpDown1.Minimum = 0 End Sub Private Sub rbtCodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtCodigo.Click, rbtNombre.Click Select Case sender.name Case "rbtCodigo" strcampo = "codart" oper = " codigo " Case "rbtNombre" strcampo = "desart" oper = " nombre " End Select Me.lbltitulo.Text = "ingrese " & oper & " a buscar" Me.DataGridView1.DataSource = Nothing txtBusqueda.Enabled = True txtBusqueda.Clear() txtBusqueda.Focus() lblEncontrados.Text = "" End Sub Private Sub txtBusqueda_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBusqueda.TextChanged Dim strSQL As String Dim total As Integer strSQL = "SELECT * FROM articulo WHERE " & Trim(strcampo) & " LIKE '" & _ Trim(Me.txtBusqueda.Text) & "%'" If txtBusqueda.Text = "" Then txtBusqueda.Clear() : txtBusqueda.Focus() DataGridView1.DataSource = Nothing Exit Sub End If objDataAdapter = New SqlDataAdapter(strSQL, Conexion) Conexion.Open() objDataSet = New DataSet() objDataAdapter.Fill(objDataSet, "Articulo") Conexion.Close() Docente: José Luis Ponce Segura Prac05 (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 total = Me.objDataSet.Tables("articulo").Rows.Count If total > 0 Then Me.DataGridView1.DataSource = objDataSet Me.DataGridView1.DataMember = "Articulo" lblEncontrados.Text = "Se encontraron " & Str(total) & " articulos" Else lblEncontrados.Text = "No se econtro el articulo...." End If End Sub Private Sub DataGridView1_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.CurrentCellChanged NumericUpDown1.Value = 0 txtImporte.Clear() Dim fil As Integer fil = DataGridView1.CurrentRow.Index cod_art = Me.DataGridView1.Item(0, fil).Value des_art = Me.DataGridView1.Item(1, fil).Value pre_art = CDbl(Me.DataGridView1.Item(2, fil).Value) sto_art = CInt(Me.DataGridView1.Item(3, fil).Value) LblSeleccion.Text = "Artículo: " & des_art & ", Cantidad:" NumericUpDown1.Maximum = sto_art End Sub Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click If Me.txtImporte.Text.Length = 0 Or Val(Me.txtImporte.Text) < 1 Then MsgBox("no se ha calculado el importe a pagar..") Exit Sub End If Dim rpta As String rpta = MsgBox("Esta seguro que desea comprar", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Confirma Compra") If rpta = vbNo Then Exit Sub If f = 0 Then PreparaGrillaFactura() ncompras = f + 1 factura.dgvDetalleFactura.Item(0, f).Value = factura.lblNroFactura.Text factura.dgvDetalleFactura.Item(1, f).Value = cod_art factura.dgvDetalleFactura.Item(2, f).Value = can_art factura.dgvDetalleFactura.Item(3, f).Value = imp_art rpta = MsgBox("Desea comprar otro artículo", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Artículos") If rpta = vbYes Then f += 1 Else factura.totalizar() Me.Dispose() End If End Sub Private Sub PreparaGrillaFactura() factura.dgvDetalleFactura.Columns.Add("NroFac", "Nro. Factura") factura.dgvDetalleFactura.Columns.Add("CodArt", "Cod. Artículo") factura.dgvDetalleFactura.Columns.Add("CanDet", "Cantidad") factura.dgvDetalleFactura.Columns.Add("ImpDet", "Importe") factura.dgvDetalleFactura.Rows.Add(4) End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click factura.cancelar() Me.Dispose() End Sub Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged If NumericUpDown1.Value > sto_art Then MsgBox("La cantidad ingresada no debe ser mayor al stock del artículo") End If can_art = CInt(NumericUpDown1.Value) imp_art = CDbl(Format(pre_art * CDbl(NumericUpDown1.Value), "#######.00")) txtImporte.Text = imp_art End Sub Docente: José Luis Ponce Segura Prac05 (11 de 11) e-mail: jlponcesg@hotmail.com Cel. : 952636911 www.redtacna.net