Maestro-Detalle con UltraWinGrid 2004

Ultima entrega
 

Fecha: 13/May/2005 (03-may-05)
Autor: Lic. Giovanni Cuadra Reyes
Email: giovanni_cuadra@hotmail.com

Managua, Nicaragua.

La nueva comunidad de desarrollo!!!

 


Esta última entrega es un resumen de los otros dos artículos anteriores, más los nuevos métodos expuestos para ingresar datos, actualizar o eliminar en una base de datos y métodos de navegación, así como también una nueva entrega en el uso del UltraWinGrid 2004 en conjunto con UltraDropdown. Esta entrega final tiene como objetivo exponer los métodos para dar de alta o de baja a registros en una base de datos los cuales serán utilizados con el espacio de nombre Nicasoft.Net.v1.0.2005.dll versión final. Estos métodos que expondré a continuación son:

A continuación expondré el uso de estos métodos:

METODOS DE NAVEGACION

Estos métodos tiene como objetivo el poder navegar a través de los registros de una base de datos. Dicho método requiere tres parámetros, de los cuales todos son requeridos. A continuación muestro los nombres de estos tres elementos:

METODOS PARA EDITAR LA BASE DE DATOS

Estos métodos tiene como objetivo principal, el dar de alta o baja a registros dentro de un dataset utilizando algunos parametros el cual todos son requeridos. A continuación muestro los nombres de estos cuatro elementos:

REQUERIMIENTOS

· VB Express 2005 Beta 1 o Beta 2

· Microsoft Windows XP o superior.

· Memória mínima 256 RAM.

· Espacio en disco duro de por lo menos 10 Gigas o más.

· El software de Infragistics NetAdventage 2004 Volumen 3 (Por lo menos el software de prueba). El cual lo puedes descargar de http://www.infragistics.com/

· Microsoft SQL Server 2000 o superior.

En esta versión final del espacio de nombre Nicasoft.Net.v1.0.2005.dll, no expongo método alguno para conexión a bases de datos Microsoft Access u otros origines de datos que no sea Microsoft SQL Server 7.0 o 2000. Es importante recalcar que este ejemplo fue probado en la versión 2000 de SQL Server.

Iniciare por mostrar el formulario con las nuevas modificaciones:

 

A continuación muestro un fragmento de código correspondiente a los métodos de navegación y los métodos que permiten editar la base de datos:

Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click

'--Eliminar productos.

Me.datSource.Delete(Me.DataNorthWind1, "Categories", Me)

End Sub

Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click

'--Salvar productos.

Me.datSource.Update(Me.SqlCn, Me.DataNorthWind1, False)

'--Cerrar actualizaciones.

Me.datSource.UpdateTerminate(Me.DataNorthWind1, Me, "Categories", "Products")

End Sub

Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click

'--Agregar nuevos productos.

Me.datSource.AddNew(Me.DataNorthWind1, "Categories", Me)

End Sub

Private Sub btnFirts_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirts.Click

datSource.MoveFirst(Me.DataNorthWind1, "Categories", Me)

'--Aquí mando a refrescar el contador de registro

Me.lblCountRecord.Text = datSource.RecordCount(Me.DataNorthWind1, "Categories", Me)

End Sub

Private Sub btnPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrev.Click

datSource.MovePrevius(Me.DataNorthWind1, "Categories", Me)

'--Aqui mando a refrescar el contador de registro

Me.lblCountRecord.Text = datSource.RecordCount(Me.DataNorthWind1, "Categories", Me)

End Sub

Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click

datSource.MoveNext(Me.DataNorthWind1, "Categories", Me)

'--Aquí mando a refrescar el contador de registro

Me.lblCountRecord.Text = datSource.RecordCount(Me.DataNorthWind1, "Categories", Me)

End Sub

Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click

datSource.MoveLast(Me.DataNorthWind1, "Categories", Me)

'--Aquí mando a refrescar el contador de registro

Me.lblCountRecord.Text = datSource.RecordCount(Me.DataNorthWind1, "Categories", Me)

End Sub

A continuación expongo métodos en código para poder modificar algunas características del UltraWindGrid 2004 y su relación con el control UltraDropDown:

''' <summary>

''' Este procedimiento permite configurar y cargar los elementos en la lista

''' del UltraWinGrid.

''' </summary>

''' <remarks></remarks>

Private Sub LoadValueList()

'--Proveedores.

Dim datSuppliers As New DataSet

Try

'--Llenar el dataset de datos.

datSource.FillDataSet(Me.SqlCn, datSuppliers, Me.SqlDatSuppliers)

'--Configurar el origen de datos.

Me.cboSuppliers.DataSource = datSuppliers

'--Configurar columnas.

Me.cboSuppliers.DisplayLayout.Bands(0).Columns(0).Hidden = True

Me.cboSuppliers.DisplayLayout.Bands(0).Columns(1).Width = 150

Me.cboSuppliers.DisplayLayout.Bands(0).Columns(2).Width = 150

Me.cboSuppliers.DisplayLayout.Bands(0).Columns(3).Width = 150

Me.cboSuppliers.ValueMember = "SupplierID"

Me.cboSuppliers.DisplayMember = "CompanyName"

'--Sincronizar los controles.

Me.grdProductos.DisplayLayout.Bands(0).Columns(2).ValueList = Me.cboSuppliers

'--Otra forma para inicializar una lista.

'Dim dt As DataTable = datSuppliers.Tables("Suppliers")

'Dim row As DataRow

''--Programar la lista

'Me.grdProductos.DisplayLayout.ValueLists.Add("suppliers")

'With Me.grdProductos.DisplayLayout.ValueLists("suppliers").ValueListItems

' '--Limpiar la lista.

' .Clear()

' For Each row In dt.Rows

' '--Insertar elementos.

' .Add(row.Item(0), row.Item(1))

' Next

'End With

'--Asignar la lista de valores al campo del proveedor.

'Me.grdProductos.DisplayLayout.Bands(0).Columns(2).Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList

'Me.grdProductos.DisplayLayout.Bands(0).Columns(2).ValueList = Me.grdProductos.DisplayLayout.ValueLists("suppliers")

Catch ex As Exception

'--Este es un mensaje por si ocurre un error.

MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")

End Try

End Sub

Private Sub grdProductos_InitializeLayout(ByVal sender As System.Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles grdProductos.InitializeLayout

With e.Layout

'--Ocultar columnas.

.Bands(0).Columns(3).Hidden = True

.Bands(0).Columns(7).Hidden = True

.Bands(0).Columns(8).Hidden = True

.Bands(0).Columns(9).Hidden = True

'--Configurar el ancho de las columnas a mostrar.

.Bands(0).Columns(0).Width = 100

.Bands(0).Columns(1).Width = 180

.Bands(0).Columns(2).Width = 100

.Bands(0).Columns(4).Width = 180

.Bands(0).Columns(5).Width = 110

.Bands(0).Columns(6).Width = 150

'--Cambiar el texto de las columnas.

.Bands(0).Columns(0).Header.Caption = "Id. del producto"

.Bands(0).Columns(1).Header.Caption = "Descripción del producto

.Bands(0).Columns(2).Header.Caption = "Proveedor"

.Bands(0).Columns(4).Header.Caption = "Cantidad por unidad"

.Bands(0).Columns(5).Header.Caption = "Precio unitario"

.Bands(0).Columns(6).Header.Caption = "Unidades en almacen"

'--Aliniar contenido de las columnas.

.Bands(0).Columns(5).CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right

.Bands(0).Columns(6).CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right

End With

End Sub

Private Sub grdProductos_InitializeRow(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeRowEventArgs) Handles grdProductos.InitializeRow

e.Row.Cells("CategoryID").Value = Me.txtIdCat.Text

End Sub

A continuación mostrare el formulario en tiempo de ejecución:

 

En la siguiente presentación muestro el formulario en tiempo de diseño:

 

AGREGANDO LA REFERENCIA

Para que el proyecto pueda ser ejecutado sin problemas se debe de ingresar la referencia del componente DLL o espacio de nombres Nicasoft.v1.0.2005.dll. A continuación muestro paso a paso lo que se debe hacer para poder ingresarla al proyecto:

En el menú proyecto, hacer clic en las propiedades del proyecto, a continuación se mostrara un formulario en el cual tienes que seleccionar la opción referencias:

Una vez dentro de este formulario se requiere seleccionar o agregar la referencia que el proyecto requiere, para esto hay dos formas. La primera seleccionarlo de lista si esta se encuentra y la segunda haciendo clic en el botón de agregar referencias, el cual te mostrara el siguiente formulario:

  

Una vez que este formulario se encuentre disponible, debes de ubicarte en la carpeta donde se instalo el componente para poder ingresarlo en el proyecto.

 

CAMBIANDO EL NOMBRE DEL SERVIDOR DE RED

Es importante recordar el cambiar el nombre del servidor en el proyecto, ya que si eso no se hace es muy seguro que se enviara un mensaje de error de conexión. Para esto lo que se tiene que hacer es únicamente seleccionar el objeto de conexión, luego seleccionar las propiedades de dicho objeto y posteriormente cambiar el nombre del servidor. A continuación muestro la pantalla en la cual tienes que cambiar esta información:

Conclusiones

Este artículo de un total de tres entregas, permiten tener una visión muy funcional de lo que permite proporcionar el UltraWinGrid 2004 Edición #3. Con esta última entrega completo la aplicación permitiendo que el usuario pueda dar de alta o de baja a registros en una base de datos, complementándola con nuevas características en el uso de UltraWinGrid en conjunto con UltraDropDown.

Para poder ejecutar este proyecto en VB .NET 2003, lo que se debe hacer únicamente es cambiar la codificación de acceso a los datos, ya que el espacio de nombres no puede ser ejecutado en versiones anteriores de VB Express 2005. Por lo tanto una vez modificado estos objetos, solo se tiene que hacer referencia a los controles respectivos de datos que se encuentran en el formulario.

Para todas aquellas personas que me han escrito consultándome el uso de UltraWinGrid 2004, les adelanto que ya he evaluado algunos controles de la versión Beta 1.0 de la edición 2005 de Infragistic Net Adventage, el cual funciona estable en VB .NET 2003 y VB Express 2005.

Quiero despedir este artículo agradeciendo a todas aquellas personas que me han escrito, consultándome información no solo de este artículo si no de los anteriores y que poco a poco les iré dando respuesta a sus preguntas.

 

"En cada coyuntura, las herramientas avanzadas han sido la clave de una nueva ola de aplicaciones, y cada ola de aplicaciones ha resultado un factor fundamental para ascender a un nuevo nivel en el mundo de la informática".
- Bill Gates

 


Espacios de nombres usados en el código de este artículo:

Nicasoft.Net.v1.0.2005 (Haga clic aquí para descargar el espacio de nombres)

System.Data.SqlClient

System.Data


Fichero con el código de ejemplo: gcuadra_UltraWinGrid2004_Entrega_Final.zip - Tamaño 83 KB

 

ir al índice