Documente Academic
Documente Profesional
Documente Cultură
NOTA: La informacin contenida en este material, tiene un fin exclusivamente didctico, y por lo tanto, no est previsto su aprovechamiento a nivel profesional o industrial. Organizacin Leonardo Da Vinci no ser jurdicamente responsable por: errores u omisiones; daos y perjuicios que se pudieran atribuir al uso de la informacin comprendida en este libro, ni por la utilizacin indebida que pueda drsele.
-2-
Prefacio
MS Visual Basic .NET - Avanzado, es un manual que te ayudar a utilizar las operaciones y transacciones del lenguaje de programacin ms usado actualmente. Al hacerlo aprenders tambin a desarrollar la capacidad de diseo e implementacin de programas, a generar soluciones mediante mtodos ordenados, y a trabajar en equipo; tres cosas que te sern muy tiles durante toda tu vida.
Los procedimientos empleados en este manual para el diseo e implementacin de Programas, te permitirn realizar con gran facilidad y con calidad excepcional, aquellas tareas que involucren mantenimientos y actualizaciones de programas.
Al trabajar con estas tareas, tu funcin ser el de programador de computadoras; es decir, ser quien plantee y desarrolle las soluciones para alcanzar los objetivos propuestos, creando soluciones fciles de implementar. Tu asesor ser el usuario que plantear el problema que debes resolver.
MS Visual Basic .NET - Avanzado, presenta los casos, procedimientos, tips, actividades, cuestionarios y trminos tcnicos computacionales adecuados y claros para ti, para que aprendas de manera sencilla.
El Director
-3-
Los nombres comerciales que aparecen en este libro son maracas registradas de sus propietarios y se mencionan nicamente con fines didcticos, por lo que Organizacin Leonardo Da Vinci no asume ninguna responsabilidad por el uso que se d a esta informacin, ya que no infringe ningn derecho de registro de marca.
Colabor con la recopilacin de esta informacin: Ing. Nathaly Vernica Prado Ramrez.
-4-
NDICEDECONTENIDOS PROGRAMACINORIENTADAAOBJETOS.............................................................................8 POOENMICROSOFTVISUALBASIC.NET............................................................................9 CONCEPTOSDEPOO..........................................................................................................9 DEFINICINDEOBJETOS..................................................................................................10 DEFINICINDECLASES....................................................................................................10 CREARUNACLASE ...........................................................................................................12 . CREACINDECAMPOSPARALACLASE ..........................................................................13 . MTODOS ........................................................................................................................14 . INSTANCIARUNACLASE..................................................................................................14 PROPIEDADES ..................................................................................................................17 . ENCAPSULACINATRAVSDEPROPIEDADES................................................................19 PROPIEDADESDESLOLECTURAOSLOESCRITURA....................................................20 TRABAJANDOCONEVENTOSENWINDOWSFORM..............................................................23 EVENTOSENWINDOWSFORM.......................................................................................24 QUESUNEVENTO?......................................................................................................24 PROGRAMACINBASADAENEVENTOS..........................................................................25 ESQUEMABSICODEUNSISTEMAORIENTADOAEVENTOS.........................................26 ELEMISORDEEVENTOS ..................................................................................................26 . ELRECEPTORDEEVENTOS ..............................................................................................27 . CONEXINCONUNMANIPULADORDEEVENTOS..........................................................27 ENLACEESTTICODEEVENTOS.......................................................................................28 CAJASDEDILOGOENAPLICACIONESWINDOWS..........................................................30 VALIDARENTRADASDEUSUARIO ...................................................................................31 . INTRODUCCINAADO.NET................................................................................................32 ACCESSDATAOBJECTENVISUALBASIC.NET...................................................................33 TERMINOLOGADEBASEDEDATOS................................................................................33 CONCEPTO.......................................................................................................................35 ARQUITECTURADEADO.NET..........................................................................................36 ENTORNOCONECTADOODESCONECTADO....................................................................36 DATASET...........................................................................................................................36 COMPONENTESDEADO.NET...........................................................................................37 OBJETOSCOMUNESDEADO.NET....................................................................................38 ESPACIOSDENOMBRESYCLASESENADO.NET.............................................................38 OBJETOSADO.NET..........................................................................................................39 PROVEEDORESDEDATOSDE.NET..................................................................................40
-5-
CONEXINCONFUENTESDEDATOS ...................................................................................41 . CONEXINCONFUENTESDEDATOS...............................................................................42 CREACINDECONEXIONES.............................................................................................42 LASCLASESCOMMAND...................................................................................................46 MTODOSDELASCLASESCOMMAND............................................................................47 APLICACIONESDELASCLASESCOMMAND.....................................................................48 INSERTARDATOSUSANDOSQLCOMMAND....................................................................49 RECUPERARDATOSUSANDODATAREADERS..................................................................51 ENLACEADATOSENWINDOWSFORMI..............................................................................59 OBJETOSDEENLACEDEDATOS......................................................................................60 OBJETODATAADAPTER....................................................................................................60 OBJETODATASET.............................................................................................................61 USODEDATASETFRENTEADATAREADER......................................................................69 EXPLORADORDESERVIDORES........................................................................................70 ENLACEADATOSENWINDOWSFORMII.............................................................................75 TABLASDEBSQUEDAS.................................................................................................76 CONTROLDATAGRIDVIEW...............................................................................................76 ACTUALIZARDATOSCONDATAADAPTERYDATASET.....................................................78 ADMINISTRARDATOSENUNATABLA.............................................................................82 DATARELATION................................................................................................................87 LACLASEDATAVIEW........................................................................................................88 DESARROLLANDOCOMPONENTESYCONTROLESDEUSUARIO............................................90 HERENCIAENTREFORMULARIOS....................................................................................91 HERENCIAVISUAL............................................................................................................91 AGREGARUNPROYECTOCONUNFORMULARIODERIVADO.........................................95 CRYSTALREPORTSI............................................................................................................103 INFORMES.....................................................................................................................104 CREARCONEXINCONLABASEDEDATOS ..................................................................104 . CREARUNINFORME......................................................................................................109 ACCEDERALABASEDEDATOS......................................................................................111 CRYSTALREPORTSII...........................................................................................................116 MOSTRARINFORMES....................................................................................................117 VISUALIZADORDELINFORME........................................................................................117 CREARUNINFORMEDESDEADONET...........................................................................119 VISUALIZARELINFORME...............................................................................................119 PROYECTOSDEINSTALACIN.............................................................................................120
-6-
-7-
Sesin 1
PROGRAMACIN ORIENTADA OBJETOS
Competencia:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET.
Procedimentales:
Participasugiriendosobrelasactividadespropuestas. Analiza informacin acerca de la programacin orientada objetos mediante los contenidosentregados. Creaobjetosdentrodesuaplicacin.
Actitudinales:
Reconocelaimportanciadellaprogramacinorientadaaobjetoseimplementacin declases.
-8-
-9-
DEFINICIN DE OBJETOS
Un objeto es una agrupacin de cdigo, compuesta de propiedades y mtodos, que pueden ser manipulados como una entidad independiente. Las propiedades definen los datos o informacin del objeto, permitiendo consultar o modificar su estado; mientras que los mtodos son las rutinas que definen su comportamiento. Un objeto es una pieza que se ocupa de desempear un trabajo concreto dentro de una estructura organizativa de nivel superior, formada por mltiples objetos, cada uno de los cuales ejerce la tarea particular para la que ha sido diseado.
DEFINICIN DE CLASES
Una clase no es otra cosa que el conjunto de especificaciones o normas que definen cmo va a ser creado un objeto de un tipo determinado; algo parecido a un manual de instrucciones conteniendo las indicaciones para crear el objeto. Los trminos objeto y clase son utilizados en OOP con gran profusin y en contextos muy similares, por lo que para intentar aclarar en lo posible ambos conceptos, diremos que una clase constituye la representacin abstracta de algo, mientras que un objeto constituye la representacin concreta de lo que una clase define. La clase determina el conjunto de puntos clave que ha de cumplir un objeto para ser considerado perteneciente a dicha clase o categora, ya que no es obligatorio que dos objetos creados a partir de la misma clase sean exactamente iguales, basta con que cumplan las especificaciones clave de la clase. Expongamos ahora las anteriores definiciones mediante un ejemplo preciso: un molde para crear figuras de cermica y las figuras obtenidas a partir del molde. En este caso, el molde representara la clase Figura, y cada una de las figuras creadas a partir del molde, sera un objeto Figura. Cada objeto Figura tendr una serie de propiedades comunes: tamao y peso iguales; y otras propiedades particulares: un color distinto para cada figura. Aunque objetos distintos de una misma clase pueden tener ciertas propiedades diferentes, deben tener el mismo comportamiento o mtodos. Para explicar mejor esta circunstancia, tomemos el ejemplo de la clase Coche; podemos crear dos coches con diferentes caractersticas (color, tamao, potencia, etc.), pero cuando aplicamos sobre ellos los mtodos Arrancar, Acelerar o Frenar, ambos se comportan o responden de la misma manera. El proceso por el cual se obtiene un objeto a partir de las especificaciones de una clase se conoce como INSTANCIACIN de objetos. Siguiendo con ejemplo del molde y las figuras; en dicha imagen vemos un molde para
- 10 -
fabricar figuras rectangulares, donde la clase Figura estara representada por el molde, y cada uno de los objetos Figura (iguales en forma pero con la propiedad Color distinta), representara una instancia de la clase.
Ejemplo: El formulario Visual Basic .NET con el que hemos estado trabajando es un buen ejemplo de abstraccin. Las propiedades esenciales de un formulario, como el ttulo y color de fondo, se han abstrado en la clase Form. Algunas operaciones esenciales que se han abstrado son abrir, cerrar y minimizar. Las clases utilizan encapsulacin para garantizar que se cumple una abstraccin. La encapsulacin es el empaquetamiento de atributos y funcionalidades para crear un objeto que esencialmente es una caja negra (cuya estructura interna permanece privada). Empaquetamos los detalles de la abstraccin y proporcionamos acceso slo a los elementos que necesitan estar accesibles. Lo que ve el usuario: Lo que est encapsulado:
//verify language //authenticate PIN
Clase
Objeto
Objeto
- 11 -
- 12 -
Y escribimos el nombre:
El resultado sera:
Tras agregar una nueva clase a nuestro proyecto, podemos agregar miembros de datos a la clase. Un miembro de datos especfico para una instancia de la clase se denomina miembro de datos de una instancia. Cuando agregamos miembros de datos de una instancia a una clase, especificamos el nivel de acceso estableciendo los modificadores de acceso. Los miembros de datos de una instancia incluyen variables y constantes miembro. Las variables miembro tambin se denominan campos.
- 13 -
Aplicacin 01:
En el siguiente ejemplo, se agrega a la clase un miembro de datos de tipo Double denominado saldo:
MTODOS
Podemos agregar mtodos a una clase. Cuando agregamos mtodos, especificamos el nivel de acceso estableciendo el modificador de acceso. Los mtodos incluyen funciones y procedimientos Sub. En el siguiente ejemplo, se agrega a la clase un mtodo denominado Deposito:
En este ejemplo, el mtodo Deposito es pblico, por tanto los usuarios de esta clase pueden depositar dinero en una cuenta utilizando el mtodo Deposito.
- 14 -
Una vez declarado el objeto, podemos utilizar el mtodo respectivo: Al hacer clic en Depositar se debe agregar al saldo de la cuenta el monto ingresado. Referencia al Mtodo Deposito:
Aplicacin 02: Para explicar la creacin de clases usaremos un ejemplo sencillo basado en una clase principal "bicicleta". Para crear una clase debemos definir sus propiedades y sus mtodos, en este ejemplo se usan los siguientes trminos como propiedades de la clase bicicleta: Modelo, Precio, NumeroVelocidades y Velocidad:
- 15 -
la
clase
se
usan:
Acelerar(km),
Frenar()
Nuestra clase bicicleta consta de varias propiedades y mtodos, las palabras Private y Public definen la accesibilidad de las propiedades, funciones o subrutinas. La definicin de una propiedad o mtodo de tipo privado indica que slo podr ser usada dentro del cdigo de la misma clase, si cresemos un objeto de tipo bicicleta, las especificaciones de la clase no nos permitiran acceder a la propiedad velocidad para consultarla o modificarla, ya que est definida como privada. En cambio se pueden usar las subrutinas Acelerar() y Frenar() ya que son de tipo Public, y desde dentro de ellas se interacta con las propiedades privadas, con esto conseguimos encapsular el cdigo y hacer accesible solo aquello que queramos. Una vez est construida la clase ya se pueden instanciar objetos de la misma.
- 16 -
Cdigo completo:
Tras la creacin del objeto objBicicleta a partir de la clase, se pueden modificar los valores de las propiedades de tipo Public, y llamar a los mtodos de tipo Public. En el ejemplo se llama a los mtodos Acelerar(), pasndole el numero de km que queremos acelerar a travs del parmetro "km" que est definido en la subrutina. Luego se llama al mtodo Frenar() que decrementa en una unidad el valor de la propiedad Velocidad. Por ltimo se usa la funcin ConsultarVelocidad(), que retorna el valor de la propiedad Velocidad para introducirlo en la variable VelocidadActual.
PROPIEDADES
Una propiedad en la clase se define, por norma general, mediante dos elementos: una variable de propiedad y un procedimiento de propiedad. La variable de propiedad, tal y como su nombre indica, es una variable con mbito privado a nivel de la clase, que se encarga de guardar el valor de la propiedad. Por su parte el procedimiento de propiedad o Property, es el encargado de actuar de puente entre el cdigo cliente y la variable de propiedad, realizando las operaciones de acceso y asignacin de valores a dicha variable. Por lo tanto, para crear una propiedad en nuestra clase, declararemos en primer lugar una variable Private, y en segundo lugar un procedimiento de tipo Property, que consta de dos bloques: Get, para devolver el valor de la variable de propiedad; y Set, para asignrselo. Aplicacin 03: Se debe declarar una variable de propiedad para la propiedad Categora:
- 17 -
Cuando declaramos un procedimiento Property, debemos, al igual que en una funcin, tipificarlo, ya que una de sus labores consiste en la devolucin de un valor. Para devolver el valor, en el bloque Get podemos utilizar la palabra clave Return, seguida del valor de retorno, o bien la sintaxis clsica de asignar el valor al nombre de la funcin. Nuestra recomendacin es el uso de Return por las ventajas explicadas en el tema del lenguaje. En cuanto a la asignacin de valor, el bloque Set utiliza un parmetro con el nombre Value, que contiene el valor para asignar a la propiedad. Al declarar un procedimiento de este tipo, el IDE de VS.NET crea automticamente los correspondientes bloques Get y Set, ahorrando ese trabajo al programador. A la hora de manipular una propiedad desde el cdigo cliente, la diferencia no ser notoria, como muestra el Cdigo siguiente. La nica forma de hacer ms patente el uso del procedimiento Property, consiste en ejecutar el programa utilizando el depurador; de esta manera comprobaremos como el flujo de la ejecucin salta a los bloques Get y Set al manejar la variable del objeto.
- 18 -
Dado que los procedimientos Property no son otra cosa que rutinas de cdigo, tambin se les denomina mtodos de acceso y asignacin en el ambiente de POO.
Para resolver el problema mediante el uso de propiedades, contamos con la ventaja de escribir cdigo de validacin en los correspondientes procedimientos Property; con ello encapsulamos el cdigo de la clase, mantenindolo a salvo de asignaciones incoherentes.
- 19 -
- 20 -
Debido a esto, en una propiedad ReadOnly no podremos escribir el bloque Set, ya que no tendra sentido, puesto que no se va a utilizar. Lo mismo podemos aplicar para una propiedad WriteOnly, slo que en esta, el bloque que no podremos codificar ser Get. Igualmente obtendremos un error del compilador, si en el cdigo cliente intentamos asignar un valor a una propiedad ReadOnly, u obtener un valor de una propiedad WriteOnly. Aplicacin 04: Crear la siguiente clase:
- 21 -
- 22 -
Sesin 2
TRABAJANDO CON EVENTOS EN WINDOWS FORM
Competencias
Implementamdulos,clasesycomponentesquepermitanelaborarprogramasenn capas.
Procedimentales:
DiseaeimplementaaplicacionesusandoloscontrolesWindowsformsyvalidalos iniciosdesesin.
Competencias Actitudinales:
ValoraelusodeiniciodesesinenlasaplicacionesWindows.
- 23 -
- 24 -
Una vez finalizado el desarrollo de la clase, la distribuimos a nuestro cliente. Posteriormente, un nuevo cliente nos requiere la clase, pero en esta ocasin, aunque necesita la validacin sobre la propiedad Sueldo, no quiere que se muestre el mensaje al sobrepasar el sueldo asignado. Se nos plantea en este caso un problema, ya que si escribimos una nueva versin de la clase Empleado, tendremos el trabajo extra de mantener ambas. Para solucionarlo mediante una nica versin de la clase recurriremos a los eventos.
- 25 -
EL EMISOR DE EVENTOS
Un emisor de eventos, tambin denominado origen de eventos (event source o event sender), es un objeto capacitado para generar y lanzar eventos al sistema, que puedan ser recuperados por otros objetos preparados para realizar su tratamiento. Para que un objeto pueda desencadenar eventos, en su clase debemos realizar dos tareas: Declarar el propio evento usando la palabra clave Event, especificando si es necesario una lista de parmetros que acompaan al evento. Lanzar el evento mediante la palabra clave RaiseEvent, seguida del nombre del evento a disparar. Si hemos declarado el evento con parmetros, deberemos aadir los valores para cada uno de los parmetros en el mismo orden en el que los hemos declarado. Situndonos pues ante el problema planteado por la clase Empleado en un apartado anterior, la solucin que proponemos consistir en generar desde la clase Empleado un evento cuando se produzca un fallo en la validacin del sueldo. De esta manera, el cdigo cliente que lo necesite, responder al evento; y el que no lo precise, har caso omiso del evento lanzado. En primer lugar, declaramos en la zona de declaraciones de la clase el evento LimiteSueldo, que ir acompaado de un parmetro que nos informar del importe errneo que se intentaba asignar a la propiedad. A continuacin, en la propiedad Sueldo, cuando detectemos que el sueldo sobrepasa el valor permitido, en lugar de mostrar el mensaje de Error,
- 26 -
generaremos el evento LimiteSueldo, que podr ser recuperado por el cdigo cliente que haga uso de la clase, actuando como necesite en cada ocasin. Ntese que al mismo tiempo que lanzamos el evento, le pasamos el importe del sueldo que se intentaba asignar. Agregamos la siguiente lnea, declarando el evento respectivo:
Con estas modificaciones sobre la clase Empleado, ya tenemos listo nuestro emisor de eventos. Queda ahora por completar la parte que captura los eventos lanzados por el emisor
EL RECEPTOR DE EVENTOS
Un receptor de eventos, tambin denominado manipulador de eventos (event receiver o event handler), es aquella parte del cdigo cliente, que configuramos para que sea capaz de recibir los eventos generados por un objeto emisor. Para que ambos elementos, en este canal de comunicacin que es la transmisin de eventos puedan operar, es necesario conectarlos.
- 27 -
tcnica tiene la ventaja de que permite escribir un cdigo mucho ms legible, en cuanto a la manipulacin de eventos se refiere. En tiempo de ejecucin, realizando un enlace dinmico entre la clase y el manipulador mediante la palabra clave AddHandler. La ventaja en este caso, es que podemos asociar procedimientos manipuladores de evento dinmicamente durante el transcurso de la ejecucin del programa.
A continuacin, tenemos que escribir el procedimiento manipulador, que ser invocado cada vez que se dispare el evento. Dicho procedimiento debe ser de tipo Sub, ya que un evento no puede devolver valores, por lo que no podremos utilizar un Function; tambin debemos finalizar su declaracin con la palabra clave Handles, seguida del nombre de la variable del objeto que hemos declarado en la zona de declaraciones, y el nombre del evento que el procedimiento va a tratar. Para nuestra Aplicacin, el procedimiento Emple_LimiteSueldo( ), ser llamado cada vez que se produzca el evento LimiteSueldo en el objeto Empleado.
El nombre utilizado para el procedimiento puede ser cualquiera, aunque en este caso hemos empleado la convencin NombreObjeto_NombreEvento simplemente para facilitar la lectura del cdigo, pero podramos haber utilizado:
- 28 -
NOTA: Para facilitar la creacin de los procedimientos manipuladores de evento, consiste en abrir la lista Nombre de clase y seleccionar el nombre de la variable que hemos declarado WithEvents:
Luego pasamos a la lista Nombre de mtodo, y all elegimos el nombre del evento que vamos a programar:
Esto nos crea el procedimiento manipulador de evento vaco, en base a una convencin de nombres predefinida en el IDE.
Como hemos escrito el manipulador de evento para el objeto Empleado en un mdulo, vamos ahora a probar la aplicacin, instanciando en el mismo, un objeto de esta clase. Asignaremos en primer lugar, un valor correcto a la propiedad Sueldo, y a continuacin un valor que provocar el evento en la clase. Se Recomienda ejecutar el cdigo lnea a lnea con el depurador, para observar el efecto cuando se produzca el evento.
- 29 -
MessageBox Muestra un mensaje al usuario, y espera la respuesta del usuario para poder ejecutar alguna accin.
- 30 -
Cdigo:
- 31 -
Sesin 3
INTRODUCCIN A ADO .NET
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Desarrollaprogramasconcontrolesdeenlaceadatos.
Procedimentales:
Identifica la arquitectura ADO .NET y reconoce los objetos de conexin a base de datos. Diseaeimplementalaconexindesusformulariosalabasededatos
Actitudinales:
ComprendelaarquitecturaADO.NETylanecesidaddeutilizarobjetosdeconexina datos.
- 32 -
- 33 -
Relacin: Una relacin es una asociacin establecida entre campos comunes (columnas) de dos tablas. Una relacin puede ser de uno a uno, de uno a muchos, o de muchos a muchos. Las relaciones permiten que los resultados de las consultas incluyan datos de varias tablas. Una relacin uno a uno entre una tabla Clientes y una tabla Pedidos permitira que una consulta devolviera todos los pedidos de un determinado cliente. Acceso de slo lectura: El acceso de slo lectura a una base de datos significa que podemos recuperar (leer) los datos pero no podemos modificarlos (escribir). Un archivo de slo lectura o un documento puede visualizarse o imprimirse pero no puede modificarse de ningn modo. Acceso de lectura/escritura: El acceso de lectura/escritura a una base de datos significa que podemos recuperar (leer) los datos y modificarlos (escribir). Programacin De Base De Datos:
Cuando desarrollamos aplicaciones, tenemos diferentes requerimientos para trabajar con datos. En algunos casos, simplemente desearemos mostrar datos en un formulario. En otros casos, es posible que necesitemos crear una forma de compartir informacin con otra organizacin. Cuando trabajamos con datos, utilizamos varios objetos para recuperar y modificar informacin de una base de datos. En general, cuando trabajamos con bases de datos en ADO.NET, realizamos las siguientes tareas:
- 34 -
Conectar a una base de datos. Solicitar datos especficos. Especificar los datos que se desean recuperar y si se necesita acceso de solo lectura o de lectura/escritura a los datos. Recuperar y mostrar los datos. Cerrar la conexin (en algunas aplicaciones). Modificar los datos recuperados (si se dispone de acceso de lectura/escritura). Volver a abrir la conexin (en algunas aplicaciones). Transmitir a la base de datos los cambios realizados en los datos. Cerrar la conexin.
CONCEPTO
ADO .NET es la nueva versin del modelo de objetos ADO (ActiveX Data Objects), es decir, la estrategia que ofrece Microsoft para el acceso a datos. ADO .NET ha sido ampliado para cubrir todas las necesidades que ADO no ofreca, y est diseado para trabajar con conjuntos de datos desconectados, lo que permite reducir el trfico de red. ADO .NET utiliza XML como formato universal de transmisin de los datos. ADO .NET posee una serie de objetos que son los mismos que aparecen en la versin anterior de ADO, como pueden ser el objeto Connection o Command, e introduce nuevos objetos tales como el objeto DataReader, DataSet o DataView. ADO .NET se puede definir como: Un conjunto de interfaces, clases, estructuras y enumeraciones que permiten el acceso a datos desde la plataforma .NET de Microsoft La evolucin lgica del API ADO tradicional de Microsoft Permite un modo de acceso desconectado a los datos, los cuales pueden provenir de mltiples fuentes de datos, de diferente arquitectura de almacenamiento. Soporta un completo modelo de programacin y adaptacin, basado en el estndar XML
- 35 -
DATASET
El API de ADO .NET proporciona una superclase, DataSet, que encapsula lo que sera la base de datos a un nivel lgico: tablas, vistas, relaciones, integridad entre todos ellos, etc., pero siempre con independencia del tipo de fabricante que la dise. Aqu se tiene el mejor concepto de datos desconectados: una copia en el cliente de la arquitectura de la base de datos, basada en un esquema XML que la independiza del fabricante, proporcionando al desarrollador la libertad de trabajo independiente de la plataforma. Un DataSet es una cach de registros recuperados de una base de datos que acta como un sistema de almacenamiento virtual, y que contiene una o ms tablas basadas en las tablas reales de la base de datos. Adicionalmente, almacena las relaciones y reglas de integridad existentes entre ellas para garantizar la estabilidad e integridad de la informacin de la
- 36 -
base de datos. Muy importante es recalcar, que los DataSets son almacenes pasivos de datos, esto es, no se ven alterados ante cambios subyacentes de la base de datos. Es necesario recargarlos siempre que queramos estar al da, en cuanto a datos se refiere. Los DataSets son un concepto realmente revolucionario y si precedentes. Son, bsicamente, representaciones en memoria de algo ms que una simple tabla, es posible verlo como una porcin de base de datos en la memoria de la PC del cliente, el cual puede contener tablas, relaciones e incluso hasta constraints (primary keys, foreign keys, uniques). La idea detrs de esto es que la aplicacin cuente con todos los datos necesarios para poder trabajar, y por ninguna razn requiera conectarse a la base de datos, salvo para cargar o actualizar los cambios generaron en el DataSets La Figura siguiente muestra una representacin de este tipo de objeto.
COMPONENTES DE ADO.NET
Los componentes de ADO.NET han sido diseados para separar el acceso a datos de la manipulacin de los datos. Existen dos componentes principales de ADO.NET que lo cumplen: el componente DataSet y los Proveedores de datos .NET. Los proveedores de datos .NET constan de un conjunto de componentes que incluyen los objetos Connection, Command, DataReader y DataAdapter. Los componentes del proveedor de datos .NET estn diseados explcitamente para la manipulacin de datos desconectados. ADO.NET y Windows Forms proporcionan componentes para el consumidor de datos que podemos utilizar para mostrar nuestros datos. Incluyen controles como DataGrid, que pueden ser enlazados a datos, y propiedades de enlace a datos en la mayora de controles estndares de Windows, como los controles TextBox, Label, ComboBox y ListBox. El .NET Framework incluye numerosos proveedores de datos .NET, incluyendo el proveedor de datos de .NET para SQL Server, el proveedor de datos de .NET OLE DB para SQL, y el proveedor OLE DB para Microsoft Jet. Si necesitamos un proveedor personalizado, podemos escribir proveedores de datos .NET para cualquier fuente de datos.
- 37 -
- 38 -
DataSet: Almacn de datos por excelencia en ADO .NET. Representa una base de datos desconectada del proveedor de datos. Almacena tablas y sus relaciones. DataTable: Un contenedor de datos. Estructurado como un conjunto de filas (DataRow) y columnas (DataColumn). DataRow: Registro que almacena n valores. Representacin en ADO .NET de una fila/tupla de una tabla de la base de datos. DataColumn: Contiene la definicin de una columna. Metadatos y datos asociados a su dominio. DataRelation: Enlace entre dos o ms columnas iguales de dos o mas tablas. Constraint: Reglas de validacin de las columnas de una tabla. DataColumnMapping: Vnculo lgico existente entre una columna de un objeto del DataSet y la columna fsica de la tabla de la base de datos. DataTableMapping: Vnculo lgico existente entre una tabla del DataSet y la tabla fsica de la base de datos.
Command
Diseado para acceder a datos con independencia de la fuente de datos. En consecuencia, podemos utilizarlo con varias y diferentes fuentes de datos, con datos XML, o para gestionar datos locales a la aplicacin. El objeto DataSet DataSet contiene una coleccin de uno o ms objetos DataTable formados por filas y columnas de datos, adems de clave principal, clave fornea, restricciones e informacin de la relacin sobre los datos en los objetos DataTable. Proporciona un flujo de datos eficaz, slo-reenvo y de DataReader slo-lectura desde una fuente de datos. Utiliza los objetos Connection, Command y DataReader implcitamente para poblar un objeto DataSet y para DataAdapter actualizar la fuente de datos central con los cambios efectuados en el DataSet.
- 39 -
Base de Datos
- 40 -
Sesin 4
CONEXIN FUENTES DATOS CON DE
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Desarrollaprogramasconcontrolesdeenlaceadatos.
Procedimentales:
Implementalaconexindesusformulariosalabasededatos. Analiza e identifica la gestin de excepciones de conexin, con la estructura TRY CATCH.
Actitudinales:
Valoralaimportanciadelaconexindelosformulariosalabasededatos.
- 41 -
- 42 -
ModDeclaraciones
para
las
variables
La Cadena de Conexin depende del modo de autenticacin del SQL. Si el SQL est con autenticacin SQL Server, la Cadena est formada por: Data Source: Servidor de Base de Datos del SQL. Initial Catalog: Nombre de la Base de Datos en SQL (Negocio). User Id: Inicio de Sesin que se usar en SQL. Password: Clave del Inicio de Sesin.
- 43 -
Primer Registro:
Registro Anterior:
- 44 -
Registro Siguiente:
ltimo Registro:
Nuevo Registro:
Guardar Registro:
Eliminar registro
- 45 -
CommandText: Contiene una cadena de texto que va a indicar la sentencia SQL o procedimiento almacenado que se va a ejecutar sobre el origen de los datos. CommandTimeout: Tiempo de espera en segundos que se va a aplicar a la ejecucin de un objeto Command. Su valor por defecto es de 30 segundos. CommandType: Indica el tipo de comando que se va a ejecutar contra el almacn de datos, es decir, indica cmo se debe interpretar el valor de la propiedad CommadText. Puede tener los siguientes valores: - StoredProcedure: para indicar que se trata de un procedimiento almacenado. - TableDirect: se trata de obtener una tabla por su nombre (nicamente aplicable al objeto OleDbCommand). - Text: que indica que es una sentencia SQL. EL valor por defecto es Text. Connection: Devuelve el objeto SqlConnection u OleDbConnection utilizado para ejecutar el objeto Command correspondiente.
- 46 -
Parameters: Coleccin de parmetros que se pueden utilizar para ejecutar el objeto Command, esta coleccin se utiliza cuando deseamos ejecutar sentencias SQL que hacen uso de parmetros, esta propiedad devuelve un objeto de la clase SqlParameterCollection o un objeto de la clase OleDbParameterCollection. Estas colecciones contendrn objetos de la clase SqlParamter y OleDbParameter, respectivamente, para representar a cada uno de los parmetros utilizados. Estos parmetros tambin son utilizados para ejecutar procedimientos almacenados.
- 47 -
Diagrama Final:
- 48 -
Como vamos a ejecutar una sentencia que no produce un conjunto de resultados, emplearemos el mtodo ExecuteNonQuery( ). La conexin slo permanece abierta en el momento de ejecutar el comando; esta accin es recomendable para todas las operaciones con datos: mantener abierta la conexin el menor tiempo posible. Disear el siguiente formulario en la VB .NET.
- 49 -
Al Dar clic en el Botn grabar, capturar los datos de los clientes en sus respectivas variables, asignar la sentencia SQL, Abrir la Conexin y ejecutar.
Ejecutar:
Prctica Clase: Programar el ingreso de Datos para las Tablas Vendedor y Producto.
- 50 -
- 51 -
Aplicacin 09: Usando la base de datos de la aplicacin anterior, mostrar de los datos de un cliente segn el cdigo ingresado.
Al hacer clic en el Botn Buscar, capturar el cdigo del Cliente que se va a buscar, asignar la sentencia a usarse y mostrar los datos en las Cajas de Texto respectivas.
- 52 -
Para mostrar todos los registros de una tabla, se usa el siguiente cdigo. Aplicacin 10: Usando la base de datos de la aplicacin anterior, mostrar de los datos de todos los clientes en un ListView.
- 53 -
Aplicacin 11: Usando la base de datos de la aplicacin anterior, mostrar de los datos de un cliente, modificarlos y volver a grabarlos.
Debemos crear en el Mdulo ModDeclaraciones, los procedimientos para Borrar, Activar y Desactivar las Cajas de texto.
- 54 -
Primero se tiene que buscar el cliente de quien se desean modificar sus datos.
- 55 -
Se ingresan los nuevos datos y se da Clic en Actualizar y los datos deben grabarse en la Tabla respectiva.
Prctica Clase: Programar la bsqueda y actualizacin de datos para las Tablas Vendedor y Producto.
- 56 -
Aplicacin 12: Usando la base de datos de la aplicacin anterior, mostrar de los datos de un cliente, eliminarlo de la Tabla.
Primero se tiene que buscar el cliente de quien se desean modificar sus datos.
- 57 -
Prctica Clase: Programar la bsqueda y eliminacin de Datos para las Tablas Vendedor y Producto.
- 58 -
Sesin 5
ENLACE A DATOS EN FORM I WINDOWS
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Implementamdulos,clasesycomponentesquepermitanelaborarprogramasenn capas. Desarrollaprogramasconcontrolesdeenlaceadatos. DiseainformesparalaimpresindedatosdesdeunaaplicacinWindows. Genera proyectos de instalacin de aplicaciones desarrolladas. Instala y desstanla aplicaciones
Procedimentales:
Utiliza los controles de enlace a datos conectados y/o desconectados y ejecuta las sentenciasdecdigo.
Actitudinales:
Reconocelaspropiedadesdeloscontrolesdeenlaceadatosyvaloralaimportancia desuuso.
- 59 -
- 60 -
OBJETO DATASET
Este objeto pertenece a la clase desconectada de ADO.NET y se encuentra definida en el espacio de nombres System.Data. Las clases desconectadas se muestran en la siguiente tabla. CLASE DESCRIPCIN Clase desconectada de datos que almacena tablas (y sus columnas), que pueden estar relacionadas DATASET entre s y sobre las cuales se puede aplicar diferentes vistas. Clase que define la estructura de datos bsica de DATATABLE un SGBDR. Se compone de filas y columnas en las que almacena la informacin y sus esquemas. Representa una unidad de informacin dentro de DATACOLUMN la tabla. Almacena su descripcin (Metadatos) y su informacin (Dato). Agrupacin de un conjunto de columnas con DATAROW informacin. Una tabla representa a su vez una agrupacin de filas. Establece el vnculo que existe entre dos o ms tablas a partir de un campo clave. Esto permitir DATARELATION navegar por la informacin de las tablas relacionadas de manera transparente Proporciona la habilidad de acceder a los datos de DATAVIEW una tabla desde diferentes puntos de vistas, ordenacin y filtrado de datos. La estructura de un DataSet se muestra en la siguiente figura. DataSet DataTableCollection DataTable DataRowCollection DataColumnCollectio
ConstraintCollection
DataRelationCollection
- 61 -
Cada tabla contenida dentro de un objeto DataSet se encuentra disponible a travs de su propiedad Tables. Que es una coleccin de objetos system.data.datatable. Cada objeto DataTable contiene una coleccin de objetos DataRow que representan las filas de la tabla. Cada objeto DataRow, es decir, cada fila posee una coleccin de objetos DataColumn, que representa cada una de las columnas de la fila actual. Cada objeto DataTable dispone de una propiedad llamada DefaultView, que devuelve un objeto de la clase DataView, el cual nos ofrece una vista de los datos de la tabla para que podamos recorrer los datos, filtrarlos, ordenarlos, etc. Para poder crear e inicializar las tablas de dataSet debemos hacer uso del objeto DataAdapter. Para SQL el objeto es sqlDataAdapter. Llenar un DATASET Un dataset es un contenedor, de modo que necesitamos poblarlo con datos. Podemos poblar un dataset de varios modos: Invocar el mtodo Fill de un adaptador de datos. Llamando este mtodo hace que el adaptador ejecute una sentencia SQL o un procedimiento almacenado y pueble una tabla en el dataset con los resultados. Al objeto DataAdapter le pasamos como parmetro una cadena que representa la consulta que se va a ejecutar, y que va a rellenar de datos el DataSet. Del objeto DataAdapter utilizamos el mtodo Fill(), que posee dos parmetros; el primero es el Data Set a rellenar de informacin; y el segundo, una cadena con el nombre que tendr la tabla creada dentro del DataSet, producto de la ejecucin de la consulta. Poblar tablas manualmente en el dataset creando DataRows y aadirlas a la coleccin Rows de la tabla.
- 62 -
Aplicacin 13: Consulta en un ListBox El siguiente cdigo fuente se muestra un sencillo ejemplo de creacin de un objeto DataSet que llenaremos con un DataAdapter. Una vez listo el DataSet, recorreremos la tabla que contiene y mostraremos valores de sus columnas en un ListBox.
- 63 -
Al hacer clic en Mostrar Clientes, se deben mostrar todos los datos de la tabla Cliente en el ListBox.
Prctica Clase: Programar la bsqueda de Datos para las Tablas Vendedor y Producto.
- 64 -
Aplicacin 14: Consulta en un ListView Usaremos la misma lgica de la aplicacin anterior, y mostraremos todos los datos de la Tabla Cliente en un ListView.
- 65 -
El resultado sera:
Prctica Clase: Programar la recuperacin de Datos para las Tablas Vendedor y Producto.
- 66 -
Aplic cacin 15: Mostr los Dat rar tos en Text tBox y per rmitir recorrer todos los registr ros uno a uno. Los TextBo deben in ox niciar desac ctivados.
En la aplicacin se estn agrupando los botones de movimiento en un procedimiento comn y a travs del parmetro sender se controla al botn sobre el cual se hace click usando en todo momento la variable reg, para saber en todo momento la fila sobre la cual nos encontramos. Prctica Clase: Programar la Navegacin de Datos para las Tablas Vendedor y Producto.
- 68 -
4. Crear una nueva DataView para la tabla deseada. 5. Enlazar un control servidor, como el DataGrid al DataView.
- 69 -
EXPLORADOR DE SERVIDORES
Podemos utilizar el Explorador de servidores para visualizar y manipular enlaces a datos, conexiones de bases de datos, y recursos del sistema en cualquier servidor para el que tengamos acceso en red. Utilizando el Explorador de servidores, podemos: Crear y abrir conexiones de datos a Microsoft Access, a servidores ejecutando Microsoft SQL Server y a otras bases de datos. Iniciar sesin en servidores y mostrar sus bases de datos, tablas, campos y sus datos sin abandonar el entorno de desarrollo ni utilizar el software de la base de datos. Visualizar los servicios del sistema, incluyendo el registro de sucesos, colas de mensajes, contadores de rendimiento y otros servicios del sistema. Visualizar informacin sobre los Servicios Web XML disponibles y los mtodos y esquemas que proporcionan. Almacenar proyectos y referencias a bases de datos. Crear componentes de datos que hagan referencia al recurso de datos o monitorizar su actividad arrastrando nodos desde el Explorador de servidores a nuestros proyectos de Visual Studio .NET. Interactuar con recursos de datos programando los componentes de datos creados en nuestros proyectos de Visual Studio .NET. Podemos abrir el Explorador de servidores en cualquier momento durante el proceso de desarrollo, mientras trabajamos con cualquier tipo de proyecto o elemento.
- 70 -
Abrir el Explorador de Servidores En el men Ver, hacer clic en Explorador de servidores. Si la ficha Explorador de servidores se muestra en el extremo izquierdo de la pantalla, hacer clic en esa ficha.
Agregar y eliminar conexiones a datos El Explorador de servidores muestra las conexiones a bases de datos bajo el nodo Conexiones de datos. Despus de establecer una conexin, podemos disear programas para abrir conexiones y recuperar y manipular los datos. De modo predeterminado, el Explorador de servidores muestra conexiones a datos y enlaces a servidores utilizados con anterioridad. Agregar una conexin a datos en el Explorador de servidores 1. En el men Herramientas, hacer clic en Conectar con base de datos. Se abre el cuadro de dilogo Propiedades del vnculo de datos.
2. En la ficha Proveedor del cuadro de dilogo Propiedades del vnculo de datos, seleccionar un proveedor.
- 71 -
3. Dar clic en continuar para buscar la Base de Datos con la cual se desea conectar. Para nuestro ejemplo, estamos usando SQLServer, por lo tanto debemos seleccionar la Autenticacin.
- 72 -
- 73 -
Eliminar una conexin de datos desde el explorador de servidores 1. En el Explorador de servidores, expandir el nodo Conexiones de datos. 2. Seleccionar la conexin a la base de datos deseada. 3. Pulsar Eliminar. No se produce ningn efecto en la base de datos. Hemos eliminado la referencia desde nuestra vista.
- 74 -
Sesin 6
ENLACE A DATOS EN WINDOWS FORM II
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Desarrollaprogramasconcontrolesdeenlaceadatos.
Procedimentales:
Utiliza los controles de enlace a datos conectados y/o desconectados y relaciona tablasenelDataSet.Ejecutalassentenciasdecdigo.
Actitudinales:
Reconoce las propiedades de los controles de enlace a datos conectados y/o desconectadosyvaloralaimportanciadesuuso.
- 75 -
TABLAS DE BSQUEDAS
CONTROL DATAGRIDVIEW
Despus de poblar un dataset, podemos visualizar y modificar datos utilizando el control DataGridView de Windows Forms. DataGridView muestra datos en una serie de filas y columnas. El caso ms simple es cuando la rejilla se enlaza con una fuente de datos que contiene una nica tabla sin relaciones. En ese caso, los datos aparecen simplemente en filas y columnas, como en una hoja de clculo. Cmo funciona el DATAGRIDVIEW Si el DataGridView se enlaza a datos con mltiples tablas relacionadas y si se activa la navegacin en la rejilla, ste visualizar expansores en cada fila. Un expansor permite la navegacin desde una tabla padre a una hija. Haciendo clic en un nodo se muestra la tabla hija y haciendo clic en el botn Atrs muestra la tabla padre original. En este modo, la rejilla muestra las relaciones jerrquicas entre tablas. DataGridView puede proporcionar un interfaz de usuario para un dataset, navegacin entre tablas relacionadas y ricas capacidades de formateo y edicin. La visualizacin y manipulacin de datos son funciones separadas: el control gestiona el interfaz de usuario, mientras que las actualizaciones de datos las gestiona la arquitectura de enlace de datos de Windows Forms y por los proveedores de datos ADO.NET. Por tanto, mltiples controles enlazados a la misma fuente de datos permanecern sincronizados. Enlace de datos al control Para que el control DataGridView funcione, debemos enlazarlo con una fuente de datos utilizando las propiedades DataSource y DataMember en tiempo de diseo. Este enlace vincula el DataGridView a un objeto de fuente de datos instanciado (como un DataSet o DataTable) y el control DataGridView se actualiza con los resultados de acciones realizadas sobre los datos. La mayora de acciones especficas de datos no son realizadas por el DataGridView. Se realiza por medio de la fuente de datos.
- 76 -
En el Mdulo ModDeclaraciones, declarar la Variable para el constructor de las sentencias SQL: SQLCommandBuilder.
Al hacer clic en Mostrar Clientes, se debe llenar el DataGridView con todos los datos de la Tabla Cliente.
- 77 -
- 78 -
Crear el Procedimiento Privado MostrarDatos, para llenar el DataSet y mostrar los datos en el DataGridView.
Crear el Procedimiento Privado CrearParametros, para crear el Comando CMDInsertar indicando la sentencia que ejecutar el DataAdapter DAP en su accin Insertcommand.
- 79 -
Crear el Procedimiento Privado AsignarParametros, para capturar los Datos que usar el DataAdapter al momento de insertar los Datos.
Al dar clic en Mostrar, se deben llenar los Datos existentes en la Tabla Cliente.
- 80 -
Al dar Clic en Ingresar se deben Agregar a la Tabla los Datos ingresados en los TextBox, actualizndose los datos en el DataGridView.
El resultado sera:
- 81 -
- 82 -
- 83 -
Al dar clic en el Botn Ingresar, se deben ingresar los datos de los TextBox a la Tabla Cliente.
El resultado sera:
- 84 -
El resultado sera:
- 85 -
- 86 -
DATARELATION
Los objetos DataRelation nos permiten establecer una relacin entre dos tablas (objetos DataTable) de un DataSet, a travs de una columna o campo comn (objetos DataColumn). Obtener tablas relacionadas mediante cdigo Aplicacin 19: Se desean mostrar las Boletas generadas con sus respectivos detalles de los productos. Podemos ahorrar la escritura de las instrucciones que se encargan de obtener las filas hijas, relacionadas con la fila seleccionada de la tabla padre, empleando un DataGrid. Este control implementa de forma transparente todos los mecanismo necesarios gracias al databinding, por lo que, una vez creada la relacin, slo hemos de asignar a su propiedad DataSource, la tabla padre del Dataset.
- 87 -
LA CLASE DA ATAVIEW
La cla DataVie nos per ase ew rmite la aplicacin de vistas per e rsonalizada a partir as de un tabla co na ontenida en un DataS n Set, as como la orde enacin y bsqueda de fila as. En ADO clsico para disponer de varias v A o, vistas de una mism tabla, ma deber ramos crea diferentes objetos Recorset, lo cual pro ar ovocaba el consumo de un gran can na ntidad de recursos.
Este aspecto ha cambiado fundamentalmente en ADO.NET, ya que partiendo de un objeto DataTable situado en un DataSet, vamos a definir varias vistas simultneamente, ordenar y buscar registros, con la ventaja de que el consumo de recursos es menor, puesto que los objetos DataView se alimentan del mismo Datatable. El DataSet del formulario del ejercicio va a estar compuesto por dos tablas. El siguiente cdigo fuente muestra el evento de carga del formulario. Aplicacin 20:
- 89 -
Sesin 7
DESARROLLANDO COMPONENTES Y CONTROLES USUARIO DE
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Desarrollaprogramasconcontrolesdeenlaceadatos.
Procedimentales:
Desarrollacomponentes,controlesdeusuarioyejecutalasentenciadecdigo
Actitudinales:
Valoralaimportanciadelusodecomponentesenelentornodeprogramacin.
- 90 -
- 91 -
A continuacin, abriremos la ventana del explorador de soluciones, seleccionaremos el formulario por defecto de este proyecto y lo eliminaremos.
Siguiendo en el explorador de soluciones, en esta ocasin haremos clic sobre el nombre del proyecto, y pulsaremos el botn de propiedades de esta ventana.
- 92 -
En la ventana de propie a edades, abriremos la lista de esplegable Tipo de Aplica acin, y se eleccionare emos la opcin Biblioteca de clases. Pa ara poder utiliza un form ar mulario com clase ba mo ase de otr formular ro rio, el proy yecto que contie ene el form mulario bas debe ser de tipo lib se r brera, par que al co ra ompilarlo, gener un fichero .DLL con dicho for re n rmato de biblioteca.
so r oyecto, el f formulario que va a El siguiente pas consiste en aadir a este pro se. amos un nu uevo Formu ulario llama ado frmVal lidar. actuar como bas Agrega
l taremos lo controle necesarios para os es En el formulario frmValidar, insert introd ducir los d datos de usuario co su resp u on pectiva cla ave y un botn de valida acin de dichos datos s.
biblioteca
de
clases,
es
decir,
el
archivo
A partir de este punto, deberemos crear el proyecto que contenga un formulario que herede el formulario base que acabamos de crear. Esto lo podemos conseguir de dos modos: Agregando un nuevo proyecto a la solucin. Creando un nuevo proyecto aparte. En ambos casos, tendremos que establecer la oportuna referencia, bien hacia el proyecto del formulario base en el primer caso, o hacia el archivo que contiene la librera de clases, como veremos en la siguiente aplicacin.
- 94 -
Para poder realizar las oportunas pruebas, haremos clic derecho en el nuevo proyecto, FormularioDerivado, y seleccionaremos del men contextual la opcin Establecer como proyecto de inicio, ya que como una biblioteca de clases no podemos ejecutarla visualmente, necesitamos un proyecto que sea de tipo aplicacin Windows, que s disponen de medio visual de representacin a travs de formularios.
El siguiente paso ser eliminar el formulario que contiene el proyecto FormularioDerivado, de igual modo que el mostrado anteriormente.
- 95 -
- 96 -
Al aceptar la ventana de creacin del formulario, el entorno de desarrollo buscar la biblioteca de clases con el mbito ms prximo, y que disponga de formularios heredables, mostrando el resultado en la ventana Selector de herencia. En nuestro caso, naturalmente, aparecer el formulario base frmValidar, contenido en la DLL que hemos generado anteriormente.
Al aceptar ser habr creado el nuevo formulario, en base al formulario base especificado, y establecida una referencia en el proyecto FormularioDerivado hacia el proyecto base FormularioBase.
- 97 -
Al abrir el formulario frmIngreso en el diseador de formularios, se mostrar con los controles pertenecientes al formulario base bloqueados; ello es debido a que tales controles pertenecen a la clase base del formulario, y slo pueden ser manipulados desde el proyecto del formulario base.
En lo que respecta al cdigo de este formulario, slo podemos escribir los eventos de los nuevos controles, ya que el cdigo de los controles heredados se encuentra protegido, siendo slo modificable desde el proyecto del formulario base. El nico evento, por lo tanto que vamos a escribir aqu, ser el del botn BTNSalir, que llamar al mtodo de cierre del formulario.
- 98 -
Aplic cacin 23: Crear un form r mulario he eredado d desde un proyecto independ diente La difere encia principal en est caso co te onsiste en que dentro de la so olucin de proye ectos, no est el proy e yecto que contiene e formular base, p el rio por lo que tendr remos que buscar el archivo que con e o ntiene la librera d clases de manu ualmente. os un proyecto de aplicacin Windows al que da e s, aremos el Vamo a crear u nuevo p nomb Formula bre arioDerivad do01.
namos el formulario por de efecto que contiene y agreg e e gamos el Elimin formu ulario Heredado.
Al Agregar, el selector de herencia nos avisa de que no puede localizar en el mbito de que dispone, un ensamblado (biblioteca de clases en este caso) que contenga formularios de los que heredar.
- 100 -
Tenemos por lo tanto, que pulsar el botn Examinar y buscar el archivo FormularioBase.DLL, que creamos en la aplicacin 21 y se encuentra en la ruta de dicho proyecto, en su directorio bin\Debug. Una vez localizado, aceptaremos esta ventana.
Seleccionar FRMValidar.
- 101 -
El IDE se encargar a continuacin, de establecer la referencia entre nuestro proyecto y el ensamblado o archivo DLL que contiene el formulario base, mostrando finalmente el nuevo formulario heredado del mismo modo en que vimos en el ejemplo anterior. Seguidamente, aadiremos algunos controles para adaptarlo a las necesidades particulares de este proyecto.
- 102 -
Sesin 8
CRYSTAL REPORTS I
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Desarrollaprogramasconcontrolesdeenlaceadatos.
Procedimentales:
DiseaeimplementaReportesyrealizaelenlaceconlabasededatos.
Actitudinales:
Muestrainterspordisearreportesenlazadosalabasededatos.
- 103 -
INFORMES
Visual Studio. Net incluye Crystal Reports como un mecanismo oficial de creacin de reportes. Crystal Reports es un producto muy desarrollado y completo para la creacin de reportes y cuenta con una infinidad de opciones.
- 104 -
4) Agregar la conexin a la Base de Datos. Clic en examinar para buscar la Base de Datos respectiva.
- 105 -
7) Probar conexin.
- 106 -
10) Seleccionar los objetos que se desean agregar de la Base de Datos para que se almacenen en un DataSet.
- 107 -
- 108 -
CREAR UN INFORME
Independiente de cmo se har la presentacin, el reporte se define en un archivo .RPT, que forma parte de su proyecto. Ese archivo especifica el modo en que se har la presentacin del reporte, pero no incluye los datos propiamente dichos. Los datos se definirn en el tiempo de ejecucin. Crystal Reports se basa en un concepto muy comn de la definicin de reportes: los reportes se componen de secciones, y cada seccin es un espacio horizontal en la pgina. Existen diversos tipos de secciones, por ejemplo: Encabezado del reporte, aparece en la primera pgina. Encabezado de pgina, aparece en la parte superior de todas las pginas. Detalle: lo ms importante. En el tiempo de ejecucin, se genera una de estas secciones para cada lnea (registro) en la base de datos. Pie de pgina, aparece en la parte inferior de todas las pginas. Pie de reporte, aparece al final del reporte. Aplicacin 24: Crear un Reporte que muestre la lista de todos los Clientes. Antes de crear el reporte debemos tener un proyecto abierto y deber estar la fuente de datos a mostrar. Agregamos un nuevo elemento al Proyecto.
- 109 -
Crystal Reports mostrar la galera en la cual seleccionaremos Usar asistente de Informes. Tambin seleccionamos Informe Estndar.
- 110 -
- 111 -
Si se desea se puede seleccionar que se muestre algn resumen en el Reporte. Esto se puede usar cuando se generan Reportes de Ventas.
- 112 -
- 113 -
- 114 -
- 115 -
Sesin 9
CRYSTAL REPORTS II
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Implementamdulos,clasesycomponentesquepermitanelaborarprogramasenn capas. Desarrollaprogramasconcontrolesdeenlaceadatos. DiseainformesparalaimpresindedatosdesdeunaaplicacinWindows. Genera proyectos de instalacin de aplicaciones desarrolladas. Instala y desstanla aplicaciones.
Procedimentales:
Muestraintersaltrabajarconcontrolesdentrodesuinforme.
- 116 -
MOSTRAR INFORMES
VISUALIZADOR DEL INFORME
Los reportes se visualizan CrystalReportViewer. en los formularios usando el control
Aplicacin 25:
- 117 -
- 118 -
VISUALIZAR EL INFORME
- 119 -
Sesin 10
PROYECTOS INSTALACIN DE
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Implementamdulos,clasesycomponentesquepermitanelaborarprogramasenn capas. Desarrollaprogramasconcontrolesdeenlaceadatos. DiseainformesparalaimpresindedatosdesdeunaaplicacinWindows. Genera proyectos de instalacin de aplicaciones desarrolladas. Instala y desstanla aplicaciones.
Procedimentales:
GeneraaplicacinyCreaelproyectodeinstalacin. Generalainstalacinydesinstalacindelproyecto
Actitudinales:
Muestrainters,responsabilidadysatisfaccinenelproyectodeinstalacin.
- 120 -
4) Se inicia el asistente:
- 122 -
- 123 -
7) Se deben agregar los elementos que no pertenecen al proyecto, como Copias de Seguridad.
- 124 -
- 125 -
12) Mientras se est generando el proyecto final se muestran las siguientes opciones.
INSTALAR APLICACIONES
El proceso de instalacin del proyecto finalizado es similar a la instalacin de cualquier programa. 1) Se ejecuta el archivo Setup.exe
2) Se inicia el instalador
- 126 -
- 127 -
5) Confirmar la instalacin.
6) Progreso de la instalacin.
- 128 -
7) Finalizar la instalacin.
- 129 -
Sesin 11
PROYECTO FINAL
Competencias:
ConoceconceptosavanzadosdeprogramacinconVisualBasic.NET. Desarrollaprogramasconcontrolesdeenlaceadatos.
- 130 -
- 131 -