Mostrando entradas con la etiqueta Delphi. Mostrar todas las entradas
Mostrando entradas con la etiqueta Delphi. Mostrar todas las entradas

viernes, 8 de junio de 2007

Crear un Reporte en Delphi

Usted puede utilizar informes ambos el VCL y el CLX para generar informes de la base de datos y en desarrollos que no tengan bases de datos. El procedimiento siguiente explica cómo agregar un informe simple a unprograma existente con base de datos.

1. Abra un programa con base de datos en Delphi.
2. Desde la página de componentes de RAVE, agregue el componente de TRvDataSetConnection a una forma en el programa.
3. En las propiedades del objeto TRvDataSetConnection, fije la propiedad del dataSet a un componente dataset que ya esté definido en su aplicación.
4. Ahora debemos diseñar el informe y crear un archivo de informe (archivo con extensiónl .rav).

A. Elija desde Delphi la opción que se encuentra en Tools|Rave para lanzar al diseñador de la
presentación visual de Rave.
B. Seleccione File|New para exhibir la caja de diálogo DATA CONNECTIONS.
C.En la lista de Data Object Type, seleccione Direct Data View y presione en siguiente (Next)
D. En la lista de conexiones de datos activas, seleccione RVDataSetConnection1 y presione en Finalizar.
E.En el árbol del proyecto en el lado izquierdo de la ventana del diseñador visual RAVE, expanda el nodo Data View Dictionary, entonces nuevamente expanda el nodo creado DataView1. Los campos de datos de su aplicación serán desplegados debajo del nodo DataView1.

F.En el menu de Rave seleccione Tools|Report y luego Wizards|Simple para exhibir el asistente.
G.Seleccione DataView1 y el presione en siguiente.
H.Seleccione los campos que desee exhibir en el informe y
presione en siguiente (next).
I. Siga los avisos en las páginas subsecuentes del asistente para fijar el orden de los campos, márgenes, dirección del texto, y las fuentes que se utilizarán en el informe (reduzca tamaños porque los que presenta por defecto en los títulos son inmensos).
J. En la página final del asistente, presione en generar (Generate) para terminar el asistentey exhibir el informe en el diseñador de página.

K. Elija File|Save para exhibir la caja de diálogo salvar. Navegue al directorio en el cual su aplicación de Delphi está situada y salve el archivo de proyecto de RAVE con el nombre que quiera, por ejemplo miarchivo.rav.
Minimice Rave y vuelva a Delphi.

5 Otra vez en Delphi desde la página de componentes de Rave, agregue el componente Rave project, TRvProject, a la forma.
6 En el inspector del objetos, fije la propiedad ProjectFile al archivo del informe (por ejemplo miarchivo.rav) que usted creó previamente.
7 Desde la página estándar de la paleta de componentes, agregue el componente de Tbutton.
8 En las propiedades del objeto Tbutton, seleccione la lengueta de los Eventos y escoja el evento de OnClick.
9 Escriba un evento que utilice el método de ExecuteReport para ejecutar el componente del proyecto Rave. Mejor dicho escriba RvProject1.execute; ( RvProject1 es el nombre del componente agregado en el paso 5).

10 Corra la aplicación (Press F9 to run the application).
11 Click en el botón que usted adicionó en el paso 7.
12 El cuadro de dialogo opciones de impresión es mostrado. Click OK para ver el reporte.

jueves, 7 de junio de 2007

Acceder a una BD MS Access con Delphi

Este artículo muestra paso a paso cómo conectar con bases de datos Microsoft Access desde Delphi. Para ello utilizaremos ODBC (Open Database Connectivity) .
  • En primer lugar necesitaremos disponer del Driver ODBC para acceso a Microsoft Access.
  • Crearemos la Base de Datos Microsoft Access (mdb).
  • Añadiremos el Driver ODBC para acceso a la BD creada, desde “Inicio” - “Configuración” “Panel de control” - “Herramientas administrativas” - “Orígenes de datos (ODBC)”, en la pestaña “DNS de sistema” pulsaremos en “Agregar”, seleccionaremos “Microsoft Access Driver (*.mdb), pulsaremos en “Finalizar” y rellenaremos los siguientes datos:

Nombre del origen de datos: será el nombre que utlizaremos en Delphi para enlazar el ODBC creado con el Database, en nuestro caso BDAccessInventario.

Descripción: comentario informativo.

A continuación pulsaremos en el botón “Seleccionar” para especificar la base de datos Access a la que nos conectaremos.

  1. Abrimos Delphi y pulsamos en “File” - “New” - “Application”. Añadiremos un módulo de datos (data module) para colocar los componentes necesarios para el acceso a Access, para ello pulsaremos en “File” - “New” - “Data Module”. A continuación añadiremos al módulo de datos los siguientes componentes para acceso a Bases de Datos:

    • En la paleta de componentes, en la pestaña “BDE”, seleccionaremos “Database” y lo añadiremos al módulo de datos. Este componente será el encargado de enlazar nuestra aplicación con el Driver ODBC creado anteriormente. Para ello haremos doble clic sobre el “Database”:

En “Alias name” seleccionaremos el ODBC creado anteriormente (BDprueba) y pulsaremos el botón “Defaults” para que nos añada automáticamente los parámetros necesarios para la conexión:

DATABASE NAME=
USER NAME=
ODBC DSN=BDAccessInventario
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
SQLQRYMODE=
LANGDRIVER=
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
SCHEMA CACHE TIME=-1
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
ENABLE BCD=FALSE
ROWSET SIZE=20
BLOBS TO CACHE=64
PASSWORD=

Por supuesto estos parámetros pueden ser modificados por código.

Desmarcaremos la opción “Login prompt” = “False” (para que no nos aparezca la ventana de Usuario y Contraseña cada vez que nos conectemos, deberemos activar esta opción si hemos añadido usuarios a la BD Access). Luego pulsamos “OK”.

Ahora mostraremos las propiedades del Database, deberemos introducir un nombre a la Base de Datos (que será el que se utilice en Delphi), para ello lo escribiremos en la propiedad “DatabaseName”, en nuestro caso “bd.mdb”:

Para probar la conexión cambiaremos la propiedad “Connected” = “True”, si nos deja cambiarla significará que la conexión ha sido satisfactoria en caso contrario mostrará un mensaje con el error.

- En la paleta de componentes, en la pestaña “BDE”, seleccionaremos “Table” y lo añadiremos al módulo de datos. Este componente será el encargado de enlazar con el Database y será el que nos proporcione los datos que necesitemos de la tabla que especifiquemos. Las propiedades que cambiaremos para que funcione serán:

  • “DatabaseName”: nombre que hemos dado a la propiedad “DatabaseName” del Database creado anteriormente.
  • “TableName”: si no ha habido errores y la conexión se ha establecido correctamente con la BD Access, podremos pulsar en el desplegable de “TableName” y seleccionar la tabla de la BD Access a la que queramos acceder.
  • “Active”: si ponemos a “True” esta propiedad abriremos la tabla seleccionada en “TableName”.

Por último añadiremos un “DataSource”, ubicado en la pestaña “Data Access”. Este componente es sólo necesario si vamos a utlizar componentes visuales para mostrar o modificar los datos. Con lo cual se utiliza para enlazar el Table con los componentes visuales. La única propidad imprescidible de éste es:

  • “DataSet”: pulsaremos en en desplegable y seleccionaremos el Table añadido anteriormente, en nuestro caso, puesto que no hemos modificado la propiedad “Name”, se llama “Table1″.
Tras añadir estos tres componentes no visuales en el Módulo de Datos, ahora añadiremos en el formulario un par de componentes visuales para poder mostrar y manipular los datos de la Base de Datos Access. Para ello mostramos el formulario, pulsando “Mayúsculas + F12″ o el menú “View” - “Forms” y seleccionamos el formulario que se crea automáticamente al crear el proyecto:
Antes de añadir los componentes visuales, puesto que estos necesitarán estar enlazados con el componente “DataSource” del módulo de datos, deberos colocar el módulo de datos en la claúsula USES del formulario, para ello es suficiente con pulsar en “File” - “Use Unit” y seleccionar el módulo de datos (”Unit2″ si lo hemos guardado con este nombre):
Desde la paleta de componentes, pestaña “Data Controls” seleccionaremos “DBGrid”, lo añadiremos al formulario y modificaremos la propiedad “DataSource”. En el desplegable de la misma nos aparecerá “DataModule2.DataSource1″ (en nuestro caso). Trase seleccionare el “DataSource” ya tendremos enlazado el componente visual con su origen de datos (el DataSource, a su vez enlazado con el Table que a su vez está enlazado con el Database que a su vez está “enlazado” con el ODBC creado al principio).

Añadiremos un componente más que muestra automáticamente los botones de añadir, modificar, eliminar, refrescar, editar, validad, … registros. Este componente visual está en la pestaña “Data Controls” y se llama “DBNavigator” que también irá enlazado por la propiedad “DataSource” al “DataSource1″ del módulo de datos (DataModule2).

Una vez añadidos todos los componentes y comprobado que las propiedades “Connected” (del “Database”) y “Active” (del Table”) están a “True” compilaremos la aplicación pulsando en F9 o en el menú “Run” - “Run”. Si no ha habido errores nos aparecerá una ventana como la siguiente:

y utilizando el DBGrid prodemos añadir, modificar, eliminar y visualizar los registros de la tabla.

Por supuesto, debido a que no hemos añadido los campos (fields) al DBGrid no tenemos un control sobre las propiedades de los mismos para, por ejemplo, especificar el ancho de la columna o el título de la misma. Para realizar esto es suficiente con hacer doble clic sobre el DBGrid (en tiempo de diseño), pulsaremos el botón derecho del ratón sobre la ventana que aparece y seleccionaremos “Add All Fields”:

de esta forma se nos añadirán automáticamente todos los campos de la tabla enlazada con el DBGrid. Podemos ver las propiedades de cualquier campo:

Existe una forma más eficiente de tener un control exaustivo sobre las propiedades de los campos que queramos mostrar, se realiza desde el componente no visual “Table” (ubicado en el módulo de datos), haciendo doble clic sobre el mismo y pulsando en el botón derecho, a continuación en el menú que aparece seleccionaremos “Add all fields”:

De esta forma tendremos los campos de la tabla y todas sus propiedades en el Table para que cuando lo enlacemos con un DataSource a un componente visual (como un DBGrid) éste muestre los campos tal y como los hayamos configurado en el Table:

Desde aquí podremos modifcar propiedades como “DisplayLabel” (texto que describe al campo y que será el que el usuario vea), “DisplayWidth” (tamaño horizontal del campo, en un DBGrid será el ancho de la colunma), …

Existen otras formas de acceder a una Base de Datos Access, esta forma no necesitamos escribir codigo ni utilizar componentes adicionales. La desventaja de utilizar ODBC, es que los accesos serán más lentos que si accediésemos de forma nativa (directamente de Delphi a Microsoft Access sin pasar por ODBC ni por el BDE).

Templates
Templates