Sei sulla pagina 1di 8

INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

GUIA PRACTICA 2 – VISUAL BASIC 2010 + SQL SERVER


MANTENIMIENTO DE TABLAS 1-N

1. En la base de datos BDALMACEN considerada en la Guía Práctica 1, implementar el


formulario para mantenimiento del Inventario de cada ítem. Utilice procedimientos
almacenados para las operaciones con la base de datos.
Solución
Paso 1: Considerar la base de datos BDALMACEN.
PROVEEDOR
id_proveedor
ENTRADA_ALMACEN
nombre_prov
nro_entrada
direc_prov
nro_factura (FK)
FACTURA
fecha
nro_factura id_proveedor (FK)
descripcion
total_bienes AREAS
valor_total id_area
nombre_area
DETALLE_ENTRADA
descripcion
nro_entrada (FK)
nro_factura (FK)
id_item (FK)
DETALLE_FACTURA cantidad SALIDA_ALMACEN
nro_factura (FK)
nro_salida
id_item (FK)
ITEM
empleado_responsable
cantidad id_item fecha_salida
fecha_entrega
nombre
id_area (FK)
nro_entrada (FK)
nro_factura (FK)
DETALLE_ITEM
INVENTARIO
id_item (FK)
cod_unico
nro_salida (FK)
responsable
cantidad
fecha
stock
id_item (FK)

Paso 2: Implementar en la base de datos los siguientes procedimientos almacenados:


a). sp_insertaInventario
b). sp_ListaInventario
c). sp_BuscaInventario
d). sp_ActualizaInventario
e). sp_EliminaInventario

CREATE PROCEDURE SP_INSERTAINVENTARIO


@PIDINV VARCHAR(10),
@RESP VARCHAR(20),
@FECHAINV DATETIME,
@STOCKINV INT,
@PIDITEM VARCHAR(20)
AS
BEGIN
INSERT INTO INVENTARIO(cod_unico,responsable,fecha,stock,id_item)
VALUES (@PIDINV,@RESP, @FECHAINV, @STOCKINV, @PIDITEM)
END

CREATE PROCEDURE SP_LISTAINVENTARIO


AS
BEGIN
SELECT * FROM INVENTARIO
END

ING. FRANCISCO RODRIGUEZ N. Pág 1


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

Paso 3: En el proyecto trabajado en la guía1, considerar en el menú de opciones en la opción


Mantenimiento, incluir Inventario.

Paso 4: En el explorador de soluciones (superior derecha) Marcar ProyectoAlmacen – click derecho


– Agregar – WindowsForm Agregue un Windows form (Form1). Cambiar el texto y name de este
formulario por el de FormInventario.

Paso 5: En el FormProveedor incorporar los controles (objetos) que se indican

ING. FRANCISCO RODRIGUEZ N. Pág 2


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

OBJETO ATRIBUTO VALOR


Label1 Text CODIGO INV
Label2 Text ITEM
Label3 Text STOCK
Label4 Text FECHA
Label5 Text RESPONSABLE
GroupBox1 Text Operaciones
TextBox1 Name txtcodigoinv
Text
TextBox2 Name txtrespons
Text
ComboBox1 Name ComboItem
NumericUpDown1 Name NumStock
DateTimePicker Name DTFecha
DataGridView Name DGVInv
Button1 Text Registrar
Name BtnRegInv
Button2 Text Actualizar
Name BtnActInv
Button3 Text Eliminar
Name BtnEliminarInv
Button4 Text Limpiar
Name BtnLimpiarInv
Button5 Text Buscar
Name BtnBuscarInv

Paso 6: En el Menú, en la opción Inventario dar doble click y escribir el siguiente código (para el
llamado del formulario desde el Menu Principal).

Private Sub INVENTARIOToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles INVENTARIOToolStripMenuItem.Click
Dim MnuInventario As New FormInventario
MnuInventario.Show()
End Sub

ING. FRANCISCO RODRIGUEZ N. Pág 3


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

Paso 7: En el explorador de soluciones (superior derecha) Marcar ProyectoAlmacen – click


derecho – Agregar – Clase. Implementar la clase Inventario con sus correspondientes atributos y
métodos.

Imports System.Data.SqlClient
Public Class Inventario
Private idinv, iditem, respons As String
Private stock As Integer
Private fechainv As Date
Private conn As SqlConnection
Private cmd As SqlCommand

Private strConn As String = "SERVER=localhost;DATABASE=BDALMACEN;Integrated


Security=SSPI;"
Sub New()
conn = New SqlConnection(strConn)
End Sub

Sub New(ByVal tidinv As String, ByVal tiditem As String, ByVal tstock As Integer, ByVal tfecha As
Date, ByVal trespons As String)
Me.idinv = tidinv
Me.iditem = tiditem
Me.stock = tstock
Me.fechainv = tfecha
Me.respons = trespons
conn = New SqlConnection(strConn)
End Sub

Public Property fidinv() As String

ING. FRANCISCO RODRIGUEZ N. Pág 4


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

Get
Return Me.idinv
End Get
Set(ByVal value As String)
Me.idinv = value
End Set
End Property

Public Property fiditem() As String


Get
Return Me.iditem
End Get
Set(ByVal value As String)
Me.iditem = value
End Set
End Property

Public Property fstock() As Integer


Get
Return Me.stock

End Get
Set(ByVal value As Integer)
Me.stock = value
End Set
End Property

Public Property ffecha() As Date


Get
Return Me.fechainv

End Get
Set(ByVal value As Date)
Me.fechainv = value
End Set
End Property

Public Property frespons() As String


Get
Return Me.respons

End Get
Set(ByVal value As String)
Me.respons = value
End Set
End Property

Public Sub RegistrarInventario()


Try
conn.Open()
cmd = New SqlCommand("SP_INSERTAINVENTARIO", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@pidinv", idinv)

ING. FRANCISCO RODRIGUEZ N. Pág 5


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

cmd.Parameters.AddWithValue("@piditem", iditem)
cmd.Parameters.AddWithValue("@stockinv", stock)
cmd.Parameters.AddWithValue("@fechainv", fechainv)
cmd.Parameters.AddWithValue("@resp", respons)
cmd.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
conn.Close()
End Try
End Sub

Public Function ListarInventarios() As DataTable


Try
Dim ds As DataSet
Dim da As SqlDataAdapter
conn.Open()
cmd = New SqlCommand("SP_LISTAINVENTARIO", conn)
cmd.CommandType = CommandType.StoredProcedure
ds = New DataSet
da = New SqlDataAdapter(cmd)
da.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
conn.Close()
End Try
End Function
End Class

Paso 8: Ubicarse en el formulario Inventario. Alli dar doble click Codificar los métodos que se
indican (dentro de la clase FormInventario

ING. FRANCISCO RODRIGUEZ N. Pág 6


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

Private Sub FormInventario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load
FillGridInv()
CargaComboItem()
End Sub

Private Sub FillGridInv()


Try
Dim objInventario As New Inventario
With objInventario
DGVInv.DataSource = .ListarInventarios
End With
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub

Private Sub CargaComboItem()


Try
Dim objItem As New Item
With objItem
ComboItem.DataSource = .ListarItems
ComboItem.DisplayMember = "Nombre"
ComboItem.ValueMember = "Id_Item"
End With
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub

Paso 9: Codificar el objeto botón Registrar en el formulario Inventario.

Private Sub BtnRegInv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


BtnRegInv.Click
Try
Dim objInventario As New Inventario
With objInventario
.fidinv = txtcodigoinv.Text
.fiditem = ComboItem.SelectedValue
.fstock = NumStock.Value
.ffecha = DTFecha.Value
.frespons = txtrespons.Text
.RegistrarInventario()
End With
MsgBox("Inventario Registrado !!!!")
FillGridInv() 'Llenar el Grid
Catch ex As Exception
MsgBox("Mensaje: " & ex.Message)
End Try
End Sub

ING. FRANCISCO RODRIGUEZ N. Pág 7


INGENIERIA INDUSTRIAL INGENIERIA DE SOFTWARE

Paso 10: Ejecutar la aplicación y probar el botón registrar inventario.

Ejercicios Propuestos
1. Implementar los procedimientos almacenados para actualizar, buscar y eliminar inventario.
2. En la clase Inventario implementar los métodos de actualizar, buscar y eliminar inventario.
3. En el formulario de Inventario implementar los botones de buscar, actualizar y eliminar
inventario.

ING. FRANCISCO RODRIGUEZ N. Pág 8

Potrebbero piacerti anche