Manual Data Reports

14
 http://www.mailxmail.com - Encontraras muchos más cursos como este 1 MailxMail.com - Cursos gratis en la web  Manual DataReport  Autor: miguel garcia

Transcript of Manual Data Reports

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 1/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 1

MailxMail.com - Cursos gratis en la web

 

Manual DataReport 

Autor: miguel garcia

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 2/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 2

MailxMail.com - Cursos gratis en la web

1. Introducción 

El presente documento, pretende dar unas nociones generales sobre lacreación de informes con las herramientas que nos proporciona VisualBasic 6.0.Estas herramientas son el Entorno de Datos (Data Environment) y elDiseñador de Informes (Data Report). Al igual que con muchas otrasherramientas de creación de informes (Crystal Reports, Access, etc.)Data Report nos va a permitir crear niveles dentro del informe, totales,etc.; el grado de complejidad del informe dependerá de la imaginación y

tiempo que el programador pueda dedicar a esta herramienta, y en granmedida de las restricciones de la misma.No obstante, diremos a favor de Data Report, que tenemos unaherramienta que nos va a permitir distribuir nuestros informeslibremente, sin necesidad de licencias, autorizaciones, etc.; distintas alas ya conseguidas con Visual Basic.

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 3/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 3

MailxMail.com - Cursos gratis en la web

2. El entorno de datos (Data environment) 

Lo primero que veremos es cómo agregar el Entorno de Datos a nuestroproyecto. Pues bien, para ello nos iremos al menú Proyecto y elegiremosla opción Agregar Data Environment. En nuestro proyecto tendremos algo parecido a lo mostrado en la figurasiguiente. Bueno lo primero que debemos hacer es dar un nombre anuestro Entorno de Datos. Por ejemplo, dteEntornoDatos. Para ello noscolocaremos en la propiedad Nombre del DataEnvironment yescribiremos su nombre.

Como vemos, debajo del Entorno de datos aparece un nuevo objeto, elobjeto Connection .En un principio vamos a ponerle un nombre a esta conexión, y luegodefiniremos sus propiedades. El nombre que vamos a elegir paranuestra primera conexión va a ser el de Listados. 

Porqué este nombre, bueno normalmente solemos darle a nuestrosobjetos, nombres descriptivos para los mismos, y como esta conexiónva a contener los listados que van a generar nuestros informes, puespor eso le damos este nombre.Ahora vamos a definir las propiedades de la conexión. Nos situaremosencima de la conexión con el ratón, y pulsando el botón derecho delmismo elegimos la opción Propiedades del menú contextual. La figura a la izquierda, muestra las propiedades de nuestra conexión. En la pestaña Proveedor , deberemos seleccionar el motor que seencargará del manejo de las tablas de la base de datos, que contiene lainformación que debe generar nuestros informes. Para nuestro ejemplo,seleccionaremos Microsoft Jet 3.51 OLE DB Provider, ya que nuestra

base de datos está creada con Access 97.Ahora pulsamos el botón Siguiente y se abre la pestaña Conexión. Enella deberemos seleccionar la base de datos de la cual tomaremos lainformación para confeccionar los informes. En nuestro caso se haseleccionado la base de datosBiblio.mdb , que se encuentra en el directorio VB98 de Visual Basic. 

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 4/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 4

MailxMail.com - Cursos gratis en la web

3. Los comandos 

Ya tenemos creada nuestra conexión, ahora sólo tendremos que crearlos comandos, que digamos, son los que se encargan de obtener lasreferencias a las tablas de nuestra base de datos, así como a lasconsultas almacenadas en ella y a las que pudiéramos crear nosotros.Crearemos nuestro primer comando, pulsaremos para ello con el botónderecho, sobre la conexión Listados. Aparece un nuevo objeto, llamadoCommand1. Tendremos que modificar sus propiedades para poderconfigurarlo a nuestras necesidades. Con el botón derecho del ratón,

iremos hasta la opción de propiedades.Lo primero que haremos será cambiar el nombre actual por el deacmAutores y seleccionar la conexión con la que trabajaremos, ennuestro caso será Listados . Para el Origen de Datos, seleccionaremosTabla, ya que este comando va a obtener los datos de una tablaexistente en nuestra base de datos llamada Authors. Este comando es muy sencillo, ya que sólo vamos a trabajar con unatabla así que pulsamos aceptar para cerrar la ventana de propiedades. Vamos a crear ahora una consulta algo más compleja, en la quetengamos que relacionar varias tablas. Normalmente es lo que haremos,para sacar los listados lo más completos posibles. Veremos dos posiblessoluciones, la primera mediante comandos y subcomandos, y la segundamediante consulta SQL.En el primer método, vamos a crear un comando que contenga losregistros de los autores. Una solución posible sería la mostrada en lasiguiente figura. A continuación vamos a explicar cómo se crean lossubcomandos. Un subcomando, por así decirlo, es una tabla relacionadacon otra que está en un nivel superior. Para agregar un comando

secundario (subcomando) bastará pulsar con el botón derecho, sobre elcomando que queremos añadir el comando secundario. Y al igual quehacíamos con los comandos, vamos a modificar sus propiedades. Laprimera de ellas es su nombre acmAux .Por qué este nombre, pues la razón es que si nos fijamos en laestructura de nuestra base de datos, existe una tabla intermedia entrela de autores y la que contiene los títulos publicados por estos, que esTitle Author. Pues bien esta es la tabla a la cual hará referencia estecomando secundario, que acabamos de crear. El siguiente paso será

definir una relación entre la tabla o el comando secundario, y el de nivel

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 5/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 5

MailxMail.com - Cursos gratis en la web

superior (acmTituloAutor).Nos iremos a la pestaña de Relación y activaremos la opción deRelacionar con un campo primario , si no estuviera activada.Seguidamente seleccionaríamos el comando primario, en nuestro casoacmTituloAutor , y seguidamente definiríamos la relación. Como CampoPrimario seleccionaremos Au_ID, que se encuentra en la tabla Authors .El siguiente campo de relación será también Au_ID de la tabla Title Author , seleccionándolo en la opción Campos Secundarios y Parámetros,ahora pulsamos Agregar. Ya tenemos el comando secundariointermedio. Nos queda añadir un comando secundario al subcomando acmAux , pararelacionar la tabla Titles , que contiene todos los títulos de libros

almacenados en la base de datos. Pues al igual que hiciéramos con elcomando secundario acmAux , vamos a hacer con el subcomandoacmLibros . Recuerda que tendrás que seleccionar los campos apropiadosen la pestaña Relación . Resumiendo, hemos creado tres comandos, unoprincipal acmAutor y otros dos comandos secundarios, el primero deellos intermedio que sirve de vínculo de unión entre las tablas deautores y el último subcomando que contiene la tabla de libros.Bueno, antes de pasar a explicar el segundo método de relacionartablas, vamos a ver el aspecto que podrían tener los informes que se

pueden generar con los dos comandos principales anteriores, para ellonos vamos al menú Proyecto y seleccionamos Agregar Data Report . Loprimero que haremos será dar un nombre a este nuevo formulario, sunombre será rptAutores y el título (Caption) de la ventana Listado de Autores. Lo siguiente será establecer las propiedades DataSource yDataMember . La primera de ellas marca la fuente de datos, en definitivala dirección de nuestra base de datos y para ello debemos seleccionar dela lista desplegable el entorno de datos que hemos creado al principio deeste documento (dteEntornoDatos). A continuación, deberemos

establecer la propiedad DataMember , seleccionando aquel comando delentorno de datos, que contenga la información de las tablas quequeramos mostrar en el informe, en nuestro caso acmAutores . Bien ya tenemos definido lo más importante en el formulario oDataReport, el siguiente paso es obtener la estructura del informe, paraello pulsamos sobre el formulario con el botón derecho del ratón yseleccionamos la opción Obtener Estructura, pulsamos Sí a la preguntaque nos hacen. Ya tenemos la estructura de nuestro informe, sólotenemos que ir incluyendo aquellos campos que queremos que

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 6/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 6

MailxMail.com - Cursos gratis en la web

aparezcan en el mismo. Para ello vamos a abrir, además del DataReportel entorno de datos.Seleccionamos en el menú Ventana, Mosaico Vertical . La idea es teneren pantalla, abiertos a la vez, el informe y el entorno de datos,quedando algo así como lo mostrado en la figura superior. Ahora, sólo tendremos que ir arrastrando los campos de la consultahasta el informe. Vamos a incluir los campos Author y Year Born . Antesvamos a explicar un poco la estructura de nuestro informe. La secciónEncabezado de Informe , mostrará sólo en la primera página los datos ocampos que contenga esta sección, no se pueden introducir, sinembargo, los campos de nuestros comandos, pero sí por ejemplo eltítulo del informe, el número de página, la fecha, etc. , esto es válido

también para el Pie de Informe. Si abrimos el cuadro de herramientas,veremos que existe una pestaña nueva llamada DataReport quecontiene aquellos controles que pueden ser insertados en nuestroinforme, veremos que además se pueden incluir algunos más especiales,pulsando con el botón derecho del ratón sobre la sección en la quequeremos añadir el control. Estos campos especiales son por ejemplo laFecha actual o la Hora, el Número Total de Páginas, el Título delInforme, etc.Otra sección, es el Encabezado/Pie de Página, normalmente en ella

colocaremos la descripción o nombre de cada campo del informe, ennuestro caso será Autor y Año de Nacimiento . También vamos aintroducir, en la cabecera de página de nuestro informe el Título y lafecha de impresión, para ello seleccionaremos ambos controles delmenú contextual, antes definido.Para definir nuestro título del informe, tendremos que modificarlo en lapropiedad Title del DataReport e introducir el texto Listado de Autores .

Cambiaremos también la apariencia del mismo, lléndonos a la propiedadFont del campo que hemos añadido y seleccionando un estilo de fuenteNegrita Cursiva y un tamaño de 12 . Otra propiedad importante esCentrar en la sección , que aparece cuando pulsamos sobre un controlcon el botón derecho del ratón. El título, lo centraremoshorizontalmente. Incluiremos otro control más, que será la fecha deimpresión.Antes de proseguir, comentaremos las propiedades GridX y GridY.Ambas defines la rejilla de puntos del diseñador, su valor por defecto es1, nosotros vamos a ponerlo a 10 para poder colocar mejor los controles

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 7/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 7

MailxMail.com - Cursos gratis en la web

en el formulario.Y la sección más importante de todas es la sección Detalle . En ellaaparecen todos los registros de nuestra consulta.Vamos a insertar los campos Author y Year Born a la sección Detalle , denuestro informe. Sólo bastará con arrastrar el campo hasta la posicióndel informe donde queramos que valla. Si nos fijamos aparecen doscontroles, uno es una etiqueta, normalmente el primero. Y el segundo,un control texto que apunta al campo en la consulta. La etiqueta lallevaremos hacia la sección Encabezado de Página, situándola en elpunto que nos interese y justamente debajo, pero en Detalle colocaremos el control texto del campo. Modificaremos un poco estoscontroles, por ejemplo las etiquetas cambiaremos su descripción (Caption) e introduciremos los textos Autor y Año de Nacimiento 

respectivamente. Modificaremos también el tamaño de los controles sies necesario, así como su posición. También ajustaremos el tamaño decada sección a nuestro gusto. Por ejemplo, subiremos el Pie de Páginahasta alcanzar los campos en Detalle .Añadiremos el Número de Página, en la sección Pie de Página. Ademásvamos a modificar la fuente de texto del nombre de los campos delinforme a negrita y dibujaremos una línea debajo de los mismos. Conesto podremos dar por terminado nuestro informe, pero antes vamos adelimitar el tamaño del informe. La propiedad ReportWidth se encarga

de esto. Un valor de 9026 twips equivale aproximadamente, a un folioA4 en vertical. Un formato A4 en horizontal equivale a unos 13955 twips. Un centímetro equivale a 567 Twips. Una vez delimitado nuestroinforme (Verticalmente), para que se vea correctamente, tendremosque ajustar las propiedades de nuestra impresora a una orientaciónapropiada, en nuestro caso será la de papel vertical. El aspecto puedeser parecido a este. Mejorable, ¿verdad?. Pues claro, la imaginación y el estilo personal de

cada uno juegan un papel importante en el diseño de los informes. Ennuestro caso, lo principal es tener claro la estructura de nuestroinforme, los distintos niveles (secciones) de agrupación, etc.El siguiente informe, será el que corresponde al comando principalacmTituloAutor . Has de seguir los mismos pasos que en el informeanterior, coloca en DataSource el entorno de datos y en DataMember encomando acmTituloAutor . Si te fijas, ahora nuestro informe tienealgunas secciones más que el anterior, claro tiene tres tablasrelacionadas, con lo cual a cada una de ellas se le asigna un espacioreservado en el informe.

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 8/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 8

MailxMail.com - Cursos gratis en la web

 La primera sección es el nivel superior, que corresponde con el comandoacmTituloAutor , esta sección nos va a servir para agrupar los registrospor el nombre del autor del libro. La siguiente sección, en nuestro caso,no la vamos a usar ya que pertenece al comando o tabla auxiliar queune la tabla Authors con la de Titles , que es la que se engloba dentro dela sección de detalle, ocupando el último nivel. Cualquier campoperteneciente a un nivel superior, podrá ser insertado en uno inferior,pero no al revés.Bueno, pues nuestro siguiente trabajo será generar un informe quemuestre los títulos de los libros, agrupados por el autor. El resultado hade ser parecido a algo así. 

En este informe se han añadido controles como líneas, formas (fondogris de la descripción de los campos), etc. Tú puedes añadir otros, ymodificar sus propiedades.Con estos dos ejemplos, se ha intentado explicar más o menos, eldiseño de informes mediante comandos cuyo origen de datos sea una ovarias tablas. En el apartado siguiente se explicará cómo hacer estopero con el Generador SQL.

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 9/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 9

MailxMail.com - Cursos gratis en la web

4. Generador SQL 

Vamos a generar un informe relacionando la tabla Publishers y Tltles ,agrupando los registros por el nombre de la compañía que lo publica,que se encuentra en la tabla Publishers .Crearemos para ello un nuevo comando de nombre acmLibroPub, ypulsaremos el botón Generador SQL . Nos aparece una nueva pantalla yuna nueva vista llamada Vista Datos . En esta vista tenemos agrupadonuestras conexiones y listados como si fuera un explorador. Abrimos laconexión listados y la carpeta Tablas . Aquí encontramos todas las tablas

de nuestra base de datos.Bueno pues ahora sólo consiste en arrastras aquellas tablas que van aformar parte de la consulta SQL. En nuestro caso sólo las dos tablasantes mencionadas. Si en nuestra base de datos no hemos definido lasrelaciones entre las tablas, tendríamos que definirlas con sólo arrastrarel campo de unión de la primera tabla hacia el campo en la segundatabla. El siguiente paso será marcar sólo los campos que vamos amostrar en el informe, en la tabla Publishers el campo Company Name ,y en Titles los campos Title y Comment . Si te has dado cuenta, en la ventana que, normalmente, está en elcentro del diseñador, se ha ido generando la consulta SQL quecorresponde a la relación que hemos creado. Puedes crear directamenteaquí la consulta, e incluso modificarla. También es posible realizarordenación de campos en la ventana que tienes justo arriba de laanterior, criterios de selección, etc.También es posible con el menú contextual que se abre al pulsar sobrecualquier campo de la tabla. Incluso podemos ejecutar la consulta, sipulsamos con el botón derecho sobre la ventaja principal del diseñador,

cambiar la consulta de selección por una de inserción, eliminación, etc.Si ya hemos terminado de crear la consulta, la guardaremos y secerrará automáticamente el diseñador, volviendo al entorno de datos.Nuestro comando tiene ahora sólo tres campos, los que hemosseleccionado en la consulta SQL. Aún nos queda un paso más, y esagrupar la consulta. Para ello abriremos las propiedades del comando ynos iremos a la pestaña Agrupar .Activaremos la casilla Agrupar Comando , dejaremos el nombre por

defecto del comando de agrupación y seleccionaremos el campo para

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 10/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 10

MailxMail.com - Cursos gratis en la web

agrupar (Company Name).Una vez seleccionado el campo de agrupación, aceptamos y observamoscomo nuestra consulta ha cambiado, conteniendo ahora dos carpetas. Laprimera contiene el campo de agrupación y la segunda los campos quese mostrarán en la sección de detalle. Es hora ya de comenzar a diseñarnuestro informe, para ello tenemos que añadir a nuestro proyecto unnuevo DataReport, su propiedad DataSource la fijaremos al entorno dedatos y la propiedad DataMember tendremos que seleccionar elcomando de agrupación acmLibrosPub_Grouping. Obtendremos finalmente su estructura, parecida a esta. Pasaremos acolocar los campos en el informe, en el encabezado de grupocolocaremos el nombre de la compañía y en la sección detalle, loscampos título y comentarios del libro.

 

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 11/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 11

MailxMail.com - Cursos gratis en la web

5. Campos Agregados 

Un campo agregado, es aquel que nos permite realizar sumas, medias,etc.; sobre campos de una tabla. En nuestro ejemplo vamos a modificarel informe rptLibrosPub y su comando asociado acmLibrosPub , paraañadir un campo agregado que muestre el número total de librospublicados por la compañía.Para ello, iremos a las propiedades del comando y seleccionaremos lapestaña Agregados y pulsaremos el botón Agregar. Como nombre decampo elegiremos TotalLibros, la función que utilizaremos será Cuenta,

que nos permitirá realizar un recuento de todos los libros, ya que elcampo que elegiremos será Title. Lo agregaremos en Grouping, paraque esté disponible en todas las secciones.Ya tan sólo nos queda incluir este nuevo campo en el informe. El lugarmás apropiado es en el pie de grupo acmLibrosPub_Grouping_Footer, yaque nos da el total de libros por compañía. 

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 12/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 12

MailxMail.com - Cursos gratis en la web

6. El control rptFuncion 

Al igual que los campos agregados, el control rptFunction nos permiteañadir campos al informe que nos ayudan a realizar cálculos sobrecampos de una tabla. La diferencia está en que estos campos, nopertenecen al comando, sino únicamente al informe. Añadiremos estecontrol al pie de la sección acmTituloAutor , ya que lo que se pretende escalcular el total de libros por autor. Daremos un nombre a la función ycomo DataMember seleccionaremos acmLibros.Ahora nos queda seleccionar el campo que queremos contar, en nuestro

caso el campo ISBN, que nos da el total de libros (DataField). Y porúltimo debemos elegir el tipo de función a realizar, rptFuncRCnt, en elcampo FunctionType. 

También podemos realizar un recuento de todos los libros publicados.Bastará sólo con copiar el control fórmula y pegarlo en el pie deInforme, y ya tenemos el total buscado. 

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 13/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 13

MailxMail.com - Cursos gratis en la web

7. Enlace de los informes con la aplicación 

A continuación, explicaremos cómo enlazar nuestros informes con laaplicación que estamos desarrollando. Pues bien basta con el siguientecódigo, por ejemplo en un botón de comando, para llamar a un informegenerado:Private Sub Command1_Click() Screen.MousePointer = vbHourglass Load rptLibrosPub Screen.MousePointer = vbDefault

rptLibrosPub.Show vbModalEnd SubDe esta forma lanzaríamos el informe con todos los registros. Peropodemos también seleccionar una serie de ellos, que cumplan ciertacondición. Por ejemplo, podemos seleccionar aquellos cuya compañíasea 'A SYSTEM PUBNS'.Para ello, tendremos que obtener la sentencia SQL que define elcomando generador. Lo hacemos pulsando con el botón derecho sobreel comando y pulsando la opción Información de jerarquía, Tal comovemos en la figura siguiente. Ahora bastará con copiar el contenido de laventana y pegarlo en el código siguiente, y modificar la instrucciónañadiendo en la cláusula Where el criterio que nos interesa.Private Sub Command1_Click()Dim Listado As ADODB.Command `Objeto de tipo comandoDim Entorno As dteEntornoDatos `Nuestro entorno de datos Screen.MousePointer = vbHourglass'Iniciamos el entorno de datos. Set Entorno = New dteEntornoDatos

Entorno.Listados.ConnectionString ="Provider=Microsoft.Jet.OLEDB.3.51; Data Source= directorio donde seencuentra biblio.mdb" Set Listado = Entorno.Commands("acmLibrosPub_Grouping") Listado.CommandType = adCmdText Listado.CommandText = " SHAPE {SELECT Publishers.`CompanyName`, Titles.Title, Titles.Comments FROM Titles, Publishers WHERETitles.PubID = Publishers.PubID AND Publishers.`Company Name`='ASYSTEM PUBNS' ORDER BY Publishers.`Company Name`, Titles.Title}

AS acmLibrosPub COMPUTE acmLibrosPub, COUNT(acmLibrosPub.'Title')

5/8/2018 Manual Data Reports - slidepdf.com

http://slidepdf.com/reader/full/manual-data-reports 14/14

 

http://www.mailxmail.com - Encontraras muchos más cursos como este 14

MailxMail.com - Cursos gratis en la web

AS TotalLibros BY 'Company Name'" Load rptLibrosPub Screen.MousePointer = vbDefault rptLibrosPub.Show vbModalEnd SubEl resultado lo podemos ver a continuación. Bueno, ya tenemos más o menos una idea de cómo funcionan losinformes en Visual Basic 6.0.Evidentemente, quedan algunas cosas por tratar y profundizar, perocreo que con paciencia y mucha dedicación, podremos hacer todoaquello que queremos conseguir, siempre y cuando nos lo permita laherramienta. Tal vez, esta forma que explicamos aquí, sea la más

complicada para elaborar informes con DataReport, pero hasta ahora esla que conozco y con la que me he enfrentado, pero bueno para cosassencillas no está nada mal.Dejo a los lectores, el crear membretes en la cabecera de los informes,así como comentarios a pie de página, etc. Al igual que yo, cuando osenfrentéis a estos menesteres, os daréis cuenta cuán difícil resultamodificar un objeto dentro de un DataReport, al menos en la versión 2.0de ADO que es la que manejo actualmente.Veréis, qué complicado es por ejemplo, modificar la propiedad Caption 

de una etiqueta englobada en la sección de encabezado, pues nopodemos (al menos yo no sé) hacer referencia a ella mediante sunombre, sólo es posible realizarlo mediante el índice que ocupa dentrode la sección, propiedad que tampoco podemos conocer en modo diseñoo ejecución. Resumiendo, disponemos de una herramienta sencilla parainformes sencillos, que no representen mucha complejidad. Ánimo atodos, tal vez alguien descubra una forma más cómoda de realizarinformes con DataReport y puede ser que Microsoft mejore su interfaz yprogramabilidad.