Imports LN Imports EN Public Class FrmBuscarAreaEducativa Private gestorAreaEducativa As New AreaEducativaLN Private objAreaEducativaEN As New AreaEducativaEN 'Private objAreaEducativaAD As New AreaEducativaAD Private strAccion As String Public listaAreasEducativasBuscadas As New List(Of AreaEducativaEN) Public ultimoItemSeleccionado As Integer Public Sub New(ByVal strAccion As String) ' Llamada necesaria para el Diseñador de Windows Forms. InitializeComponent() Me.strAccion = strAccion If Me.strAccion = "buscar" Then Me.BtnEliminar.Visible = False End If If Me.strAccion = "mantener" Then Me.Text = "Mantenimiento de Área Educativa" End If ' Agregue cualquier inicialización después de la llamada a InitializeComponent(). End Sub 'Buscar Area Educativa x nombre Public Sub buscarAreaEducativaNombre() Dim strNombre As String = Me.TbxNombre.Text 'valido que minimo haya ingresado 2 caracteres If (strNombre.Length < 2) Then MessageBox.Show("Debe ingresar al menos 2 caracteres", "Buscar Área Educativa", MessageBoxButtons.OK, MessageBoxIcon.Error) Else 'llenando el datagrid: Me.DtgResultados.DataSource = Me.gestorAreaEducativa.buscarNombre(strNombre).Tables("Table") End If End Sub Private Sub BtnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBuscar.Click 'buscarAreaEducativaNombre() 'validar que al menos haya ingresado 2 caracteres 'If (Me.TbxCodigo.Text.Length > 0) Then ' If (Me.TbxCodigo.Text.Length < 2) Then ' MessageBox.Show("Debe ingresar al menos 2 caracteres", "Buscar Área Educativa", MessageBoxButtons.OK, MessageBoxIcon.Error) ' End If 'Else ' If (Me.TbxNombre.Text.Length > 0) Then ' If (Me.TbxNombre.Text.Length < 2) Then ' MessageBox.Show("Debe ingresar al menos 2 caracteres", "Buscar Área Educativa", MessageBoxButtons.OK, MessageBoxIcon.Error) ' End If ' Else ' If (Me.TbxDescripcion.Text.Length > 0) Then ' If (Me.TbxDescripcion.Text.Length < 2) Then ' MessageBox.Show("Debe ingresar al menos 2 caracteres", "Buscar Área Educativa", MessageBoxButtons.OK, MessageBoxIcon.Error) ' End If ' Else ' Me.llenaGrillaBuscar() ' End If ' End If 'End If Me.llenaGrillaBuscar() End Sub Public Sub llenaGrillaBuscar() Me.cargaGrillaBuscar() If (Me.listaAreasEducativasBuscadas.Count > 0) Then Me.DtgResultados.Rows(0).Selected = True End If End Sub Private Sub cargaGrillaBuscar() Dim tAreasEducativas As DataTable tAreasEducativas = cargaCabeceraGrilla() tAreasEducativas.Rows.Clear() cargaContenidoGrillaBuscar(tAreasEducativas) Me.DtgResultados.DataSource = Nothing Me.DtgResultados.DataSource = tAreasEducativas End Sub ''Listar todas las areas educativas existentes 'Private Sub listarAreasEducativas() ' 'llenando el datagrid: me falta ver como capturar solo algunas columnas, me parece que es ' 'metiendo el DataSet a un DataTable ' Me.DtgResultados.DataSource = Me.gestorAreaEducativa.listar2.Tables("Table") 'End Sub Private Sub llenaGrilla() cargaGrilla() If (Me.gestorAreaEducativa.AreasEducativas.Count > 0) Then Me.DtgResultados.Rows(0).Selected = True cargaContenidoFilaSelect() End If End Sub Private Sub cargaGrilla() Dim tAreasEducativas As DataTable tAreasEducativas = cargaCabeceraGrilla() cargaContenidoGrilla(tAreasEducativas) Me.DtgResultados.DataSource = tAreasEducativas End Sub Private Sub cargaContenidoGrilla(ByVal tAreaEducativa As DataTable) Dim objAreaEducativaLN As New AreaEducativaLN Dim newRow As DataRow Me.gestorAreaEducativa.AreasEducativas = Me.gestorAreaEducativa.listar If Not IsNothing(Me.gestorAreaEducativa.AreasEducativas) Then If (Me.gestorAreaEducativa.AreasEducativas.Count > 0) Then newRow = tAreaEducativa.NewRow() For Each area As AreaEducativaEN In Me.gestorAreaEducativa.AreasEducativas 'newRow = tCurso.NewRow() newRow(0) = area.IdAreaEducativa newRow(1) = area.Nombre newRow(2) = area.Descripcion ' Add the row to the Customers table. tAreaEducativa.Rows.Add(newRow) newRow = tAreaEducativa.NewRow() Next End If End If End Sub Private Function cargaCabeceraGrilla() As DataTable Dim tAreaEducativa As New DataTable("AreasEducativas") Dim cInsCodigo As New DataColumn("Código") Dim cInsNombre As New DataColumn("Nombre") Dim cInsDescripcion As New DataColumn("Descripción") tAreaEducativa.Columns.Add(cInsCodigo) tAreaEducativa.Columns.Add(cInsNombre) tAreaEducativa.Columns.Add(cInsDescripcion) Return tAreaEducativa End Function Private Sub cargaContenidoGrillaBuscar(ByVal tCurso As DataTable) 'por el momento solo busco por nombre Me.objAreaEducativaEN.IdAreaEducativa = Me.TbxCodigo.Text Me.objAreaEducativaEN.Nombre = Me.TbxNombre.Text Me.objAreaEducativaEN.Descripcion = Me.TbxDescripcion.Text Me.listaAreasEducativasBuscadas = Me.gestorAreaEducativa.buscar(Me.objAreaEducativaEN) Dim newRow As DataRow If Not IsNothing(Me.listaAreasEducativasBuscadas) Then If (Me.listaAreasEducativasBuscadas.Count > 0) Then newRow = tCurso.NewRow() For Each area As AreaEducativaEN In Me.listaAreasEducativasBuscadas newRow(0) = area.IdAreaEducativa newRow(1) = area.Nombre newRow(2) = area.Descripcion ' Add the row to the Customers table. tCurso.Rows.Add(newRow) newRow = tCurso.NewRow() Next End If End If End Sub Public Sub cargaContenidoFilaSelect() Dim i As Integer For i = 0 To Me.gestorAreaEducativa.AreasEducativas.Count - 1 If (Me.DtgResultados.Rows(i).Selected) Then Me.objAreaEducativaEN = CType(Me.gestorAreaEducativa.AreasEducativas.Item(i), AreaEducativaEN) End If Next Me.ultimoItemSeleccionado = i End Sub Private Sub BtnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancelar.Click Me.Close() End Sub Private Sub BtnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) cargaContenidoFilaSelectBusqueda() Dim FrmModificar As New FrmModificarAreaEducativa(Me.objAreaEducativaEN, "mantener") FrmModificar.ShowDialog() 'Me.Close() End Sub Public Sub cargaContenidoFilaSelectBusqueda() Dim i As Integer For i = 0 To Me.listaAreasEducativasBuscadas.Count - 1 If (Me.DtgResultados.Rows(i).Selected) Then Me.objAreaEducativaEN = CType(Me.listaAreasEducativasBuscadas.Item(i), AreaEducativaEN) End If Next End Sub Private Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEliminar.Click cargaContenidoFilaSelectBusqueda() 'primero validar que no tenga cursos asociados, If (Me.gestorAreaEducativa.cursosAsociados(Me.objAreaEducativaEN)) Then MessageBox.Show("Existen cursos asociados al Área Educativa " + "'" + Me.objAreaEducativaEN.Nombre + "'", "Eliminar Área Educativa", MessageBoxButtons.OK, MessageBoxIcon.Error) 'dentro del AD ya verifico la existencia del Area Educativa Else 'mensajes de confirmacion Dim confirmacion As DialogResult = MessageBox.Show("Desea realmente eliminar el Área Educativa " + Me.objAreaEducativaEN.Nombre, "Eliminar Área Educativa", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) If (confirmacion = Windows.Forms.DialogResult.Yes) Then Me.gestorAreaEducativa.eliminarAreaEducativa(Me.objAreaEducativaEN) 'mensaje de informacion MessageBox.Show("Se eliminó exitosamente el Área Educativa " + "'" + Me.objAreaEducativaEN.Nombre + "'", "Eliminar Área Educativa", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End If 'ejecuto nuevamente la busqueda para actualizar la grilla Me.llenaGrillaBuscar() End Sub Private Sub FrmBuscarAreaEducativa_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Me.llenaGrilla() End Sub Private Sub DtgResultados_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DtgResultados.CellDoubleClick If Me.strAccion = "buscar" Then cargaContenidoFilaSelectBusqueda() Dim FrmModificar As New FrmModificarAreaEducativa(Me.objAreaEducativaEN, "buscar") FrmModificar.ShowDialog() 'Me.Close() End If If Me.strAccion = "mantener" Then cargaContenidoFilaSelectBusqueda() Dim FrmModificar As New FrmModificarAreaEducativa(Me.objAreaEducativaEN, "modificar") FrmModificar.ShowDialog() 'Me.Close() End If Me.llenaGrillaBuscar() End Sub Private Sub BtnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnLimpiar.Click Me.TbxCodigo.Text = "" Me.TbxNombre.Text = "" Me.TbxDescripcion.Text = "" End Sub End Class