Você está na página 1de 10

DR.

LUIS BOY CHAVIL

UNIVERSIDAD NACIONAL DE TRUJILLO


Escuela de Ing. Sistemas
LABORATORIO N 02
PROGRAMACIN POR CAPAS
VISUAL BASIC NET
El siguiente enunciado debe realizarse haciendo uso de colecciones con clases, formularios,
controles pero sin hacer uso de orgenes de datos.

1. Crear una aplicacin en WindowsForms que permita realizar el mantenimiento (inserta,


modifica, elimina, presenta) a Alumnos teniendo en cuenta lo siguiente: cdigo, nombres,
apellidos, escuela. Finalmente realizar un reporte de los alumnos por diferentes criterios
(nombres, apellidos, escuela).

Criterios de evaluacin
Inserta
Modifica
Elimina
Presenta
Reporte

No se debe hacer uso de orgenes de bases de datos.

SOLUCIN
- Se cre una solucin en la siguiente ruta:
C:\Users\Luis Boy\Documents\Visual Studio 2012\Projects
El nombre de la solucin, es: SolucinAcadmica, dentro de la cual se tiene las siguientes
capas:

1
DR. LUIS BOY CHAVIL

2
DR. LUIS BOY CHAVIL

- Capas:
o AccesoDatos
o Entidad
o Negocio
o Presentacin
- Los formularios que se han desarrollado, estn en un Control TABPage, cuyo diseo se
indica a continuacin:

Descripcin de la Operacin Inserta:


- Al hacer click al botn Nuevo, se activar los dems botones, se limpian las cajas de
texto y el cursor se enfoca en la Caja de texto para el ingreso del Cdigo.
- Una vez ingresado los datos (Cdigo, Nombres, Apellidos y seleccionado la Escuela); al
hacer click en el botn Registrar; los datos pasarn al objeto ListView en forma de
coleccin.
Descripcin de la Operacin Modifica:
- Una vez registrado un conjunto de datos, se puede navegar sobre las filas del objeto
listView, para ello, cada fila seleccionada mostrar los datos en las cajas de texto a modo
de Edicin. En este punto, si se hicieran cambios y luego se pulsara el botn Modificar;
estos cambios quedarn registrados en el objeto ListView; tener en cuenta que el Cdigo
del alumno no podr modificarse ya que es utilizado como identificador.
Descripcin de la Operacin Elimina:
- La fila seleccionada del objeto ListView ser Eliminada automticamente al hacer click
al botn Eliminar.
Descripcin de la Operacin Presenta:
- El botn Presentar permite una consulta de los datos de una fila seleccionada del objeto
ListView. Estos datos aparecern deshabilitados para evitar que se realicen cambios
desde esta presentacin.

3
DR. LUIS BOY CHAVIL

Descripcin de la Operacin Reporte:


- Al presionar el botn Reporte se activar el tab Page Reporte, cuyo diseo se muestra
a continuacin:

- Las bsquedas habilitadas para los Reportes, son, Por: Nombres, Apellidos, o Escuela.
- En cualquiera de los casos anteriores, debe ingresarse el dato de criterio de bsqueda,
luego se pulsar el botn: Buscar para que se muestren los datos debidamente filtrados
por dicho criterio de bsqueda en el objeto ListView.
- El botn Regresar activa el tab page Mantenimiento Alumno.

A continuacin se lista el cdigo programado:

1. Capa: Entidad, Clase Alumno


Imports System.Deployment

Public Class Alumno


#Region "Atributos"
Private m_codigo As Integer
Private m_nombres As String
Private m_apellidos As String
Private m_escuela As String
#End Region

#Region "Mtodos"
Public Property Escuela() As String
Get
Return m_escuela
End Get

4
DR. LUIS BOY CHAVIL

Set(ByVal value As String)


m_escuela = value
End Set
End Property

Public Property Apellidos() As String


Get
Return m_apellidos
End Get
Set(ByVal value As String)
m_apellidos = value
End Set
End Property

Public Property Nombres() As String


Get
Return m_nombres
End Get
Set(ByVal value As String)
m_nombres = value
End Set
End Property

Public Property Codigo() As Integer


Get
Return m_codigo
End Get
Set(ByVal value As Integer)
m_codigo = value
End Set
End Property
#End Region
End Class

2. Capa: Negocio, Clase Lgica de Negocio: AlumnoLN


Imports Entidad
Imports AccesoDatos
Public Class AlumnoLN
' Funcin para buscar el cdigo y verificar si est repetido
Public Function VerCodigo(Cod As Integer, num As Integer, Lista(,) As String) As Boolean
Dim CodRepetido As Boolean = False
Dim n As Integer
For n = 0 To num - 1
If Val(Lista(n, 0)) = Cod Then
CodRepetido = True
End If
Next
Return CodRepetido
End Function
End Class

5
DR. LUIS BOY CHAVIL

NOTA: Es necesario establecer dos referencias: Una con la capa: Entidad y la otra con la capa:
AccesoDatos.

3. Capa: accesoDatos, Clase: AlumnoAD


Est vaca, pues no estamos utilizando conexiones con bases de datos.
Imports Entidad
Public Class AlumnoAD

End Class

NOTA: Tiene una referencia a la capa: Entidad

4. Capa: Presentacin
'Se debe referenciar a las capas: Entidad y Negocio
Imports Entidad
Imports Negocio
Public Class frmALUMNO
Private Sub frmALUMNO_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BtnNuevo.Enabled = True
BtnRegistrar.Enabled = False
BtnModificar.Enabled = False
BtnEliminar.Enabled = False
BtnPresentar.Enabled = False
BtnReporte.Enabled = False
BtnNuevo.Focus()
End Sub

Private Sub BtnNuevo_Click(sender As Object, e As EventArgs) Handles BtnNuevo.Click


BtnNuevo.Enabled = False
BtnRegistrar.Enabled = True
BtnModificar.Enabled = True
BtnEliminar.Enabled = True
BtnPresentar.Enabled = True
BtnReporte.Enabled = True
TxtCodigo.Enabled = True
TxtNombres.Enabled = True
TxtApellidos.Enabled = True
CboEscuela.Enabled = True

TxtCodigo.Text = ""
TxtNombres.Text = ""
TxtApellidos.Text = ""
CboEscuela.SelectedIndex = -1
TxtCodigo.Focus()
End Sub

6
DR. LUIS BOY CHAVIL

Private Sub BtnRegistrar_Click(sender As Object, e As EventArgs) Handles BtnRegistrar.Click


Dim obj As New Alumno
Dim AlumnoLN As New AlumnoLN
Dim ExisteCodigo As Boolean = False
Dim Fila As ListViewItem

'Dim Fila As ListViewItem


Dim NumAlumnos As Integer = ListVAlumnos.Items.Count
Dim Lista(NumAlumnos, 4) As String

' Pasar objeto ListView a una Matriz


RegistrarDatos(Lista)
obj.Codigo = CInt(TxtCodigo.Text)

' Buscar el cdigo de Alumno para ver si hay duplicado


ExisteCodigo = AlumnoLN.VerCodigo(obj.Codigo, NumAlumnos, Lista)
If ExisteCodigo = False Then
obj.Nombres = IIf(TxtNombres.Text Is Nothing, "", TxtNombres.Text)
obj.Apellidos = IIf(TxtApellidos.Text Is Nothing, "", TxtApellidos.Text)
If CboEscuela.SelectedIndex < 0 Then
MessageBox.Show("Error--Ingresa una Escuela", "Ventana de Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
obj.Escuela = CboEscuela.Text
Fila = New ListViewItem
Fila.Text = CStr(obj.Codigo)
Fila.SubItems.Add(obj.Nombres)
Fila.SubItems.Add(obj.Apellidos)
Fila.SubItems.Add(obj.Escuela)
ListVAlumnos.Items.Add(Fila)

BtnNuevo.Enabled = True
BtnRegistrar.Enabled = False
TxtCodigo.Enabled = True
BtnNuevo.Focus()
End If
Else
MessageBox.Show("Error .... El cdigo ya existe", "Ventana de Error",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

End Sub

Private Sub RegistrarDatos(ByRef Lista(,) As String)


Dim Fila As ListViewItem
Dim NumAlumnos As Integer = ListVAlumnos.Items.Count

' Pasar objeto ListView a una Matriz


Dim f As Integer = 0
For Each Fila In ListVAlumnos.SelectedItems
Lista(f, 0) = Fila.SubItems(0).Text
Lista(f, 1) = Fila.SubItems(1).Text

7
DR. LUIS BOY CHAVIL

Lista(f, 2) = Fila.SubItems(2).Text
Lista(f, 3) = Fila.SubItems(3).Text
f += 1
Next
End Sub

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


ListVAlumnos.SelectedIndexChanged
Dim fila As ListViewItem
fila = New ListViewItem
TxtCodigo.Enabled = False

For Each fila In ListVAlumnos.SelectedItems


TxtCodigo.Text = fila.SubItems(0).Text
TxtNombres.Text = fila.SubItems(1).Text
TxtApellidos.Text = fila.SubItems(2).Text
CboEscuela.Text = fila.SubItems(3).Text
Next
End Sub

Private Sub BtnModificar_Click(sender As Object, e As EventArgs) Handles BtnModificar.Click


Dim obj As New Alumno
Dim IndiceAlumno As Integer

obj.Codigo = CInt(TxtCodigo.Text)
obj.Nombres = IIf(TxtNombres.Text Is Nothing, "", TxtNombres.Text)
obj.Apellidos = IIf(TxtApellidos.Text Is Nothing, "", TxtApellidos.Text)
obj.Escuela = CboEscuela.Text

Dim NumAlumnos As Integer = ListVAlumnos.Items.Count - 1


If NumAlumnos > 0 Then
For n = 0 To NumAlumnos
If Val(ListVAlumnos.Items.Item(n).SubItems(0).Text) = obj.Codigo Then
IndiceAlumno = n
Exit For
End If
Next
End If

ListVAlumnos.Items(IndiceAlumno).SubItems(1).Text = obj.Nombres
ListVAlumnos.Items(IndiceAlumno).SubItems(2).Text = obj.Apellidos
ListVAlumnos.Items(IndiceAlumno).SubItems(3).Text = obj.Escuela

BtnNuevo.Enabled = True
BtnRegistrar.Enabled = False
TxtCodigo.Enabled = True
TxtCodigo.Focus()

End Sub

8
DR. LUIS BOY CHAVIL

Private Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click


Dim Fila As ListViewItem
Fila = New ListViewItem
For Each Fila In ListVAlumnos.SelectedItems
Fila.Remove()
Next
TxtCodigo.Enabled = True
End Sub

Private Sub BtnPresentar_Click(sender As Object, e As EventArgs) Handles BtnPresentar.Click


TxtCodigo.Enabled = False
TxtNombres.Enabled = False
TxtApellidos.Enabled = False
CboEscuela.Enabled = False
End Sub

Private Sub BtnBuscar_Click(sender As Object, e As EventArgs) Handles BtnBuscar.Click


Dim obj As Alumno = New Alumno
Dim Fila As ListViewItem
Dim DatoBusqueda As String = ""
Dim NumAlumnos As Integer = ListVAlumnos.Items.Count
LVAlumno.Items.Clear()
If NumAlumnos > 0 And TxtCriterio.Text <> "" Then
For n = 0 To NumAlumnos - 1
If RbNombres.Checked Then
DatoBusqueda = ListVAlumnos.Items.Item(n).SubItems(1).Text
End If
If RbApellidos.Checked Then
DatoBusqueda = ListVAlumnos.Items.Item(n).SubItems(2).Text
End If
If RbEscuela.Checked Then
DatoBusqueda = ListVAlumnos.Items.Item(n).SubItems(3).Text
End If
If DatoBusqueda = TxtCriterio.Text Then
obj.Codigo = ListVAlumnos.Items.Item(n).SubItems(0).Text
obj.Nombres = ListVAlumnos.Items.Item(n).SubItems(1).Text
obj.Apellidos = ListVAlumnos.Items.Item(n).SubItems(2).Text
obj.Escuela = ListVAlumnos.Items.Item(n).SubItems(3).Text
Fila = New ListViewItem
Fila.Text = obj.Codigo
Fila.SubItems.Add(obj.Nombres)
Fila.SubItems.Add(obj.Apellidos)
Fila.SubItems.Add(obj.Escuela)
LVAlumno.Items.Add(Fila)
End If
Next
End If

End Sub

9
DR. LUIS BOY CHAVIL

Private Sub BtnReporte_Click(sender As Object, e As EventArgs) Handles BtnReporte.Click


TabCAlumno.SelectedIndex = 1
End Sub

Private Sub BtnCancelar_Click(sender As Object, e As EventArgs) Handles BtnCancelar.Click


Close()
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


TabCAlumno.SelectedIndex = 0
End Sub
End Class

10

Você também pode gostar