Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Se le pide lo siguiente:
1. Formulario Mantenimiento de Categorías (Reportar, Insertar, Actualizar y
Eliminar)
2. Búsqueda por código, nombre y precio
3. Formulario Mantenimiento de Productos(Reportar, Insertar, Actualizar y
Eliminar)
4. Búsqueda por Nombre de categoría
Ayuda:
Biblioteca Entidades
1. Clase Categoría
End Sub
Public Sub New(ByVal nombrecate As String)
mNombreCategoria = nombrecate
2. Clase Producto
Biblioteca Datos
Clase: ProductoDAO
Imports Conexion
Imports Entidades
Imports System.Data
Imports System.Data.SqlClient
Public Class ProductoDAO
Public daProducto As SqlDataAdapter
Public cmdProducto As New SqlCommand
Public dsProducto As DataSet
Public drProducto As SqlDataReader
Dim objConexion As New conexionbd
Public Function AgregarProducto(ByVal objProductoE As Producto) As String
Dim mensaje As String
cmdProducto.CommandType = CommandType.StoredProcedure
cmdProducto.CommandText = "sp_insertar_producto"
cmdProducto.Connection = objConexion.obtenerconexion
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
objConexion.obtenerconexion.Open()
End If
With cmdProducto.Parameters
.Add("@idProducto", SqlDbType.Int).Value = objProductoE.idProducto
.Add("@descripcion", SqlDbType.VarChar).Value = objProductoE.DescripcionProducto
.Add("@precio", SqlDbType.Decimal).Value = objProductoE.PrecioProducto
.Add("@stock", SqlDbType.Int).Value = objProductoE.StockProducto
.Add("@idcategoria", SqlDbType.Int).Value = CInt(objProductoE.idCategoriaProducto)
End With
Dim registros As Integer
registros = cmdProducto.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro guardado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
End With
Dim registros As Integer
registros = cmdProducto.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro Actualizado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
cmdProducto.Parameters.Clear()
objConexion.obtenerconexion.Close()
End Function
Public Function listarProductos() As List(Of Producto)
Dim lista As New List(Of Producto)
Dim lector As SqlDataReader
Dim objProducto As Producto
cmdProducto = New SqlCommand("SP_Listar_Producto", objConexion.obtenerconexion)
lector = cmdProducto.ExecuteReader
While lector.Read
objProducto = New Producto
objProducto.IdProducto = lector(0)
objProducto.DescripcionProducto = lector(1)
objProducto.PrecioProducto = lector(2)
objProducto.StockProducto = lector(3)
Dim objeCategoria = New Categoria(lector(4))
objProducto.idCategoriaProducto = objeCategoria.NombreCategoria
'objProducto.idCategoriaProducto = lector(4)
lista.Add(objProducto)
End While
Return lista
End Function
Public Function listarProducto(ByVal codigo As Integer) As Producto
Dim lista As New List(Of Producto)
Dim lector As SqlDataReader
Dim objProducto As Producto
End If
Return objProducto
End Function
Public Function codProducto() As Integer
Dim codigo As Integer
Dim lector As SqlDataReader
cmdProducto = New SqlCommand("SP_Generar_Codigo_Producto", objConexion.obtenerconexion)
lector = cmdProducto.ExecuteReader
If lector.Read Then
codigo = lector(0)
End If
Return codigo
End Function
End Class
Clase: CategoriaDAO
Imports Conexion
Imports Entidades
Imports System.Data
Imports System.Data.SqlClient
Public Class CategoriaDAO
Public daCategoria As SqlDataAdapter
Public cmdCategoria As New SqlCommand
Public dsCategoria As DataSet
Public drCategoria As SqlDataReader
'Dim conn As New SqlConnection("Data Source=.;Initial Catalog=SistemaFacturacion;Integrated
Security=True")
Dim objConexion As New conexionbd
Public Function AgregarCategoria(ByVal objCategoriaE As Categoria) As String
Dim mensaje As String
cmdCategoria.CommandType = CommandType.StoredProcedure
cmdCategoria.CommandText = "SP_Inserta_Categoria"
With cmdCategoria.Parameters
.Add("@idCategoria", SqlDbType.Int).Value = objCategoriaE.idCategoria
.Add("@nombre", SqlDbType.VarChar).Value = objCategoriaE.NombreCategoria
.Add("@descripcion", SqlDbType.VarChar).Value = objCategoriaE.DescripcionCategoria
End With
Dim registros As Integer
registros = cmdCategoria.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro guardado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
cmdCategoria.Parameters.Clear()
objConexion.obtenerconexion.Close()
End Function
End With
Dim registros As Integer
registros = cmdCategoria.ExecuteNonQuery()
If registros = 1 Then
mensaje = "Registro Actualizado correctamente"
Return mensaje
Else
mensaje = "Error en la transaccion"
Return mensaje
End If
cmdCategoria.Parameters.Clear()
objConexion.obtenerconexion.Close()
End Function
Public Function listarCategorias() As List(Of Categoria)
Dim lista As New List(Of Categoria)
Dim lector As SqlDataReader
Dim objCategoria As Categoria
cmdCategoria.CommandType = CommandType.StoredProcedure
'Nombre procedimiento almacenado
cmdCategoria.CommandText = "sp_categoria_buscaridxnombre"
'obtener la conexion con la base de datos
cmdCategoria.Connection = objConexion.obtenerconexion
'Verificar el estado de la conexión
'cmdProducto = New SqlCommand("Sp_BuscarProducto", objConexion.obtenerconexion)
With cmdCategoria.Parameters
'Obtenemos el IdProducto, usando el objProductoE
.Add("@nombre", SqlDbType.VarChar).Value = nombre
End With
If objConexion.obtenerconexion.State = ConnectionState.Open Then
objConexion.obtenerconexion.Close()
Else
End Class
Biblioteca Negocio
Clase: ProductoNE
Imports Datos
Imports Entidades
Public Class ProductoNE
Private objProductoDAO As ProductoDAO
Public Sub New()
objProductoDAO = New ProductoDAO
End Sub
Public Function AgregarProducto(ByVal objProductoE As Producto) As String
Return objProductoDAO.AgregarProducto(objProductoE)
End Function
Public Function ActualizarProducto(ByVal objProductoE As Producto) As String
Return objProductoDAO.ActualizarProductos(objProductoE)
End Function
Public Function CodProducto() As Integer
Clase: CategoriaNE
Imports Datos
Imports Entidades
Public Class CategoriaNE
Private objCategoriaDAO As CategoriaDAO
Public Sub New()
objCategoriaDAO = New CategoriaDAO
End Sub
Public Function AgregarCategoria(ByVal objCategoriaE As Categoria) As String
Return objCategoriaDAO.AgregarCategoria(objCategoriaE)
End Function
Public Function ActualizarCategoria(ByVal objCategoriaE As Categoria) As String
Return objCategoriaDAO.ActualizarCategorias(objCategoriaE)
End Function
Public Function listarCategorias() As List(Of Categoria)
Return objCategoriaDAO.listarCategorias
End Function
Public Function listarCategoria(ByVal codigo As Integer) As Categoria
Return objCategoriaDAO.listarCategoria(codigo)
End Function
Public Function buscarCodxNombre(ByVal nombre As String) As Categoria
Return objCategoriaDAO.buscarCodxNombre(nombre)
End Function
Public Function CodCategoria() As Integer
Return objCategoriaDAO.codCategoria()
End Function
End Class
Biblioteca Conexión
Clase:conexionbd
Imports System.Data
Imports System.Data.SqlClient
Public Class conexionbd
Public cadena As String = "Data Source=.;Initial Catalog=BDEXA_TALLER_PRO;Integrated
Security=True"
Public conexion As SqlConnection
Public Function obtenerconexion() As SqlConnection
conexion = New SqlConnection(cadena)
conexion.Open()
Return conexion
End Function
Capa Presentación
Menú Principal:
Formularios:
FrmProducto
Imports Entidades
Imports Negocio
Public Class FrmProducto
Dim objCategoria As List(Of Categoria)
Dim objCategoriaNE As CategoriaNE
Dim objProductoNE As New ProductoNE
Private Sub FrmProducto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Dim objProductoNE1 As ProductoNE
objProductoNE1 = New ProductoNE
dgvProducto.DataSource = objProductoNE1.listarProductos
ConfigurarDataGrid()
BuscarProductos(1)
cargarCategorias()
HabilitarCajas(False)
habilitarBotones(True, False, False, False)
End Sub
Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnNuevo.Click
cargarCategorias()
Me.txtcodigo.Text = objProductoNE.CodProducto
limpiar_cajas()
End Sub
Private Sub btnGrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnGrabar.Click
Nuevo_Producto()
End Sub
Else
MsgBox("No hay ningun registro seleccionado")
End If
habilitarBotones(False, False, True, True)
HabilitarCajas(True)
End Sub
Sub LimpiarCajas()
Me.txtcodigo.Clear()
Me.txtDescripcion.Clear()
Me.txtprecio.Clear()
'Me.cboCategoria.DataSource = Nothing
Me.txtStock.Clear()
End Sub
Sub HabilitarCajas(ByVal estado)
Me.txtcodigo.Enabled = False
Me.txtDescripcion.Enabled = estado
Me.txtprecio.Enabled = estado
Me.cboCategoria.Enabled = estado
Me.txtStock.Enabled = estado
Me.txtDescripcion.Focus()
End Sub
Sub ConfigurarDataGrid()
dgvProducto.RowsDefaultCellStyle.BackColor = Color.LightYellow
dgvProducto.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen
End Sub
Sub habilitarBotones(ByVal btnnuevo As Boolean, ByVal btnAgregar As Boolean, ByVal btnActualizar As
Boolean, ByVal btncancelar As Boolean)
Me.btnNuevo.Enabled = btnnuevo
Me.btnGrabar.Enabled = btnAgregar
Me.btnActualizar.Enabled = btnActualizar
Me.btnCancelar.Enabled = btncancelar
End Sub
Sub BuscarProductos(ByVal codigo As Integer)
Dim objProductoNE As ProductoNE
objProductoNE = New ProductoNE
Dim objProductoE As New Producto
Dim idProducto As Integer
idProducto = objProductoNE.CodProducto() - 1
If codigo > idProducto Then
MsgBox("Registros no encontrado")
Else
objProductoE = objProductoNE.listarProducto(codigo)
End Class
Formulario: FrmCategoria
Imports Entidades
Imports Negocio
Public Class FrmCategoria
End Class
Grabar:
Después de haber ingresado los datos, hacemos clic en el botón Grabar, y
observamos que el registro fue guardado con éxito.
Cancelar:
Sirve para deshacer alguna acción que no estamos seguros de hacerlo.
Buscar:
Realizamos la búsqueda del producto de código 8
Ahora ya podemos actualizar los datos del producto. Si este existiera en la base de
datos.
Grabar:
Hacemos clic en grabar, para registrar la nueva categoría en la base de datos.