Vous êtes sur la page 1sur 7

UNJBG

¡¡LÍDER EN CAPACITACIÓN INFORMÁTICA!!


ITEL
Garantía del proceso Enseñanza-Aprendizaje con las últimas
CARRERA
tecnologías, con computadoras de última generación,
Técnico Analista CURSO
impresoras, escáner, multimedia, redes, Internet, material
Programador de Programación Visual .NET II
didáctico paso a paso, biblioteca y aula virtual con docentes del
Sistemas
más alto nivel.

GUÍA DE LABORATORIO N° 02

OBJETIVOS:
• Creación por código de objetos: Command, DataReader (Escenario Conectado)
• Uso de Plantillas de Formulario de Inicio de Sesión, y Pantalla de Bienvenida, Cuadro Acerca de,
Formulario Primario MDI (Componentes utilizados: MenuStrip, ToolStrip, StatusStrip)
• Creación y uso de objetos DataView.

1. ENTORNO INTEGRADO DE DESARROLLO


• Proceda a ingresar Visual Studio .NET y realice lo siguiente:
• Deberá Abrir la solución realizada en la práctica anterior (SisVentas)

2. CREACION DE FORMULARIO DE ACCESO Y ACTUALIZACIÓN DE DATOS EN MODO CONECTADO


(FRMMODOCONECTADO.VB)
2.1. Agregue un nuevo formulario a su proyecto y guárdelo con el nombre de frmModoConectado.vb
2.2. Proceda a agregar los siguientes objetos según se observa a continuación:

2.3. Establezca los nombres (NAME) a los objetos según lo siguiente:


• Para los RadioButton: rbtnSeleccion, rbtnModificar, rbtnInsertar, rbtnEliminar respectivcamente
• Para los TextBox: txtCodigo, txtDescripcion, txtPrecio, txtStock respectivamente
• Para el Button, será btnEjecutar
• Para el Label, será lblMensaje
Así también establezca las otras propiedades para obtener la apariencia deseada

Bimestre Académico : 2009- Docente : José L. Ponce Segura.


Ciclo : V (1 de 7) Fecha : Tacna, Mayo del 2009
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II

2.4. Ahora procederemos a escribir el código correspondiente:

Option Compare Text


Imports System.Data.SqlClient
Imports System.Data

En la Sección de Declaraciones escriba:


Dim codi As String, contar As Boolean

Private Sub vergrupos(ByVal x1 As Boolean)


GroupBox1.Enabled = x1
GroupBox2.Enabled = Not x1
End Sub
Private Sub CargarDataReader()
Try
If Conexion.State = ConnectionState.Closed Then Conexion.Open()
' Crear una orden de recuperación
Dim miOrden As SqlCommand = New SqlCommand("SELECT * FROM Articulo", Conexion)
' Crear el DataReader
Dim drArticulos As SqlDataReader
' Crear el DataTable
Dim tabla As New DataTable
' Ejec.la consulta y cargamos los datos devueltos en un DataReader "DrArticulos"
drArticulos = miOrden.ExecuteReader
'Cargamos los datos desde el DataReader "drArticulos" en el DataTable "Tabla"
tabla.Load(drArticulos, LoadOption.OverwriteChanges)
' Enlazamos/Mostramos los datos en la grilla
DataGridView1.DataSource = tabla
drArticulos.Close()
Conexion.Close()
Catch exc As Exception
MessageBox.Show(exc.Message)
End Try
End Sub
Private Sub verDetalle(ByVal fila As Integer)
txtCodigo.Text = DataGridView1.Item(0, fila).Value.ToString
txtDescripcion.Text = DataGridView1.Item(1, fila).Value.ToString
txtPrecio.Text = DataGridView1.Item(2, fila).Value.ToString
txtStock.Text = DataGridView1.Item(3, fila).Value.ToString
End Sub
Private Function noseleccion(ByVal cc As String) As Boolean
If cc = Nothing Then
MessageBox.Show("Debe seleccionar un registro")
rbtnSeleccion.PerformClick()
Return True
End If
End Function
Private Sub LimpiarCajas()
Dim micontrol As Control
For Each micontrol In Me.GroupBox2.Controls
If TypeOf (micontrol) Is TextBox Then
micontrol.Text = ""
End If
Next
End Sub

Docente: José Luis Ponce Segura Prac02 (2 de 7) e-mail: jlponcesg@hotmail.com


Cel.: 952636911 www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II

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


System.EventArgs) Handles MyBase.Load
CargarDataReader()
DataGridView1.ReadOnly = True
verDetalle(0) : vergrupos(True)
End Sub
Private Sub btnEjecutar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnEjecutar.Click
Try
Dim rpta As Windows.Forms.DialogResult
Dim n As Integer, strsql As String = ""
Dim mensaje As String = "", op As Boolean
If contar = False Then
rpta = MessageBox.Show("Ejecutar Instrucción SQL=SI ó Desea Cancelar=NO", _
"Operacion", MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign, False)
If rpta = Windows.Forms.DialogResult.No Then
verDetalle(0)
CargarDataReader()
lblMensaje.Text = "Seleccione una opcion"
vergrupos(True)
Exit Sub
End If
End If
If Conexion.State = ConnectionState.Closed Then Conexion.Open()
If rbtnSeleccion.Checked = True Then
strsql = "SELECT COUNT(*) FROM Articulo"
mensaje = "Número de filas/registros: "
op = True
ElseIf rbtnModificar.Checked = True Then
strsql = "UPDATE Articulo SET CODART='" & txtCodigo.Text & "', " & _
"DESART='" & txtDescripcion.Text & "', " & "PREART=" & txtPrecio.Text & ", " & _
"STOART=" & txtStock.Text & " WHERE CODART='" & codi & "'"
mensaje = "Número de filas/registros Modificadas: "
op = False
ElseIf rbtnInsertar.Checked = True Then
strsql = "INSERT INTO Articulo (codart,desart,preart,stoart) VALUES ('" & _
txtCodigo.Text & "','" & txtDescripcion.Text & "','" & _
txtPrecio.Text & "','" & txtStock.Text & "')"
mensaje = "Número de filas/registros Insertados: "
op = False
ElseIf rbtnEliminar.Checked = True Then
strsql = "DELETE FROM Articulo WHERE CodArt='" & codi & "'"
mensaje = "Número de filas/registros Eliminados: "
op = False
End If
Dim miOrden As SqlCommand = New SqlCommand(strsql, Conexion)
If op = True Then
n = miOrden.ExecuteScalar
Else
n = miOrden.ExecuteNonQuery()
End If
vergrupos(True)
CargarDataReader() : verDetalle(0)
lblMensaje.Text = mensaje & CStr(n)
Conexion.Close()
Catch exc As Exception
MessageBox.Show(exc.Message)
End Try
End Sub

Docente: José Luis Ponce Segura Prac02 (3 de 7) e-mail: jlponcesg@hotmail.com


Cel.: 952636911 www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II

Private Sub DataGridView1_CellMouseClick(ByVal sender As Object,


ByVal e As System. . . . ) Handles DataGridView1.CellMouseClick
Dim f As Integer = DataGridView1.CurrentRow.Index
codi = DataGridView1.Item(0, f).Value.ToString
verDetalle(f)
lblMensaje.Text = "Artículo de codigo Nro. :" & codi
End Sub
Private Sub rbtnSeleccion_Click(ByVal sender . . . System.EventArgs) Handles
rbtnSeleccion.Click, rbtnModificar.Click, rbtnInsertar.Click, rbtnEliminar.Click
Select Case sender.name
Case "rbtnSeleccion"
contar = True
DataGridView1.Enabled = True
vergrupos(True)
Exit Sub
Case "rbtnModificar"
If noseleccion(codi) = True Then Exit Sub
txtCodigo.Enabled = False
DataGridView1.Enabled = True
vergrupos(False)
Case "rbtnInsertar"
txtCodigo.Enabled = True
LimpiarCajas()
txtCodigo.Text = GeneraCodigo()
DataGridView1.Enabled = False
vergrupos(False)
Case "rbtnEliminar"
If noseleccion(codi) = True Then Exit Sub
vergrupos(False)
End Select
contar = False
End Sub

3. CREACIÓN DE FORMULARIO DE INICIO DE SESIÓN(FrmInicio.vb)


3.1. Desde el Menú [Proyecto], seleccione
[Agregar Nuevo Elemento], luego nos
visualizará la siguiente ventana: Æ
3.2. En ésta ventana seleccione la Plantilla
[Formulario de inicio de sesión].
3.3. Luego deberá escribir el nombre para nuestro
formulario: FrmInicioSesion.vb
3.4. Luego para finalizar haga clic en [Agregar].
3.5. Luego tendremos el siguiente formulario con
todos los objetos necesarios para su uso:

Docente: José Luis Ponce Segura Prac02 (4 de 7) e-mail: jlponcesg@hotmail.com


Cel.: 952636911 www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II

3.6. Luego sólo nos queda agregar el código necesario para darle funcionalidad al mismo:
' Antes de Public Class FrmInicioSesion
Imports System.Data
Imports System.Data.SqlClient
' Esto va en la sección declaraciones, después de Public Class FrmInicioSesion
Dim objDataAdapter As SqlDataAdapter 'objeto Adaptador de datos
Dim objDataSet As DataSet 'objeto Conjunto de datos
Private Sub frmInicioSesion_Load(ByVal sender As System......) Handles MyBase.Load
' Abriendo la conexion al origen de datos
Conexion.Open()
'Creando objeto DataAdapter
objDataAdapter = New SqlDataAdapter("select * from usuario", Conexion)
'Creando objeto DataSet
objDataSet = New DataSet()
objDataAdapter.Fill(objDataSet, "usuario")
' Cerrando la conexión
Conexion.Close()
End Sub
Private Sub OK_Click(ByVal sender As System.Object, .......) Handles OK.Click
Static cuenta As Integer
Dim objDataView As New DataView()
objDataView.Table = objDataSet.Tables("usuario")
objDataView.RowFilter = "usuario='" & Trim(Me.UsernameTextBox.Text) & "'" & _
" and " & "clave='" & Trim(Me.PasswordTextBox.Text) & "'"
If objDataView.Count > 0 Then
Dim oDr As DataRow
oDr = objDataView.Item(0).Row
‘ Declara la variable sesion en el módulo de tipo string
sesion = oDr("nombre") & “, “ & oDr("apellido")
‘ el contenido la variable usuario podras utilizarla en cualquier form del
‘ sistema, para que veas el usuario que ingreso al sistema, por citar un
‘ ejemplo u otros usos que se le puede dar
MsgBox("Esta Usted ingresando como Operador")
Me.Hide
Dim frm As New FrmVisArticulos ' luego deberá ser FrmPrincipal
frm.Show()
Else
cuenta = cuenta + 1
If cuenta = 3 Then
MsgBox("PARA OTRA VEZ SERÁ", MsgBoxStyle.Critical, "LO SIENTO")
End
End If
MsgBox("Te queda: " + Str(3 - cuenta) + " oportunidad(es)", 16, "Error")
UsernameTextBox.Clear() : PasswordTextBox.Clear() : UsernameTextBox.Focus()
End If
End Sub

3.7. LUEGO DEBE ESTABLECER COMO OBJETO INICIAL AL FORMULARIO FrmInicioSesion.

4. CREACIÓN DE EL FORMULARIO PRINCIPAL MDI (INTERFAZ DE MÚLTIPLES DOCUMENTOS)


(FrmPrincipal.VB)

Para ello utilizaremos una plantilla como en los casos de Inicio de Sesión, Pantalla de Bienvenida, etc. Pero
haciendo los cambios necesarios para poder acceder a todos los formularios, reportes, Ayuda, etc. Para ello siga
los siguientes pasos:
4.1. Desde el Menú [Proyecto], seleccione [Agregar Nuevo Elemento], luego en la ventana deberá elegir la
Plantilla [Formulario Primario MDI].
4.2. Luego deberá escribir el nombre para nuestro formulario: FrmPrincipal.vb
4.3. Luego para finalizar haga clic en [Agregar].
Docente: José Luis Ponce Segura Prac02 (5 de 7) e-mail: jlponcesg@hotmail.com
Cel.: 952636911 www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II

4.4. Luego tendremos el siguiente formulario con un Menú, Barra de Herramientas y Barra de Estado:

PERSONALIZANDO EL MENÚ:

4.5. Como se puede apreciar ya disponemos de un formulario “esqueleto/estructura” de un Formulario Principal,


con ello hemos ahorrado tiempo en el diseño del mismo, pero debemos hacerle las siguientes
modificaciones:
4.6. Para nuestro caso no utilizaremos los Menús Archivo y Editar, entonces podemos borrarlo o NO hacerlos
visibles en tiempo de ejecución, optaremos por el segundo caso.
4.7. Haga clic en el menú Archivo (FileMenu), luego ubíquese en la propiedad Visible = False. Haga lo
mismo para el menú Editar (EditMenu).
4.8. Ahora proceda a agregar los Menús necesarios según la siguiente estructura:

Actualizar Visualizar Consultas Transacción Reportes


Clientes Clientes Clientes Venta con Factura Clientes
Empleados Empleados Empleados Visualiza Factura Empleado
Artículos Artículos Artículos Artículo
Cargo Cargo Cargo Facturas x Mes
Salir Factura Facturas

4.9. Las opciones de Menú sólo son referenciales, pudiendo Usted agregar otras si así lo requieran.

Docente: José Luis Ponce Segura Prac02 (6 de 7) e-mail: jlponcesg@hotmail.com


Cel.: 952636911 www.redtacna.net
Universidad Nacional Jorge Basadre Grohmann - ITEL
Carrera: Técnico Analista Programador de Sistemas. Curso: Programación Visual .Net II

PERSONALIZANDO LA BARRA DE HERRAMIENTAS:

4.10. Ahora procederemos a personalizar la barra de herramientas, es decir el componente ToolStrip, para ello
empiece seleccionando éste, luego seleccione la propiedad Ítems y haga clic en Colección:
, luego nos visualizará la siguiente ventana

4.11. Deberá Usted agregar botones para Artículos, Factura, Reportes, Calculadora, Ayuda, Salir, etc. Debe tener
en cuenta que estos botones son como accesos directos hacia las tareas que frecuentemente se utilizarán,
por ello deberá agregar otros botones según su criterio.

4.12. Como ejemplo agregaremos el Botón Salir, para ello haga clic en [Agregar], observará que se agregar un
nuevo miembro o botón con el nombre ToolStripButton1.

4.13. A continuación procederemos a establecer algunas propiedades a éste nuevo botón, para ello seleccione
el nuevo botón ToolStripButton1:
• (Name) = SalirToolStripButton
• Text = Salir
• ToolTipText = Salir
• Image = Deberá buscar el icono adecuado
4.14. Utilice los botones para cambiar el orden o eliminar los botones que no se utilizarán.
4.15. Para finalizar haga clic en Aceptar.

TAREA ENCARGADA:
• Proceda a crear un Formulario de Bienvenida (Pantalla de Bienvenida), para ello deberá seguir los pasos del
Formulario de Inicio de Sesión, pero esta vez deberá seleccionar Pantalla de Bienvenida y el nombre de
éste deberá ser FrmBienvenida.vb. Luego Observe Usted en Propiedades del Proyecto en la opción
Pantalla de Bienvenida.
• De forma similar al punto anterior, pero en esta ocasión deberá seleccionar otra plantilla, ésta será Cuadro
Acerca de y el nombre de éste deberá ser FrmAcercade.vb., luego deberá enlazarlo al menú correspondiente.
• Realice los procedimientos necesarios para mejorar el formulario frmModoConectado, principalmente referente
a validación: ejemplo, no se puede eliminar algunos artículos si éstos están relacionados con otra tabla, etc.

Docente: José Luis Ponce Segura Prac02 (7 de 7) e-mail: jlponcesg@hotmail.com


Cel.: 952636911 www.redtacna.net