Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
OBJETIVO
Crear una aplicacin para demostrar un caso de mantenimiento de datos con tablas de SQL Server usando procedimientos
almacenados.
Pasos
1. Crear una base de datos llamada FACTURACION_NET en SQL Server.
Use master
Go
CREATE DATABASE FACTURACION_NET
Go
4. Crear un store procedure llamado SP_INSERTAR_CLIENTES en la base de datos para agregar nuevos clientes,
debe tener el siguiente cdigo:
PAGINA 1
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
IF @@ERROR = 0
COMMIT TRANSACTION
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
5. Crear un store procedure llamado SP_ELIMINAR_CLIENTES en la base de datos para agregar nuevos clientes,
debe tener el siguiente cdigo:
IF @@ERROR = 0
COMMIT TRANSACTION
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
6. Crear un store procedure llamado SP_BUSCAR_CLIENTES en la base de datos para localizar clientes, debe tener
el siguiente cdigo:
7. Crear un store procedure llamado SP_ACTUALIZAR_CLIENTES en la base de datos para actualizar clientes,
debe tener el siguiente cdigo:
PAGINA 2
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
EMAIL_CLI=@XEMAIL_CLI,
IDDISTRITO=@XIDDISTRITO
WHERE IDCLIENTE=@XIDCLIENTE
IF @@ERROR = 0
COMMIT TRANSACTION
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
8. Usando el Analizador de Consultas de SQL Server proceda a ingresar los siguientes registros:
Para la tabla Distritos:
Insert Distritos Values ('Callao-01','Callao','CLL','Callao')
Insert Distritos Values ('Callao-02','Bellavista','BLL','Callao')
Insert Distritos Values ('Callao-03','Carmen de la Legua','CDL','Callao')
Insert Distritos Values ('Callao-04','La Perla','PER','Callao')
Insert Distritos Values ('Callao-05','La Punta','PTA','Callao')
Insert Distritos Values ('Callao-06','Ventanilla','VEN','Callao')
PAGINA 3
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
PAGINA 4
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
El formulario debe tener los siguientes controles:
Para el logotipo crear un Control PictureBox llamado PictureBox1, para el Cdigo un TextBox llamado
TXTIDCLIENTE, para Nombres un TextBox llamado TXTNOM_CLI, para Apellidos un TextBox llamado
TXTAPE_CLI, para Telfono un TextBox llamado TXTTELF_CLI, para RUC un TextBox llamado TXTRUC_CLI,
para DNI un TextBox llamado TXTDNI_CLI, para Distritos un ComboBox llamado cmbdistrito, para Direccin un
TextBox llamado TXTDIR_CLI, para EMail un control TextBox llamado TXTEMAIL_CLI.
Crear una etiqueta llamada LBLETIQUETA, ubicarla debajo del botn Eliminar (Observe la etiqueta con borde en
el diseo).
Adems crear un GroupBox para agrupar a los controles de campo a filtrar. Dentro de este GroupBox debe crear
botones de opcin RadioButton, para DNI debe llamarse RB_DNI, para Apellidos debe llamarse RB_APELLIDO,
para Nombres debe llamarse RB_NOMBRE, para cdigo debe llamarse RB_CODIGO.
En la parte inferior, crear un DataGrid con titulo llamado Listado de Clientes, debe tener como nombre DataGrid1.
Despus de Module:
15. Despus de crear la variable de Conexin, crear los siguiente procedimiento para el control del foco:
PAGINA 5
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
16. Programar en el formulario, Antes de Public Class declarar la siguiente instruccin para tener acceso al Cliente de
SQL Server y acceder a los objetos de la base de datos de SQL Server.
Imports System.Data
Imports System.Data.SqlClient
PAGINA 6
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
TXTRUC_CLI.ReadOnly = VALOR
TXTDNI_CLI.ReadOnly = VALOR
cmbdistrito.Enabled = Not VALOR
TXTDIR_CLI.ReadOnly = VALOR
TXTEMAIL_CLI.ReadOnly = VALOR
End Sub
Try
CN.ConnectionString = "DATA SOURCE=(LOCAL);INITIAL CATALOG=FACTURACION_NET;USER ID=SA"
CN.Open()
DA.Fill(DS, "CLIENTES")
DataGrid1.DataSource = DS.Tables("CLIENTES")
DA = New SqlDataAdapter("select * from distritos", CN)
DA.Fill(DS, "DISTRITOS")
Dim DR As DataRow
For Each DR In DS.Tables("DISTRITOS").Rows
cmbdistrito.Items.Add(DR("NOM_DIS"))
Next
Call INICIAR_CONTROLES()
Call BLOQUEAR_CONTROLES(True)
Catch EX As Exception
MsgBox(EX.Message)
End Try
22. Crear una funcin llamada f_validar() que retorne un valor booleano para determinar si ya existe el cliente que se
desea registrar como nuevo:
dv = New DataView(DS.Tables("clientes"))
dv.RowFilter = "ruc_cli ='" + TXTRUC_CLI.Text + "'"
If dv.Count > 0 Then
MsgBox("El Ruc ya existe")
PAGINA 7
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
TXTRUC_CLI.Focus()
TXTRUC_CLI.BackColor = Color.Red
TXTRUC_CLI.BackColor = Color.White
Return False
End If
dv = New DataView(DS.Tables("clientes"))
dv.RowFilter = "dni_cli ='" + TXTDNI_CLI.Text + "'"
If dv.Count > 0 Then
MsgBox("El DNI ya existe")
TXTDNI_CLI.Focus()
TXTDNI_CLI.BackColor = Color.Red
TXTDNI_CLI.ForeColor = Color.White
Return False
End If
dv = Nothing
Return True
End Function
23. Crear un procedimiento llamado Refrescar que permita cargar los datos considerando los nuevos registros
agregados:
24. Crear en la base de datos una tabla llamada Indices y debe tener el siguiente cdigo :
25. Aadir a la tabla Indices un registro considerando el valor CLIENTES y como ndice 0, hacerlo desde el
analizador de consultas.
26. Crear en la base de datos un procedimiento almacenado llamado SP_NUEVO_CODIGO y debe tener el siguiente cdigo
(este procedimiento se encargar de generar el nuevo cdigo para el Cliente):
PAGINA 8
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
SELECT @INDICE=INDICE
FROM INDICES WHERE TABLA=@TABLA
GO
Try
cmd.Connection = CN
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "SP_NUEVO_CODIGO"
cmd.ExecuteNonQuery()
Catch ex As Exception
f_generar_codigo = "FALLO"
Exit Function
End Try
Ncmd.ExecuteNonQuery()
PAGINA 9
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
f_generar_codigo = "Callao-" + Format(xindice, "00")
Case "CLIENTES"
Return "Cli" + Format(xindice, "000")
Case "FACTURAS"
f_generar_codigo = Format(xindice, "0000000000")
Case "ARTICULOS"
f_generar_codigo = "Art" + Format(xindice, "000")
Case "BOLETA"
f_generar_codigo = Format(xindice, "0000000000")
End Select
End Function
28. Crear un procedimiento llamado grabar_nuevo que permita grabar el nuevo registro ingresado:
PAGINA 10
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
cmd.ExecuteNonQuery()
Catch EX As Exception
MsgBox(EX.Message)
Exit Sub
End Try
29. Crear un procedimiento llamado Grabar_Actualizacion para mantener grabados los cambios realizados y debe
tener el siguiente cdigo:
PAGINA 11
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
cmd.ExecuteNonQuery()
Catch EX As Exception
MsgBox(EX.Message)
Exit Sub
End Try
MsgBox("los Datos se Actualizaron Correctamente")
Call REFRESCAR()
End Sub
30. Crear un procedimiento llamado Buscar que asuma como parmetro un valor booleano, debe tener el siguiente
cdigo:
PAGINA 12
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
RB_APELLIDO.Enabled = valor
RB_DNI.Enabled = valor
TXTBUSCAR.Enabled = valor
BTNACEPTAR.Enabled = valor
BTNCANCELAR.Enabled = valor
DataGrid1.Enabled = valor
End Sub
32. Crear un procedimiento llamado Colors_Edit que asuma como parmetro un valor booleano, debe tener el siguiente
cdigo:
PAGINA 13
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
33. Programar el evento Clic del botn Insertar con el siguiente cdigo:
PAGINA 14
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
34. Programar el evento Clic del botn Editar con el siguiente cdigo:
Else
BLOQUEAR_CONTROLES(False)
colors_edit(True)
EDITANDO = True
BTN_EDITAR_CANCELAR.Text = "&Cancelar"
BTN_INSERTAR_GUARDAR.Text = "&Guardar"
BTN_ELIMINAR.Enabled = False
Call buscar(False)
End If
35. Programar el evento Clic del botn Eliminar con el siguiente cdigo:
Call INICIAR_CONTROLES()
Call REFRESCAR()
End If
36. Programar el evento CheckedChanged del RadioButton DNI con el siguiente cdigo:
PAGINA 15
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
TXTBUSCAR.Focus()
37. Programar el evento CheckedChanged del RadioButton Apellidos con el siguiente cdigo:
38. Programar el evento CheckedChanged del RadioButton Nombres con el siguiente cdigo:
39. Programar el evento CheckedChanged del RadioButton Codigo con el siguiente cdigo:
40. Programar el evento TextChanged de la caja de texto TxtBuscar con el siguiente cdigo:
PAGINA 16
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
Try
Dim CELDA As DataGridCell
CELDA = DataGrid1.CurrentCell
TXTIDCLIENTE.Text = DataGrid1(CELDA.RowNumber, 0)
TXTNOM_CLI.Text = DataGrid1(CELDA.RowNumber, 1)
TXTAPE_CLI.Text = DataGrid1(CELDA.RowNumber, 2)
TXTTELF_CLI.Text = DataGrid1(CELDA.RowNumber, 4)
TXTRUC_CLI.Text = DataGrid1(CELDA.RowNumber, 5)
TXTDNI_CLI.Text = DataGrid1(CELDA.RowNumber, 6)
cmbdistrito.Text = DataGrid1(CELDA.RowNumber, 8)
TXTDIR_CLI.Text = DataGrid1(CELDA.RowNumber, 3)
TXTEMAIL_CLI.Text = DataGrid1(CELDA.RowNumber, 7)
DataGrid1.Select(DataGrid1.CurrentRowIndex)
Catch EX As Exception
MsgBox("Debe Seleccionar Un registro Valido", MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly,
"SISTEMA DE FACTURACION .NET")
End Try
PAGINA 17
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
44. Programar el cdigo necesario para que al pulsar el botn Aceptar, se considere el filtro indicado, segn la
seleccin hecha por el campo a filtrar.
45. Programe adems cdigo necesario para el botn Cancelar y recupere todos los datos y los muestre en la
cuadricula indicada.
CASO A DESARROLLAR
Usando la base de Datos FACTURACION_NET, crear un formulario que permita realizar el mantenimiento de la tabla de
ARTICULOS usando store procedures, el formulario debe tener la siguiente presentacin:
PAGINA 18
VISUAL BASIC .NET
MANTENIMIENTO DE DATOS
REGISTRO DE CLIENTES
LABORATORIO
PROF. ING. DANTE GARCIA
Considerar los siguientes registros:
Insert Articulos Values ('Art001', 'CL18','PC, Mac.', 'Resolucin de imgen de 640 x 480 captura de imagenes 640 x 480
compresin JPEG, profundidad de color de 24 Bits con visor optico integrado, interfaz USB a 100 Kbps con flash integrado',
366.66, 10)
Insert Articulos Values ('Art002', 'CL50','PC, Mac.', 'Manual 4 modos: 1600Z 1200, 1290 x 960, 640 x 480 VGA, 1280 x 960
(BN), Resolucion de imagen hasta 1600 x 1200 con tecnologia PhotoGenie, interfase RS-232, velocidad de transmision hasta 230,
400 cps; cuatro modos de flash', 1345.04, 5)
Insert Articulos Values ('Art003', 'MAVICA FD85', 'PC, Mac.','600 x 480, graba en disquete', 798.00, 10)
Insert Articulos Values ('Art004', 'MAVICA FD95', 'PC, Mac.','1600 x 1200, graba en disquete y memoria', 1621.00, 10)
Insert Articulos Values ('Art005', 'PHOTO PC 650', 'PC.','1.09 mega pixeles. 8MB estndar, 64MB mximo memoria, pantalla
LCD color 1.8" TFT, capacidad para 88 imgenes mximo, conectividad serial y USB', 420.00, 10)
Insert Articulos Values ('Art006', 'PHOTO PC 750Z', 'PC.','1.25 mega pixeles. 12MB estndar, 64MB mximo memoria,
pantalla LCD color 2.0" solar Assist, capacidad para 178 imgenes mximo, zoom digital 2x, conectividad serial y USB', 680.00,
5)
PAGINA 19