Vamos a desarrollar la pregunta Nº 3 del examen final del curso de Lenguaje de Programación Visual (4to. Ciclo). Para el desarrollo hemos utilizado el Visual Studio 2010 (VBasic .Net). El enunciado es el siguiente:
- Crear la tabla Artículos(codigo, nombre, precio) luego programar un formulario que permita visualizar los artículos en un combo, al seleccionar un artículo se deberá mostrar su precio y su código, para ingresar una cantidad y agregar dicho artículo al ListView a manera de detalles de venta.
Para este caso vamos a utilizar la base de datos Universidad la cual creamos en las anteriores publicaciones. Pueden revisarlo en el siguiente enlace:. - Consulta por rango de edades y carga de datos a un ListView desde un DataReader - Pregunta 1 (Ex.Final LPV 4to Ciclo)
- Agregar y Buscar registros en la tabla Alumnos de SQL Server - Pregunta 2 (Ex.Final LPV 4to Ciclo)
1. Abrimos nuestro SQL Server y ejecutamos las siguientes líneas de script para crear nuestra tabla Articulos con su estructura respectiva dentro de la base de datos Universidad.
use universidad;
Go
create table Articulos
(codigo varchar(5),
nombre varchar (50),
precio decimal(10,2)
);
Go
Insert into Articulos (codigo, nombre, precio) values ('A0001','LICUADORA OSTER',150.00);
Insert into Articulos (codigo, nombre, precio) values ('A0002','MP4 SONY 4GB',120.00);
Insert into Articulos (codigo, nombre, precio) values ('A0003','TABLET AOC 4GB',229.00);
Insert into Articulos (codigo, nombre, precio) values ('A0004','COCINA MABE 4
HORNILLAS',499.00);
Insert into Articulos (codigo, nombre, precio) values ('A0005','TOSTADORA IMACO',47.00);
2. Abrimos el Visual Studio 2010 (Visual Basic .Net) y realizamos los siguientes pasos:
- Archivo, nuevo, proyecto…., Visual Basic
- Seleccionar Aplicación de Windows Forms
- Colocar de nombre al proyecto VentaArticulos, desactivar la opción Crear directorio para la solución, aceptar.
- Nos dirigimos a la ventana de propiedades y a cada objeto le asignamos sus propiedades según la siguiente tabla:
Objeto
|
Propiedad
|
Valor
|
Form | Text Name | Venta de Artículos frmVentaArticulos |
Label1 | Text | ARTICULOS: |
Label2 | Text | CODIGO: |
Label3 | Text | PRECIO: |
Label4 | Text | CANTIDAD: |
Label5 | Name | lblCodigo |
Label6 | Name | lblPrecio |
Label7 | Text | TOTAL: |
Label8 | Name | lblTotal |
ComboBox1 | Name | cboArticulos |
TextBox1 | Name | txtCantidad |
ListView1 | Name | lvwDetalle |
Button1 | Text Name | VENDER btnVender |
Procedimientos asociados a eventos de los objetos
Objeto
|
Evento
|
Nombre del procedimiento
|
Form | Load | frmVentaArticulos_Load |
cboArticulos | SelectionChangeCommitted | cargarCombo |
btnVender | Click | vender |
Definidos por el usuario | --- | llenarListView() |
Para crear el procedimiento o métodos ya sabemos que tenemos que dirigirnos a la ventana de propiedades y hacer un en el icono del truenito para visualizar todos los eventos asociados al objeto (control), y podemos poner un nombre específico al método asociado al evento que usaremos.
4. Nos dirigimos a la ventana de código (haciendo doble clic sobre el formulario) y empezamos a programar: Imports System.Data.SqlClient
Public Class frmVentaArticulos
Dim con As SqlConnection
Dim drd As SqlDataReader
Dim total As Decimal = 0
Private Sub frmVentaArticulos_Load(sender As System.Object, e As System.EventArgs)Handles MyBase.Load
con = New SqlConnection("integrated
security=true;server=COMP-PCW01;database=Universidad")
lblCodigo.Text = ""
lblPrecio.Text = ""
lblTotal.Text = ""
With lvwDetalle
.Columns.Add("Codigo", 50, HorizontalAlignment.Left)
.Columns.Add("Producto", 190, HorizontalAlignment.Left)
.Columns.Add("Precio", 60, HorizontalAlignment.Right)
.Columns.Add("Cantidad", 70, HorizontalAlignment.Right)
.Columns.Add("Importe", 100, HorizontalAlignment.Right)
.View = View.Details
End With
Try
con.Open()
Dim cmd As SqlCommand = New SqlCommand("Select [codigo],[nombre] From Articulos", con)
Dim bs As New BindingSource
drd = cmd.ExecuteReader()
bs.DataSource = drd
If Not drd.HasRows Then
MsgBox("No existen
Articulos para vender", MsgBoxStyle.Information)
cboArticulos.Focus()
con.Close()
Return
End If
cboArticulos.DataSource = bs
cboArticulos.DisplayMember = "nombre"
cboArticulos.ValueMember = "codigo"
drd.Close()
Catch ex As SqlException
Dim er As SqlError
For Each er In ex.Errors
MsgBox(er.Message)
Next
End Try
con.Close()
End Sub
Private Sub llenarListView()
Dim fila As New ListViewItem
fila = lvwDetalle.Items.Add(lblCodigo.Text)
fila.SubItems.Add(cboArticulos.Text)
fila.SubItems.Add(lblPrecio.Text)
fila.SubItems.Add(txtCantidad.Text)
Dim Importe As Decimal = Decimal.Parse(lblPrecio.Text)
*Integer.Parse(txtCantidad.Text)
fila.SubItems.Add(String.Format(Importe, "f"))
total += Importe
lblTotal.Text = String.Format(total, "f")
End Sub
Private Sub cargarCombo(sender As System.Object, e As System.EventArgs) HandlescboArticulos.SelectionChangeCommitted
Try
con.Open()
Dim cmd As SqlCommand = New SqlCommand("Select [precio] From Articulos where codigo = '" + cboArticulos.SelectedValue.ToString + "'", con)
drd = cmd.ExecuteReader()
While drd.Read
lblCodigo.Text = cboArticulos.SelectedValue
lblPrecio.Text = drd(0).ToString
End While
drd.Close()
Catch ex As SqlException
Dim er As SqlError
For Each er In ex.Errors
MsgBox(er.Message)
Next
End Try
con.Close()
End Sub
Private Sub vender(sender As System.Object, e As System.EventArgs) HandlesbtnVender.Click
If lblCodigo.Text = "" Or Not IsNumeric(Val(txtCantidad.Text)) Or Val(txtCantidad.Text) <= 0 Then
MsgBox("Seleccione un
Articulo e Ingrese la cantidad a Vender",MsgBoxStyle.Exclamation)
cboArticulos.Focus()
Return
End If
llenarListView()
End Sub
End Class5. Para ejecutarlo debemos de seleccionar un articulo del combo, luego colocar la cantidad y finalmente hacer clic en Vender para que se cargue el ListView. El formulario en ejecución es el siguiente:
Cualquier consulta no duden en hacerlo y si les gusto entonces recomiéndenlo.
Ojo: Nos e olviden de hacer los cambios en la cadena de conexión con los datos de su computador.
No hay comentarios:
Publicar un comentario