Data Report

Preview:

DESCRIPTION

Datareport

Citation preview

Muestra de uso de los controles DataEnvironment DataReport

© 2.002, Jose Luis Monte Galiano, (MoGa) e-mail : jlmogasa@hotmail.com

[Regresar]

Indice Introducción El proyecto

Agregar los diseñadores al proyecto Agregar el DataEnvironment

Configuración de la conexión Agregar y configurar un comando de datos

Agregar el DataReport Limitaciones del DataReport

Otras consideraciones El código

Código del formulario PRINCIPAL.FRM Código del formulario FRMVERDATOS.FRM Código del formulario FRMMODIF.FRM

Introducción Los objetos DataEnvironment y DataReport son dos controles que nos permiten :

Acceder a los datos de forma transparente y darnos la posibilidad de crear una “estrategia” de acceso a los datos de forma gráfica, (DataEnvironment).

Poder mostrar en vista previa, imprimirlos o exportarlos para su publicación, (DataReport).

Cabe reseñar que, una vez realizado nuestro esquema de acceso a los datos con DataEnvironment; es posible arrastrar y colocar los campos diseñados en el a un formulario o al diseñador del DataReport. Esto, sin duda, representa una mejora substancial en la tarea de realizar informes o gestiones de datos en nuestras aplicaciones.

Con estos dos objetos tenemos un poco mas fácil la papeleta que representa realizar una aplicación de acceso a datos.

El proyecto Nuestro proyecto de prueba consta de :

3 formularios :

Un formulario principal, (principal.frm).

Un visor de datos, (frmverdatos.frm).

Un sencillo gestor de datos, (modifdatos.frm).

Y 2 diseñadores :

Un informe DataReport, (reporte.dsr)

Un entorno DataEnvironment donde hemos declarado nuestra definición de acceso a los datos, (base.dsr).

En todo el proyecto se hace referencia siempre al control de datos creado con DataEnvironment. En algunas ocasiones seria posible crear un control de acceso a datos de forma local y no utilizar el entorno de datos creado con DataEnvironment. Por ejemplo :

Para actualizar un campo de una tabla podria utilizarse el siguiente código :

Dim Base As ADODB.Connection Set Base = New ADODB.Connection Base.Open “Cadena de acceso a datos” Base.Execute “UPDATE Tabla SET Campo=Valor WHERE ...”

Agregar los diseñadores al proyecto. A continuación mostramos como agregar y configurar los objetos DataEnvironment y DataReport. Agregar el DataEnvironment

Para agregar un entorno de datos a nuestro proyecto iremos a la opción Agregar Data environment del menú Proyecto de Visual Basic. Aparecerá una nueva ventana con el entorno de datos, (por defecto llamado DataEnvironment1), y una conexión, (connection1) lista para ser configurada.

Configuración de la conexión.

Pulsando con el botón derecho del ratón sobre Connection1 elegimos la opción Propiedades. Aparecerá otra ventana de “Configuración de la conexión”. En este lugar declararemos que tipo de conexión queremos realizar, (ODBC, Jet, Oracle, etc.) y a que base de datos y con que características queremos conectar.

Nuestra conexión seria como muestran los siguientes gráficos :

Lo primero es seleccionar el tipo de proveedor de acceso a datos que vamos a utilizar. Para este caso utilizaremos “Microsoft.Jet 4.0 OLE DB Provider”

Seguidamente especificamos la ubicación de la base de datos y pulsaremos sobre Probar conexión. Esta prueba nos dirá si la conexión ha sido o no satisfactoria.

Agregar y configurar un comando de datos.

Una vez realizados los pasos anteriores añadiremos un comando de datos, (objeto Command de ADO), a la conexión recientemente configurada. Con objeto Command seleccionamos el rango de datos, tablas o objetos de datos que queremos manipular. Para determinar ese rango podemos utilizar sentencias SQL. Con el botón derecho del ratón sobre Connection1 seleccionamos la opción Agregar comando. Por defecto el entorno de datos nos ofrece Command1. Con el botón derecho sobre Command1 seleccionamos la opción de Propiedades. Aparecerá una ventana en la que podremos :

Seleccionar el rango de datos sobre el que queremos actuar.

Determinar el ambito de la selección, (solo lectura o Lectura/Escritura, etc.).

Relacionar este comando con otro primario, (anidación de comandos : Véase el entorno de datos proporcionado en el proyecto de ejemplo)

Agrupar los datos por un campo de la selección.

Agregar campos de función.

Aquí seleccionamos el rango de datos sobre el que queremos actuar.

Aquí determinamos algunas características del objeto Command creado. Cabe reseñar :

Tipo de bloqueo. Solo lectura, bloqueo optimista, pesimista...

Ubicación del cursor. Cliente o servidor.

Agregar el DataReport.

Para agregar un DataReport seleccionar la opción Agregar Data Report del menú Proyecto.

Aquel que haya trabajado con Seagate Cristal Reports o con informes de Access encontrará gran parecido con el objeto DataReport de Visual Basic. Un objeto DataReport es, básicamente, un entorno que simula una página impresa. Esa página se encuentra dividida en :

Cabecera y pie de informe. Cabecera y pie de página Los diferentes Grupos que podamos

incluir. La sección de Detalles.

En todas estas secciones podemos incluir :

Cuadros de texto, (que adquiriran el valor del campo de la base de datos para cada registro de esta).

Etiquetas, (titulos y otras informaciones fijas).

Lineas. Gráficos.

Etc.

Recuerdese que también es posible que, desde el entorno DataEnvironment, seleccionar el grupo de datos y arrastrarlo directamente al informe. Con ello logramos incluir todos los objetos que conforman el informe en un solo “clic”. Una vez cumplimentado el informe con los objetos descritos aquí el informe puede ser llamado con : NombreInforme.Show O impreso con : NombreInforme.PrintReport O exportado a un archivo con : NombreInforme.ExportReport. Limitaciones de DataReport.

Una limitación muy importante y que se hecha en falta a la hora de hacer ciertos informes, es que no es posible añadir gráficos estadísticos al informe.

Otras consideraciones En el código del proyecto de ejemplo también puede encontrarse informaciones sobre :

Uso del control MSHFlexGrid para mostrar datos de una base de datos. (Formulario del “Visor de datos”).

Atención a las propiedades DataSource, DataMember y al objeto Band dependiente.

Movimiento entre los datos utilizando el entorno proporcionado por DataEnvironment, (Formulario del “Visor de datos”).

Operaciones con Move. Ejemplo de gestión de los datos utilizando el

entorno proporcionado por DataEnvironment, (Formulario de “Modificar datos”).

El código

Código del formulario PRINCIPAL.FRM Formulario principal.

' *************************************************** ' ** Ejemplo de uso de los objetos : ** ' ** - DataReport ** ' ** - DataEnvironment ** ' *************************************************** ' ** Julio del 2.000 ** ' ** Jose Luis Monte Galiano, (MoGa) ** ' ** Acervo Visual Basic, (http://go.to/acervo) ** ' ** e-mail : moga@facilmobel.es ** ' *************************************************** Option Explicit ' Ejecutar el cambio de tienda de todos los recibos. Private Sub EjecutarCambio_Click() If Val(TiendaDestino.Text) > 0 And Val(TiendaOrigen.Text) > 0 Then ' Ejecuta la actualización.

Base.Base.Execute "UPDATE Recibos SET TiendaPedidoCod = " + TiendaDestino.Text + " WHERE TiendaPedidoCod = " + TiendaOrigen.Text ' Actualiza la conexión de datos. Base.rsAgrupDatos.Requery MsgBox "Ok" End If End Sub ' Carga del formulario. Private Sub Form_Load() ' Relocaliza y abre la base de datos. Base.Base.ConnectionString = "Provider=MSDataShape.1;Persist Security Info=False;Data Source=" + App.Path + "\Prueba.mdb;Data Provider=MICROSOFT.JET.OLEDB.4.0" Base.AgrupDatos End Sub ' Activar Listado. Private Sub Listado_Click()

Dim Filtro As String ' Filtro de datos. If Len(Tienda.Text) > 0 Then ' Si se especifica una tienda. ' Se activa el filtro. Filtro = Trim$(Str$(Val(Tienda.Text))) Base.rsAgrupDatos.Filter = "CodTienda=" + Filtro Else ' Todas las tiendas. ' Se desactiva el filtro. Base.rsAgrupDatos.Filter = "" End If ' Se muestra el informe. Reporte.Show End Sub ' Modificar datos. Private Sub Modificar_Click() frmModif.Show 1 End Sub ' Salir. Private Sub Salir_Click() End End Sub ' Visor de datos. Private Sub VerDatos_Click() frmVerDatos.Show 1 End Sub

Código del formulario FRMVERDATOS.FRM Formulario visor de datos.

' *************************************************** ' ** Ejemplo de uso de los objetos : ** ' ** - DataReport ** ' ** - DataEnvironment ** ' *************************************************** ' ** Julio del 2.000 ** ' ** Jose Luis Monte Galiano, (MoGa) ** ' ** Acervo Visual Basic, (http://go.to/acervo) ** ' ** e-mail : moga@facilmobel.es ** ' *************************************************** Option Explicit ' Registro anterior. Private Sub Anterior_Click() ' Mueve el puntero. Base.rsAgrupDatos.MovePrevious ' Si llega al principio de la selección. If Base.rsAgrupDatos.BOF Then

' Mueve al primer registro. Base.rsAgrupDatos.MoveFirst End If End Sub ' Registro siguiente. Private Sub Siguiente_Click() ' Mueve el puntero. Base.rsAgrupDatos.MoveNext ' Si llega al final de la selección. If Base.rsAgrupDatos.EOF Then ' Mueve al último registro. Base.rsAgrupDatos.MoveLast End If End Sub ' Activación del formulario. Private Sub Form_Activate() ' Columna de nombre mas ancha. MSHFlexGrid1.ColWidth(2) = 3000 End Sub ' Cerrar el formulario. Private Sub Salir_Click() Unload Me End Sub

Código del formulario FRMMODIF.FRM Formulario Modificación de datos. ' *************************************************** ' ** Ejemplo de uso de los objetos : ** ' ** - DataReport ** ' ** - DataEnvironment ** ' *************************************************** ' ** Julio del 2.000 ** ' ** Jose Luis Monte Galiano, (MoGa) ** ' ** Acervo Visual Basic, (http://go.to/acervo) ** ' ** e-mail : moga@facilmobel.es ** ' *************************************************** ' Registro anterior. Private Sub Anterior_Click() Base.rsDatosRecibos.MovePrevious End Sub ' Cerrar el formulario. Private Sub Salir_Click() Unload Me End Sub ' Registro siguiente. Private Sub Siguiente_Click() Base.rsDatosRecibos.MoveNext End Sub

Recommended