Está en la página 1de 9

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLOGICO PÚBLICO

NOTA
“ANTENOR ORREGO ESPINOZA”
R.M. 509-86-ED REVALIDADO R.D. 0432-2006-ED
Práctica Nº 17
Programa de Estudios: COMPUTACIÓN E INFORMÁTICA Semestre Académico: 2021-II
Unidad Didáctica: TALLER DE PROGRAMACIÓN DISTRIBUIDA Ciclo de Estudios: IV
Tema: Base de Datos BATA - Factura Semana: 14
Docente: ALEJANDRO CHAMBERGO Turno: Diurno
Estudiante: CACEDA REYNA VALESKA Fecha: 2021-12-02

Programa 1. Crear una base de datos “BATA” con el administrador corporativo del SQL server y programar el
siguiente formulario de ventas.

Public Class frmBoletaVentas


Dim myDB As New ClaseManejador

Private Sub frmBoletaVentas_Load(sender As Object, e As EventArgs)


Handles MyBase.Load
myDB.Conectar()
myDB.Productos.LlenarCombo(cboProductos)
LabelTotal.Text = "0"
End Sub

Private Sub cboProductos_SelectedIndexChanged(sender As Object, e As


EventArgs) Handles cboProductos.SelectedIndexChanged
Dim nompro As String
nompro = cboProductos.Text
myDB.Productos.BuscarNombreProducto(nompro)
myDB.Productos.GetCodigo(txtIdProducto)
myDB.Productos.GetPrecio(txtPrecioPro)
End Sub

CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 1 de 9


Private Sub btnAgregar_Click(sender As Object, e As EventArgs)
Handles btnAgregar.Click
Dim importe, total As String
total = Val(LabelTotal.Text)
importe = Str(Val(txtPrecioPro.Text) * Val(txtCantidad.Text))
total = Str(Val(total) + Val(importe))
Dim fila As New ListViewItem(txtIdProducto.Text)
fila.SubItems.Add(cboProductos.Text)
fila.SubItems.Add(txtPrecioPro.Text)
fila.SubItems.Add(txtCantidad.Text)
fila.SubItems.Add(importe)
lvwBoleta.Items.Add(fila)
LabelTotal.Text = total
End Sub

Private Sub btnNuevo_Click(sender As Object, e As EventArgs) Handles


btnNuevo.Click
LimpiaControles()
myDB.Boleta.getFecha(LabelFecha)
myDB.Boleta.AutoGenerado()
myDB.Boleta.getNroBoleta(LabelNroBol)
myDB.Cliente.AutoGenerado()
myDB.Cliente.getIdCliente(txtIdCliente)
End Sub

Private Sub btnGrabar_Click(sender As Object, e As EventArgs) Handles


btnGrabar.Click
If txtNombreCli.Text = "" Then
txtIdCliente.Text = "CLI001"
txtNombreCli.Text = "Cliente"
End If
myDB.Boleta.setIdCliente(txtIdCliente)
myDB.Boleta.setNombreCli(txtNombreCli)
myDB.Boleta.setTotal(LabelTotal)
myDB.Boleta.GrabarBoleta(lvwBoleta)
End Sub

Private Sub LimpiaControles()


txtNombreCli.Text = ""
txtIdProducto.Text = ""
txtPrecioPro.Text = ""
txtCantidad.Text = ""
LabelTotal.Text = ""
cboProductos.Text = ""
lvwBoleta.Items.Clear()
End Sub
End Class

CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 2 de 9


REM ****************************ClaseManejador**************************

Imports System.Data.SqlClient
Public Class ClaseManejador
Public cn As SqlConnection
Public Productos As New ClaseProductos
Public Boleta As New ClaseBoleta
Public Cliente As New ClaseClientes

Public Sub Conectar()


cn = New SqlConnection("Data Source=.;Initial Catalog=BATA;
Integrated Security=True")
Productos.IniciaProductos(cn)
Boleta.IniciaBoleta(cn)
Cliente.IniciaCliente(cn)
End Sub
End Class

REM ****************************ClaseProductos**************************

Imports System.Data.SqlClient
Public Class ClaseProductos
Public xcn As SqlConnection
Public xcomando As SqlCommand
Public xdata As SqlDataReader
Private xcodpro, xnompro, xprepro As String

Public Sub IniciaProductos(ByVal cn As SqlConnection)


xcn = cn
End Sub

Public Sub ListarProductos(ByVal xlistView As ListView)


xcn.Open()
xcomando = xcn.CreateCommand
xcomando.CommandText = "SELECT * FROM PRODUCTOS"
xdata = xcomando.ExecuteReader()
Do While xdata.Read()
xcodpro = xdata(0)
xnompro = xdata(1)
xprepro = xdata(2)
Dim fila As New ListViewItem(xcodpro)
fila.SubItems.Add(xnompro)
fila.SubItems.Add(xprepro)
xlistView.Items.Add(fila)
Loop
xcn.Close()
End Sub

Public Sub LlenarCombo(ByVal xcomboBox As ComboBox)


CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 3 de 9
xcn.Open()
xcomando = xcn.CreateCommand
xcomando.CommandText = "SELECT * FROM PRODUCTOS"
xdata = xcomando.ExecuteReader()
Do While xdata.Read()
xnompro = xdata(1)
xprepro = xdata(2)
xcomboBox.Items.Add(xnompro)
Loop
xcn.Close()
End Sub

Public Sub BuscarNombreProducto(ByVal nom As String)


xcn.Open()
xcomando = xcn.CreateCommand
xcomando.CommandText = "SELECT * FROM PRODUCTOS WHERE
nombrepro='" + nom + "'"
xdata = xcomando.ExecuteReader()
If xdata.Read() Then
xcodpro = xdata(0)
xnompro = xdata(1)
xprepro = xdata(2)
End If
xcn.Close()
End Sub

Public Sub GetCodigo(ByVal xtext As TextBox)


xtext.Text = xcodpro
End Sub

Public Sub GetNombre(ByVal xtext As TextBox)


xtext.Text = xnompro
End Sub

Public Sub GetPrecio(ByVal xtext As TextBox)


xtext.Text = xprepro
End Sub

Public Sub Combo2Lista(ByVal xcomboBox As ComboBox, ByVal xlistView


As ListView)
Dim fila As New ListViewItem(xcodpro)
fila.SubItems.Add(xnompro)
fila.SubItems.Add(xprepro)
xlistView.Items.Add(fila)
End Sub

Public Sub Lista2Lista(ByVal n As Integer, ByVal xlistaEnt As


ListView, ByVal xlistaSal As ListView)

CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 4 de 9


xcodpro = xlistaEnt.Items(n).Text
xnompro = xlistaEnt.Items(n).SubItems(1).Text
xprepro = xlistaEnt.Items(n).SubItems(2).Text
Dim fila As New ListViewItem(xcodpro)
fila.SubItems.Add(xnompro)
fila.SubItems.Add(xprepro)
xlistaSal.Items.Add(fila)
End Sub
End Class

REM **************************** ClaseClientes **************************

Imports System.Data.SqlClient
Public Class ClaseClientes
Public xcn As SqlConnection
Public xcomando As SqlCommand
Public xdata As SqlDataReader
Private xidcliente, xnombrecli As String

Public Sub IniciaCliente(ByVal cn As SqlConnection)


xcn = cn
End Sub

Public Sub AutoGenerado()


xcn.Open()
xcomando = xcn.CreateCommand
xcomando.CommandText = "SELECT COUNT(*) FROM CLIENTES"
xdata = xcomando.ExecuteReader()
If xdata.Read() Then
xidcliente = xdata(0) + 1
xidcliente = "CLI" + Right("000" + xidcliente, 3)
End If
xcn.Close()
End Sub

Public Sub getIdCliente(ByVal xTxtIdCliente As TextBox)


xTxtIdCliente.Text = xidcliente
End Sub

End Class

REM **************************** ClaseBoleta **************************

Imports System.Data.SqlClient

CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 5 de 9


Public Class ClaseBoleta
Public xcn As SqlConnection
Public xcomando As SqlCommand
Public xdata As SqlDataReader
Private xnrobol, xidcliente, xnombrecli, xfecha, xtotal As String
Private xidproducto, xcantidad, ximporte As String

Public Sub IniciaBoleta(ByVal cn As SqlConnection)


xcn = cn
End Sub

REM METODOS DE LECTURA


Public Sub getNroBoleta(ByVal xLabelNroBol As Label)
xLabelNroBol.Text = xnrobol
End Sub

Public Sub getFecha(ByVal xLabelFecha As Label)


xfecha = Date.Today()
xLabelFecha.Text = xfecha
End Sub

Public Sub setIdCliente(ByVal xTxtIdCliente As TextBox)


xidcliente = xTxtIdCliente.Text
End Sub

Public Sub setNombreCli(ByVal xTxtNombreCli As TextBox)


xnombrecli = xTxtNombreCli.Text
End Sub

Public Sub setTotal(ByVal xLabelTotal As Label)


xtotal = xLabelTotal.Text
End Sub

REM METODOS DE PROCESO


Public Sub AutoGenerado()
xcn.Open()
xcomando = xcn.CreateCommand
xcomando.CommandText = "SELECT COUNT(*) FROM BOLETAS"
xdata = xcomando.ExecuteReader()
If xdata.Read() Then
xnrobol = xdata(0) + 1
xnrobol = "001-" + Right("000000" + xnrobol, 6)
End If
xcn.Close()
End Sub
Public Sub GrabarBoleta(ByRef xListView As ListView)
Dim opc, sw1, sw2, n, k As Integer
Dim sqlAgrega As String
If xnrobol <> "" And xtotal <> "" Then
CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 6 de 9
opc = MessageBox.Show("Desea grabar la boleta", "Aviso",
MessageBoxButtons.YesNo, MessageBoxIcon.Information)
If opc = 6 Then
xcn.Open()
xcomando = xcn.CreateCommand

If xidcliente <> "CLI001" Then


sqlAgrega = "insert into clientes values('" + xidcliente + "','" +
xnombrecli + "')"
xcomando.CommandText = sqlAgrega
sw1 = xcomando.ExecuteNonQuery
End If

sqlAgrega = "insert into boletas values('" + xnrobol + "','" + xidcliente


+ "','" + xfecha + "','" + xtotal + "')"
xcomando.CommandText = sqlAgrega
sw1 = xcomando.ExecuteNonQuery
If sw1 > 0 Then
n = xListView.Items.Count()
0
For k = 0 To n - 1
xidproducto = xListView.Items(k).Text
xcantidad = xListView.Items(k).SubItems(3).Text
ximporte = xListView.Items(k).SubItems(4).Text
sqlAgrega = "insert into detalles values('" + xnrobol + "','" +
xidproducto + "','" + xcantidad + "','" + ximporte + "')"

xcomando.CommandText = sqlAgrega
sw2 = xcomando.ExecuteNonQuery

Next
End If

If sw2 > 0 Then


MessageBox.Show("BOLETA GRABADA")
End If

xcn.Close()
End If
End If
End Sub
End Class

USE master
go
IF DB_ID('BATA') IS NOT NULL
BEGIN
DROP DATABASE BATA
END

CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 7 de 9


CREATE DATABASE BATA
go
USE BATA
go
---CREACION DE TABLAS
CREATE TABLE PRODUCTOS(
IDPRODUCTO VARCHAR(6) PRIMARY KEY,
NOMBREPRO VARCHAR(50),
PRECIOPRO VARCHAR(10)
)
-------------------------------
CREATE TABLE CLIENTES(
IDCLIENTE VARCHAR(6) PRIMARY KEY,
NOMBRECLI VARCHAR(50)
)
-------------------------------
CREATE TABLE BOLETAS(
NROBOL VARCHAR(10) PRIMARY KEY,
IDCLIENTE VARCHAR(6),
FECHA VARCHAR(10),
TOTAL VARCHAR(10)
)
-------------------------------
CREATE TABLE DETALLES(
NROBOL VARCHAR(10),
IDPRODUCTO VARCHAR(6),
CANTIDAD VARCHAR(10),
IMPORTE VARCHAR(10)
)
---RELACIONES ENTRE TABLAS
ALTER TABLE BOLETAS
ADD CONSTRAINT FK1
FOREIGN KEY (IDCLIENTE)
REFERENCES CLIENTES(IDCLIENTE)
-------------
ALTER TABLE DETALLES
ADD CONSTRAINT FK2
FOREIGN KEY (NROBOL)
REFERENCES BOLETAS(NROBOL)
-------------
ALTER TABLE DETALLES
ADD CONSTRAINT FK3
FOREIGN KEY (IDPRODUCTO)
REFERENCES PRODUCTOS(IDPRODUCTO)
-------------
--INGRESO DE DATOS
INSERT INTO PRODUCTOS VALUES('PRO001','Sandalias Jessica Blanco', '19.90')
INSERT INTO PRODUCTOS VALUES('PRO002','Zapatillas Outdoor Florida Gris', '111.90')
INSERT INTO PRODUCTOS VALUES('PRO003','Sandalias Casuales Bata Kimmie Camel', '129.90')
INSERT INTO PRODUCTOS VALUES('PRO004','Zapatillas Urbanas North Star Aoon Blanco', '69.90')
INSERT INTO PRODUCTOS VALUES('PRO005','Zapatillas Deportivas Power Notus Mystyle 6', '149.90')
INSERT INTO PRODUCTOS VALUES('PRO006','Pantuflas Bata Papucha Cafe', '69.90')
INSERT INTO PRODUCTOS VALUES('PRO007','Botines Casuales Newstar Negro', '111.90')
INSERT INTO PRODUCTOS VALUES('PRO008','Zapatillas Outdoor Power Quest Refract Gris', '95.90')
INSERT INTO PRODUCTOS VALUES('PRO009','Zapatillas Casuales Bata Mateo Café', '209.90')
--INGRESO DE DATOS
INSERT INTO CLIENTES VALUES('CLI001','APELLIDOS Y NOMBRES')

CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 8 de 9


CHAMBERGO -TALLER DE PROGRAMACIÓN DISTRIBUIDA – PRÁCTICA 18 │ Página 9 de 9

También podría gustarte