Manual IV CICLO de VISUAL BASIC NET
Manual IV CICLO de VISUAL BASIC NET
. 1 En muchas ocasiones nos hemos preguntado cmo es posible las conexiones y cuantas veces puedo hacer una, la respuesta es sencilla, las codificaciones de Visual .Net con respecto a este tema con muy cortas, es decir solo es suficiente tener La cadena de conexin lista para que inmediatamente tengamos una conexin directa con la base de datos (SQL) y realizar las transacciones necesarias en un proyecto basado en Visual Net. COMO FUNCIONA LA PROGRAMACION CON BASES DE DATOS. 1. Conecta con una Base de Datos. 2. Solicitar Datos Especficos. 3. Devolver Datos. 4. Transmitir Actualizaciones 5. Cerrar Conexin OBSERVACION: En muchas aplicaciones, la conexin se cierra despus de que el usuario accede a los datos y vuelve a abrirse cuando el usuario reenva actualizaciones o realiza ms peticiones. VB.Net le permite muchas maneras de conectarse a una base de datos o fuente de datos. La tecnologa utilizada para interactuar con una base de datos o fuente de datos se llama ADO.NET. Las partes ADO representan los objetos de datos. Pero al igual que fue un sistema de clases base (lder de una jerarqua, si se quiere), por lo que es ADO. Formando la base de la clase ADO de los cuales son cinco los principales objetos otros: Objeto Definicin SqlConnection Un objeto SqlConnection representa una sesin nica de origen de datos. Sirve para interactuar con una base de datos. Esto requiere ciertos elementos como: Server, Uid (usuario ID), Password (Contrasea) y Database (Base de Datos), es decir: el servidor que puede ser localhost o el nombre de la PC a donde conectar, inclusive puede ser la IP de dicho servidor. A esto se le llama cadena de conexin, el cual contendr toda la informacin para establecer la conexin. Sqlcommand Un objeto SqlCommand le permite especificar qu tipo de interaccin que desea realizar con una base de datos. Por ejemplo, usted puede hacer seleccionar, insertar, modificar y eliminar los comandos de filas de datos en una tabla de base de datos Y SUS METODOS SON:
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 2 SqlDataAdapt Es el SqlDataAdapter que gestiona las conexiones er con la fuente de datos y nos da el comportamiento ExecuteNonQuery: Ejecuta una instruccin desconectado. SqlDataAdapter abre una conexin Transact-SQL en Conexin y devuelve el nmero slo cuando sea necesario y se cierra tan pronto de filas afectadas. como se ha llevado a cabo su tarea ExecuteReader: Enva un Texto comando SqlDataReade Unmediante una es Conexin que es bueno para la SqlDataReader un tipo, y crea un objeto r lectura de los datos de la manera ms eficiente SqlDataReader posible * No * se puede utilizarconsulta y devuelve la ExecuteScalar: Ejecuta la para escribir datos. Dataset Unprimera columna de la primera fila del conjunto de conjunto de datos es una en-memoria para almacenar los datos que puede contener muchas resultados devueltos por la consulta. Columnas o tablas. son ignorados.datos slo tienen los datos y no filas Conjuntos de interactan con un origen de datos CommandText a ExecuteXmlReader: Enva Connection y crea un objeto XmlReader, Similar a ExecuteReader.
Cmo Visual Basic Net Interacta con SQL Server? MODO DE CONEXIN
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 3 dirigida a la base de datos STAFF, Toda esta informacin deber estar entre comillas.
Este objeto DsEntorno est declarado en modo pblico sobre el formulario, si se desea un Dataset en modo Privado, hacer lo mismo pero dentro de un objeto cuya inicializacin exprese Private Sub.
Nota: Esta clase de definicin son privadas, solo en control donde fue
definido podr usarlo para sus propios propsitos.
Nota: Este ejemplo permite extraer datos de la tabla cliente y almacenarlos en las casillas de textos correspondientes. Los campos del DataReader son los mismos que los de la tabla Cliente.
Caso Prctico I
Se tiene el siguiente Modelo Relacional: Erwin SQL DATOS: SERVICIOS BASE DE
Este Modelo Relacional est constituido por 5 tablas (Cliente, Departamento, Provincia, Distrito, y Generador) aqu se debern registrar todos departamentos provincias y distritos existentes en Per, la Tabla Generador ser usada para generar los cdigos de cliente ya que estos deben ser automticos, como parte final la tabla cliente, aqu se harn los mantenimientos respectivos (Grabar, Consultar, Eliminar y Actualizar Datos de clientes) usando como aplicacin a: Visual Basic Net y su potente herramienta ADO NET. DISEAR EL SIGUIENTE FORMULARIO
Este Formulario est constituido por los siguientes objetos: Cajas de Textos: TxtIdCli, TxtNom, Txtdir Combos: CboDep, CboPro, CboDis, CboEstado. MaskedTextBox: TxtFNac, TxtFreg PROGRAMANDO EL FORMULARIO IMPORTAR Y HACER DECLARACIONES GENERALES
En este paso se declaran tres variables, Cn (Conexin) DsEntorno (El Dataset) y el DaCliente (DataAdaptador) estos tres objetos son necesarios para nuestro proyecto. CREAR LOS SIGUIENTES PROCEDIMIENTOS
CARGAR LA TABLA CLIENTE Y EL DATASET, BLOQUEAR / DESBLOQUEAR CONTROLES, CARGAR TODOS LOS DEPARTAMENTOS EN EL COMBO CboDep (CargarDepartamentos) EVENTO -> LOAD DEL FORMULARIO
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 10 PARA PODER GRABAR DATOS, DEBEN EXISTIR LAS SIGUIENTES FUNCIONES EXTRAS: GENERADOR DE CODIGOS
Caso Prctico II
Tomando en cuenta la base de datos SERVICIOS del proyecto anterior crear los siguientes filtros va formularios de visual Basic Net. LA TABLA CLIENTE DEBE CONTAR CON LOS SIGUIENTES DATOS
Como se observa, esta tabla contiene algunos datos de caracteres que redundan (Repiten) es decir: el filtro podra realizarse por: Cdigo de Cliente, Nombres de Clientes, Departamentos, Provincias, Distritos, Fecha de Nacimientos, Fechas de Registros y Estados de cliente. DISEE EL SIGUIENTE FORMULARIO
Control TxtCriterio1 Caja de Texto TxtCriterio2 Caja de Texto Filtrar1 Button Control
Nombre
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 16 Control TxtCriterio3 Caja de Texto TxtCriterio4 Caja de Texto Filtrar2 Button Control Nombre
Control TxtCriterio5 Caja de Texto TxtCriterio6 Caja de Texto Filtrar3 Button Control
Nombre
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 17 Control Nombre TxtF1 MaskedTextBox, Cambiar al formato Fecha DD/MM/YYY Cambiar las Propiedades del Objeto TxtF2 MaskedTextBox, Cambiar al formato Fecha DD/MM/YYY Cambiar las Propiedades del Objeto Filtrar4 Button Control
Control CboDep ComboBox CboPro ComboBox CboDis ComboBox Filtrar5 Button Control
Nombre
Para desarrollar esta clase de ejercicios, se requiere saber algo de la sentencia SELECT que se basa en consultas, por ejemplo en este caso, solo se necesita 5 consultas desarrolladas, ya que nuestro formulario posee 5 formas de filtros, las soluciones en SQL estn enumeradas se la siguiente forma: PRIMER FILTRO Este Filtro basado en Select SQL busca al cliente C0001
SEGUNDO FILTRO Este Filtro basado en Select SQL busca aquellos clientes cuyos nombres empiecen con la letra S
TERCER FILTRO Este Filtro basado en Select SQL busca aquellos clientes cuya direccin empiecen con la letra C
CUARTO FILTRO Este Filtro basado en Select SQL busca aquellos clientes cuyas fechas de nacimientos se encuentres entre 03/05/1980 y 03/05/1982
QUINTO FILTRO Este Filtro basado en Select SQL busca aquellos clientes que viven en un determinado departamento, provincia o distrito. Para ello debemos digitar los cdigos correspondientes al departamento, provincia y distritos, entre los apstrofes..
TODAS ESTAS CONSULTAS SON LAS SOLUCIONES PARA NUESTRO FORMULARIO, LO QUE SE NECESITA ES TRANSCRIBIR A VISUAL BASIC NET, PARA QUE ESTOS SEAN EJECUTADOS. AQU SE UTILIZARAN LOS OBJETOS: SqlConnection y SqlDataAdapter.
PROGRAMAR EL FORMULARIO IMPORTAR Y DECLARAR LAS VARIABLES DE ENTORNO INICIAL EN MODO PUBLICO, ASI TODOS LOS CONTROLES DEL FORMULARIO LO RECONOCERAN. EN LAS DECLARACIONES SE ENCUENTRAN DEFINIDOS LA CONEXIN (CN) Y EL DATASET DSENTORNO
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 22 PROGRAMAR EL BOTON FILTRAR2 EVENTO CLICK
APLICACIN EJECUTADA
Estos dos formularios anteriores has sido desarrollados con cdigo tradicional, es decir todo el cdigo fue centralizado en el formulario y solo trabaja ah, pero existe otra manera ms reducida de realizarlo y esta es mediante clases u objetos de herencias. Las clases son de dos tipos o al
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 25 menos son estas las que se usan con ms frecuencia: CLASE COMPARTIDA (Shared = Compartido) Y LA CLASE INSTANCIADA (despus de usar se auto descarga)
2: A esta base de datos se le ha agregado un procedimiento almacenado llamado: SPGrabarFoto, el cual contiene la siguiente estructura:
Este procedimiento almacenado permitir Grabar y Modificar las imgenes que se encuentran en la tabla CLIENTE. Esto es necesario para nuestro proyecto de visual Basic Net.
Crear un nuevo proyecto de Visual Basic Net con el nombre: SERVICIOS2, con las nuevas caractersticas, y luego agregar una clase con el nombre MiClase.
Para agregar una clase se debe hacer click sobre el men principal llamado Proyectos y luego escoger la opcin Agregar Clase. As como se observa en la imagen.
Es aqu donde se escribir el nombre de la Clase a agregar: MiClase luego hacer click en Agregar, aparecer una nueva ventana de cdigo con la siguiente estructura. Antes de empezar se debe realizar la siguiente importacin (Sobre l: Public Class MiClase) para que SQL Server pueda trabajar dentro de esta clase.
Aqu es donde se redactaran los cdigos de herencia, estos pueden ser Procedimientos (Public Sub), funciones (Public Function), Mtodos y Propiedad (Public Property) Get - Set, entre otros. Todo ese cdigo ser redactado entre el Public Cass MiClase y EndClass
EMPEZANDO LA CLASE
Dentro de dicha Clase, digitar los siguientes cdigos:
DEFINIR CONEXIN EN LA CLASE
ESTE PROCEDIMIENTO COMPARTIDO, PERMITE QUE LA CLASE EJECUTE COMANDOS SQL: COMO POR EJEMPLO: INSERT, UPDATE, DELETE, NECESARIOS PARA EL PROYECTO.
ESTA FUNCION COMPARTIDA, PERMITE QUE LA CLASE EJECUTE COMANDOS SQL DE TIPO CONSULTA, COMO POR EJEMPLO: EL SELECT, ES NECESARIOS PARA EL PROYECTO DE VBNET, GRACIAS A ESTA FUNCION SE PODRA RELIZAR CONSULTAS Y FILTROS.
NUESTRO PROYECTO REQUERE UN ACTUALIZADOR EN LA TABLA GENERADOR, GRACIAS A ESTE PROCEDIMIENTO COMPARTIDO, LOS CODIGOS DE CLIENTE PODRAN AUMENTAR UNO EN UNO O AUTOGENERARSE.
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER CODIGOS DE DEPARTAMENTOS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE, INCLUSIVE SERVIRA EN LAS ACTUALIZACIONES
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER CODIGOS DE PROVINCIAS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE, INCLUSIVE SERVIRA EN LAS ACTUALIZACIONES
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER CODIGOS DE DISTRITOS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE, INCLUSIVE SERVIRA EN LAS ACTUALIZACIONES
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE GENERAR Y DEVOLVER CODIGOS DE CLIENTE U OTRAS TABLAS, ESTO SERA NECESARIO PARA GRABAR LOS DATOS EN LA TABLA CLIENTE
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER NOMBRES DE DEPARTAMENTOS, ESTO SERA NECESARIO PARA LAS CONSULTAS DE CLIENTES.
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER NOMBRES DE PROVINCIAS, ESTO SERA NECESARIO PARA LAS CONSULTAS DE CLIENTES.
ESTA FUNCION COMPARTIDA PERMITE A LA CLASE BUSCAR Y DEVOLVER NOMBRES DE DISTRITOS, ESTO SERA NECESARIO PARA LAS CONSULTAS DE CLIENTES.
CONTROLES DE ESTE FORM. 3 Cajas de Texto: TxtIdC (Cdigo), TxtNom (Nombre), CLASE TERMINDA TxtDir (Direccin) 4 Combos: CboDep A CONTINUACION (Departamento), CboPro DISEE EL SIGUIENTE FORMULARIO CON TODAS SUS (Provincia), CboDis (Distrito), CARACTERISTICAS CboEstado (Estado). 2 MaskedTextBox: TxtFnac (Fecha Nac), TxtFreg (Fecha Reg). 1 PictureBox: PicFoto 1 OpenFileDialog: OpenFileDialog1 6 Buttons: BtnNuevo, [email protected]
PicFoto
PROGRAMANDO EL FORMULARIO: AQU SE DEBE AGREGAR LOS SIGUIENTES NOMBRES DE ESPACIOS LOS CUALES PERMITIRAN MANIPULAR IMGENES, INCLUYENDO AL ESPACIO SQL.
DEFINIR A NIVEL DE FORMULARIO CLIENTE (FrmCliente) LAS SIGUIENTES VARIABLES, FUNCIONES Y PROCEDIMIENTOS
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 33 PROGRAMAR EL COMBO PROVINCIA EVENTO TEXTCHANGED
Crystal Reports
Crystal Reports es una aplicacin de inteligencia empresarial utilizada para disear y generar informes desde una amplia gama de fuentes de datos (bases de datos). Varias aplicaciones, como Microsoft Visual Studio Net, incluyen una versin de Crystal Reports como una herramienta de propsito general del informes/reportes. Crystal Reports se convirti en el escritor de informes estndar cuando Microsoft lo liber con Visual Basic. Campos
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 36 Muchos de los datos que se pueden insertar en el informe son campos de base de datos seleccionada. stos mostrarn los datos tal como estn almacenados en la base de datos. Campos de frmula Si se quieren desplegar datos que son valores calculados, tendr que crear un campo de frmula y ponerlo en el informe, similarmente a lo anterior (arrastrar hasta el lugar deseado, o insertarlo). Se cuenta con un amplio espectro de frmulas disponibles para la creacin de stas. Las cuales pueden ser programadas o creadas segn el lenguaje crystal, integrado al programa, o bien, utilizando la sintaxis de Basic (Visual Basic Net). Campos de parmetro Sirven para solicitar al usuario de un informe que especifique informacin. De esta manera se crear un campo de parmetro. Los parmetros son como preguntas que el usuario necesita responder antes de que se genere el informe. La informacin que escribe el usuario, o la forma en que responde, determinan lo que aparece en el informe. Los parmetro pueden ser creados con datos fijos (estticos), dinmicos si los datos experimentan cambios, o en forma de cascada, donde le usuario del informe selecciona de una lista desplegable aquello que desea ver. Vista previa y exportacin de reportes/informes El informe puede ser visto de antemano en la pantalla, imprimir en papel, o se exportado a uno de los diversos formatos de archivo soportados: Tipos de Reportes Los reportes son variados, los principales son: Reportes Normales y filtrados, es decir sin algn estilo de presentacin, Reportes Agrupados, es decir los que se muestran con algunos niveles de separacin, y las Tab Cruzadas, es decir reportes de alta complejidad.
Caso Prctico IV
Para desarrollar una aplicacin orientada a Crystal Reports, se debe contar con una base de datos, en esta ocasin usaremos a la base de datos SERVICIOS2 del proyecto anterior, el cual deber contener datos, para su posterior pre visualizacin en un Informe o Impresora.
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 37 Para nuestro ejemplo usaremos a la tabla CLIENTE, el cual debe contar con los siguientes Datos:
Estos datos sern ingresados desde el Formulario Cliente, como observara contamos con algunos registros BLOQUEADOS y la fotografa del Cliente no es visible desde el manejador, esto se debe a que ese cdigo de la foto est siempre encriptado en su respectivo campo o columna, pero podr ser vista en nuestro reporte. COMO CREAR UN CRYSTAL REPORTS EN VISUAL BASIC NET CREAR un nuevo proyecto con el nombre SERVICIOS3, desde visual Basic Net y mantener el formulario que se presenta vacio momentneamente. LUEGO agregar un nuevo componente, este ser el Crystal Reports, esto se hace de la siguiente manera: ELIJA DEL MENU PRINCIPAL LA OPCION PROYECTO Y LUEGO LA SUB OPCION AGREGAR NUEVO ELEMENTO. As como se muestra en la imagen.
Como resultado obtendremos las siguiente ventana, aqu se deber seleccionar la opcin Reporting (Izquierda) y luego la Opcin Crystal Report (Derecha) e ingresamos el nombre del Crystal RptCliente1.rpt y hacemos click en el botn Agregar.
1 4
Galerias Reports 1
de
Crystal
2 3
Este Paso est orientado a escoger el tipo de Crystal Reports a Crear: Using The Reports Wizard (Usar el asistente Para Reportes) ((Recomendado)). As a Blank Report (Como un Reporte en Blanco. From an Existing Report (Desde un Reporte Existente) ((Choose an Expert))
El Modo Estndar es el ms recomendable ya que con l se realizan reportes sencillos y de presentacin adecuada, sin dejar de lado a los otros dos modos. SELECCIONE EL MODO STANDARD Y HACER CLICK EN OK. Despus obtendremos la siguiente ventana: Ya que nuestro reporte depende de datos de tablas, debemos establecer conexin con nuestra base de datos SERVICIOS2, de la siguiente manera:
Aqu debemos hacer click en el signo + de la expansin del componente OLE DB (ADO), el cual mostrara otra ventana, para seleccionar el proveedor de
Seleccionamos el proveedor Microsoft OLE DB Provider for SQL Server tal como se muestra en la imagen. Y hacemos click en el botn Next (Siguiente)
El proveedor es el intermediario entre la base de datos y nuestra aplicacin de Visual Basic Net, sin este componente nativo sera imposible la conexin, aunque existen otras maneras de establecer la conexin que implican detalles adicionales al manual que estamos elaborando. DESPUES DE SELECCIONAR EL PROVEEDOR HAGA CLICK EN NEXT (Siguiente). Se obtendr la siguiente ventana, aqu se deber cumplir con algunos requisitos para establecer la conexin, por ejemplo: el nombre del servidor, el usuario, la contrasea y la base de datos a acceder, estos datos son necesarios para nuestra conexin. Estos debern ser rellenados manualmente. Cuando se termine hacer click en el botn NEXT (Siguiente).
Despus de finalizar se obtendr una ventana nueva con la configuracin de la conexin establecida, se observara la conexin y la base de datos, con sus tablas incluidas.
Como se dijo en el enunciado de la pgina anterior aqu se observa la base de datos con sus tablas incluidas, es aqu donde debemos seleccionar las tablas CLIENTE, DEPARTAMENTO, PROVINCIA y DISTRITO, y agregarlas, estas se observaran en la lista de la derecha, estas tablas formaran parte del reporte. Luego haga click en NEXT > (Siguiente)
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 42 En esta ventana se observan las tablas que fueron agregadas, estn con sus respectivas relaciones, si no fuera as, Ud. Podr hacerlos manualmente, con solo desplazar el mouse y establecer dichas relaciones, aunque en este ejemplo no es el caso, pero podra presentarse ese problema y tener ciertos errores en el reporte, por lo tanto es importante las relaciones en las tablas click en NEXT >
Este paso es un poco controversial es decir, aqu debemos seleccionar los campos de las tablas que formaran parte de nuestro reporte, pero pensemos dos cosas: PRIMERO en este paso puedo seleccionar manualmente los campos que se usaran en el reporte, eso implica seleccionar uno por uno e ir agregndolos. Gracias a este paso podemos realizar ciertas agrupaciones y/o configuraciones con los datos del reporte de tal forma existira cierta complejidad en nuestro informe. SEGUNDO por lo general todos los campos de las tablas pasan al reporte, obviando algunos criterios del primer paso, si es este el caso, directamente hacemos click en FINISH (Finalizar) de esa manera todos los campos de las tablas podrn formar parte de nuestro reporte. Cosa que sera lo (((Recomendado))) para no volver a configurar la conexin, por si algn campo nos falto agregar.
Aqu est el cuerpo de Reporte, como se observa el reporte tiene 5 secciones. Seccion1 (Report Header): Es la cabecera del informe, es el todo, ya que un informe puede tener muchas pginas. Esta Seccin est Bloqueada. Seccion2 (Page Header): Es la cabecera de la pgina, esto solo saldr por cada hoja del informe. Seccion3 (Detalles): Esta seccin le corresponde a los datos de un detalle. Puede ser los datos de cualquier tabla. Seccion4 (Report Footer): Es el pie de la pgina, esto solo saldr por cada hoja del informe. Esta Seccin est Bloqueada. Seccion5 (Report Header):
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 44 Es la cabecera del informe, ya que un informe puede tener muchas pginas.
MODO SELECCIN DE OBJETOS CAJA DE TEXTOS TRAZADOR DE LINEAS OBJETO FIGURA O CAJA
EN NUESTRO INFORME SOLO USAREMOS DOS SECCIONES: (Seccion2 Page Header) (Seccin3 Detalles) es decir, Cabecera de Pagina y el Detalle de la pagina.
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 45 BUENO EMPEZAREMOS A DISEAR NUESTRO INFORME CON ALGUNAS CAJAS O ETIQUETAS:
Para colocar estos textos en nuestro informe es solo cuestin de hacer doble click sobre la herramienta de Caja de Textos (Text Object) y luego escribimos sobre dicho objeto el texto que queramos. El elemento fecha es un objeto que fue agregado automticamente en el momento que se cre el informe. Y la lnea se har con la herramienta Line Object, Esto debe quedar tal como se presenta en la imagen. Los formatos de textos dependern de las dems herramientas o propiedades del objeto para su mejor presentacin. Esta presentacin depender del usuario, las herramientas a usar para su mejor presentacin.
SECCION3 DETALLES
En esta seccin empezaremos a colocar los campos de la tabla CLIENTE, tal como se presenta en el informe, recuerda que en cualquier seccin se podr colocar cualquier campo de una tabla, pero eso depender del criterio del programador.
Los campos sern arrastrados desde la ventana Field Explorer (Explorador de Campos) hacia el diseo del informe, en la seccin3
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 46 aparecen los campos de las tablas, pero encima (Seccion2 Page Header) aparecen sus respectivas etiquetas. Estas estarn siempre en subrayado.
Si observamos la vista previa del informe, esta se vera de la siguiente manera: (Leer ms abajo)
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 47 En la parte inferior de la ventana del informe existe dos enlaces: Main Report y Main Report Viewer estos enlaces permitirn permutar entre el diseo del informe y su pre visualizacin. El informe deber cambiar de forma, debido a que existe la foto del cliente y esta debe ser agregada para ser mostrada, entonces mover etiquetas y campos de tal manera que quede de la siguiente forma, tal como se muestra la imagen. Las etiquetas son aquellos que tienen subrayado.
Como se observa la estructura del informe a cambiado por el simple hecho de cambiar posiciones de los objetos del informe, tal como se hizo. (Etiquetas a la izquierda y campos a la derecha) A nuestro informe le falta algunos elementos, como por ejemplo: La Edad del Cliente, Fecha de Nacimiento en verbo, Prximo Cumpleaos del Cliente, Estado del Cliente fijado en verbo: CLIENTE ACTIVO o CLIENTE BLOQUEADO. Esta clase de elementos se denominan Campos Calculados (Formula Fields), es decir son elementos creados por el usuario, para determinar o calcular ciertas operaciones dentro de la estructura del informe.
COMO CREAR UN CAMPO CALCULADO (Formula Fields). Encontrndonos en el entorno del Reporte, ir a la ventana Formula Fields, hacer click derecho sobre dicha opcin y seleccionar: NEW (Nuevo), as como se presenta en la imagen. ingresamos el nombre Aqu del campo calculado y hacemos click en el botn Use Editor
El cual se mostrara una nueva ventana, aqu se deber redactar el siguiente cdigo: este cdigo permitir saber cuntos aos tiene el cliente, usando como campo elemental a la fecha de nacimiento. Aos
Esta ventana contiene los campos del informe (Izquierda) que sern usados en las operaciones, si se desea aplicar algn comando de gestin, se debe usar las Funciones (Centro) y algunas operaciones extras (Derecha), al final el cdigo se redactara en el nivel inferior. Para verificar la sintaxis del cdigo se deber pulsa el botn X +2 ubicado en la parte superior izquierda de la imagen. Estos mensajes podran ser de xitos o fracasos. Cuando el cdigo este terminado, hacer click en el botn Save And Close, ubicado tambin en la parte superior izquierda de la imagen
Ahora crear los siguientes campos calculados con los siguientes nombres: EstadoPersonalizado, FechaNacVerbo y ProximaFecha, estos contendr las siguientes programaciones: EstadoPersonalizado
FechaNacVerbo
ProximaFecha
Por lo tanto tendremos 4 campos calculados definidas por el usuario, quedando as como se presenta la imagen:
Estos nuevos campos debern ser colocados en nuestro informe, con sus respectivas etiquetas, para ello nuestro reporte tendr un nuevo aspecto:
Ahora pre visualizaremos el informe, hacer click en el enlace Main Report Preview. Mostrar a un 100% de ampliacin. Para el documento, si se desea ver a los dems registros reduzca el porcentaje de ampliacin, as podr ver a todos los registros.
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 52 Los campos extras que se agregaron, visualizan su contenido a favor del informe ya que cada uno de ellos est programado para mostrar el resultado de dicho cdigo, todas las filas de datos del informe estarn afectas a dichos campos calculados.
Ahora crear un formulario (FrmReporte1) para su presentacin y uso. Agregar al formulario un control llamado: CrystalReportViewer, en el formulario ser nombrado como CrystalReportViewer1.
El control CrystalReportViewer es el objeto visor de reportes, con el podemos observar el reporte va formulario de nuestra aplicacin. Este objeto deber tener las siguientes propiedades: Propiedad Valor
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 53 Nombre DisplayGroupTree BorderStyle Reporte1 False Fixed3D
FIN-DE-LA-PRIMERA-PARTE-DE-INFORMES PARAMETROS. Es un componente extra en los informes, la ayuda bsica que tienen estos parmetros es que a nuestro informe llegara un valor desde afuera, es decir enviar un valor desde nuestro formulario (el formulario es un objeto independiente y externo al informe), y as pode realizar filtros dependiendo de nuestra conveniencia, para crear un parmetro en nuestro informe se deber hacer lo siguiente: CREAR UN NUEVO INFORME CON EL NOMBRE: RptCliente2 CON LA MISMA ESTRUCTURA DEL INFORME RptCliente1 Exactamente con la misma estructura (Obligatorio). ABRIR EL INFORME RptCliente2, en el modo Main Report (Modo Diseo) observar la ventanita Field Explorer, y hacer click derecho sobre la opcin: Parameter Fields y seleccionar la opcin New e ingrese el nombre del parmetro con su respectivo tipo de dato, As como se muestra en la imagen:
Luego procederemos a ingresar el nombre del parmetro en este caso ser: ESTADOX cuya descripcin ser: Solo para Filtrar Por Estados de Clientes, por ultimo seleccionar el tipo de dato del parmetro, este debe tener parentesco con el campos de la tabla a la cual se va a comparar, ya que en nuestro ejemplo la tabla del informe es CLIENTE, y el campo a usar es ESTADO Varchar (5), el tipo Varchar es equivalente a String. Luego hacemos click en el botn OK. Despus se observara que el parmetro ha sigo agregado como se observa en la segunda imagen.
Ahora debemos crear una Seleccin de Formula de registro (Selection Formula Record) se debe hacer click derecho sobre cualquier area de nuestro informe y elegir las opciones: Report Selection Formula Record as como se muestra en la imagen.
Es aqu donde seleccionamos el campo Estado de la tabla Cliente, y lo comparamos con el parmetro ESTADOX, esta comparacin se observara abajo. Luego verificamos sintaxis con el botn X+2 si todo es correcto entonces Cerramos y Grabamos con el botn Save and close.
Luego cerramos el informe y agregamos un formulario nuevo (FrmReporte2). Aqu debe tener ciertos elementos para que se cumpla el objetivo: un CrystalReportViewer y dos Botones, primero agregue y seleccione el control CrystalReportViwer (pngale este nombre: Reporte2), en la propiedad Dock de este control, asignarle None de esa manera el control CrystalReportViewer ser movible sobre el formulario, luego use la propiedad DisplayGroupTree y asgnele False, e inmediatamente coloque 2 botones (Buttons) sobre el formulario: uno etiquetado: CLIENTES ACTIVOS y el otro CLIENTES BLOQUEADOS. Los nombres de los botones son: BtnActivo y BtnBloqueado. El Formulario Deber Quedar de la Siguiente Forma:
REPROGRAMANDO EL FORMULARIO Declarar las siguientes variables en modo pblico a nivel de formulario.
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 57 Programando el BtnActivo Click (CLIENTES ACTIVOS)
EJECUTE EL FORMULARIO FrmReporte2 Y PRESIONE LOS BOTONES. CLIENTES ACTIVOS BLOQUEADOS CLIENTES
FIN-DE-LASEGUNDA-PARTE-DE-INFORMES En este tema de Informes, estos elementos llamados Parmetros no necesariamente deben ser creados en el mismo informe, por el contrario, estos podrn ser programados desde la aplicacin, es decir desde nuestro formulario, para ello requerimos a esta nueva base de datos: SERVICIOS4. Que tiene la siguiente estructura de tablas relacionadas.
La tabla EMPLEADO tiene algunos columnas elementales para formar campos calculados por ejemplo: el campo SEXO, con el se podr distinguir a varones de damas, el campo SUELDO, con el cual podemos obtener clculos como el Essalud, Seguros Pensionarios como AFP u ONP, aportaciones y descuentos entre otros. INGRESE DATOS A LA TABLA EMPLEADO DESDE ESTE FORMULARIO, EL CUAL BIENE INCORPORADO EN ESTE MANUAL. Despus de almacenar algunos registros a la tabla EMPLEADO, procederemos a crear un nuevo proyecto en Visual Basic Net, nombre como SERVICIOS4, dejando el formulario que se presenta vacio, y luego agregar un CrystalReport o informe con el nombre: RptCliente3, el cual contendr una determinada estructura, es decir Campos Calculados con los siguientes Nombres: Edad: Edad del Empleado. EstadoE: Estado del Empleado. FechaNa: Fecha de Nacimiento en Verbo. Seguro: Pago del Seguro AHORA A CREAR NUESTRO INFORME
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 59 Las tablas que se usan en el informe son: EMPLEADO, DEPARTAMENTO, PROVINCIA Y DISTRITO, debern estar relacionas. Y todos los campos de las tablas agregados. EL DISEO DEL INFORME ES EL SIGUIENTE:
Nuestro informe debe tener este aspecto, procurar desplazar los campos necesarios a nuestro informe, as como se explico en el ejemplo anterior, por otra parte el informe debe contar con algunos campos calculados (FechaNa, Edad, Seguro, ONP, EstadoE, BonEx, y TOTAL) los cuales debern estar unos en DATOS PERSONALES y otros en la parte inferior de la foto. Un campo calculado es fcilmente reconocido, observe en el informe aquellas columnas que empiezan con arroba @, lo vio? Y los campos normales de tablas no las llevan. LA PROGRAMACION DE LAS Formulas Fields (Campos Calculados) SON LAS SIGUIENTES: Bonificacin Extra (BonEx) el cual ser un medio sueldo, solo si ganan a partir de 2000.
TOTAL a recibir.
En el formulario que se encuentra vacio y si no fuera el caso agregue uno nuevo (FrmReport4), proceda a disearlo con la siguiente estructura:
CrystalReportVi
Estructura del formulario: GRAFICAS DETALLES A CONSIDERAR DE OBJETOS EN LAS GRAFICAS Caja de Texto TxtIdE y un Botn Btn1 (Ejecutar) La primera casilla se llamara: TxtS1 y un Botn Ejecutar Nombrado: BTn5 La Segunda casilla se llamara: TxtS2 y un botn ejecutar Nombrado: Btn6 La Casilla se llamara: TxtNombre y un Botn Ejecutar nombrado Btn2 Primer Combo Llamado: CboSexo y un Botn Ejecutar Nombrado Btn7 Segundo Combo Llamado: CboEstado y un Botn Ejecutar Nombrado Btn8 Primer Control Fecha MaskedTextBox Nombrado: TxtF y un Primer Botn Ejecutar Nombrado: Btn3 Segundo Botn Ejecutar Nombrado: Btn4 Segundo Control Fecha MaskedTextBox Nombrado: TxtF1 Tercer Control Fecha MaskedTextBox Nombrado: TxtF2 AHORA A PROGRAMAR EL FORMULARIO Agregar el Espacio System.Data.SqlClient y en las declaraciones del formulario FrmReport4 defina la variable conexin Cn. Luego proceda a crear un sub programa llamado EjecutarInforme con el Parmetro CADENA de tipo String. Este parmetro contendr el filtro programado para nuestro informe.
En estas dos grficas se observa la seleccin de campos, en una (Izquierda) grfica solo los campos que nos interesan y en la otra (Derecha) grfica todos los campos de la tabla Empleado, Con cualquiera de las dos se puede trabajar. Hacer click en el botn Next > (Siguiente) En esta nueva ventana (A) debemos seleccionar el campo de agrupamiento, el cual ser Sexo. Y en la ventana (B) Debemos aplicar el criterio del agrupamiento que ser la suma de los sueldos. Luego hace Click en Next> (Siguiente). De ambas ventanas para avanzar al siguiente paso.
Aqu se debe aplicar e l criterio del Grupo el cual ser la sumatoria de los sueldos.
En esta ventana (A) debemos indicar el tipo de ordenamiento del grupo, bueno recomendable que se el campo grupo que es el campo SEXO, en la parte inferior de la grafica existen opciones de ordenamiento, el cual indicaremos None (Ninguno) y click en NEXT > (Siguiente) el pasara a la otra ventana (B), aqu indicaremos el tipo de Grafico Estadstico que tendr nuestro informe y adems colocaremos un titulo (SUELDOS SEGUN GENERO) al informe, y si observa bien los campos seleccionados indicados. Uno ser, sobre el cambio de: y el otro ser para el sumario. Hacer click en FINISH > (Finalizar).
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 67 Cuando finalizamos el diseo (Main Report) del reporte se visualiza (Izquierda) de la siguiente manera, y en la otra ventanita (Derecha) se observa la pre visualizacin del informe (Main Report Preview) segn los datos de la tabla Empleado.
Aqu nuestro informe est casi terminado, se requiere realizar algunos cambios, por ejemplo los campos que se muestran en la parte inferior del informe (Izquierda) se observa que esos campos en cierto modo no son necesarios para nuestro informe, estos datos se pre visualizan (Derecha) mostrando los datos de la tabla Empleado, por el momento innecesarios. Por lo tanto procederemos a removerlos, en caso contrario decidir si estos campos son o no necesario para el informe, en este ejercicio los removeremos.
Luego juntar las barras de divisiones del informe esto se har en el modo diseo (Main Report), y pre visualizamos el informe (Main Report Preview) para ver cmo queda Preview Main Report Main Report
Ahora nuestro informe estadstico tendr una nueva forma: Main Report Main Report Preview
Supongamos que queremos separar las partes del Grafico Pie, hacemos click derecho sobre el Grafico, estando en el modo Main Report, y Seleccionamos la opcin Chart Options - > luego la sub opcin General. As como se muestra en la Grafica (A). En la Grafica (B) estando en la pestaa General, empezamos a mover los pequeos despliegues de: Tilt (Giro Vertical de Profundidad), Depth (Grosor de la profundidad), Rotation (Rotacin de objeto), Explode (Explosin del objeto)
Con respecto a las otras pestaas (Layout) facilita ciertas caractersticas a la grfica, y la Pestaa (DataLabels) el cual puede cambiar algunas cosas en la grafica como: etiquetas, valores porcentuales, elementos dentro o fuera de la imagen etc.
La pestaa (Numbers) determina el estilo de numeracin en la grafica. La pestaa (Lock) es solo referida a las legendas, es decir mejora la presentacin de la misma
La Pestaa (Display Status) permitir mostrar la legenda del informe, mostrar etiqueta sobre la legenda y el nombre de la grafica.
Nuestro Informe Grafico quedara con la siguiente apariencia, despus de realizar las modificaciones: Main Report Preview Main Report
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 71 Agregar un nuevo formulario al proyecto SERVICIOS4, y este tendr el siguiente Diseo:
CrystalReportViewer 1
Este formulario solo contiene un solo objeto y este es un control: CrystalReportViewer1, cuya propiedad DisplayGroupTree es False. PROGRAMAR EL FORMULARIO.
BIBLIOTECA DE CLASES
La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos de datos bsicos, tales como System.Object (raz de la jerarqua de objetos .NET), tipos numricos y de fechas, tipo string, matrices y colecciones. La BCL contiene tambin clases que administrarn las caractersticas centrales de .NET: entrada/salida de archivos , subprocesamiento, serializacin y seguridad. La forma en la que los tipos se implementan en la BCL siguen las especificaciones llamadas Common Type System (CTS). Por ejemplo, estas especificaciones dicta la forma en
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 73 la que un tipo .NET expone campos, propiedades, mtodos y sucesos, tambin cmo un tipo puede heredar otro tipo... Tranquilo... a lo largo del tema veremos estas clases y por fuerza trabajaremos con ellas porque todo en .NET son clases: desde un grfico, un botn o nuestro programa.
Para demostrar cmo trabaja una biblioteca de clases DLL, se requiere una base de datos (SERVICIOS5) con la siguiente estructura de tablas:
Este modelo relacional permitir el mantenimiento de CLIENTE EMPLEADO de una empresa, estos datos se almacenaran en la tabla 1 PERSONAS, esto ser diferenciado por el (Campo Tipo), y a su vez eso controlara nuestra aplicacin basada en DLL.
Aqu debemos hacer algunos cambios: el nombre de la clase es: Class1, esta debe ser cambiada por: Miclase. Y en la ventana del explorador de soluciones hacer lo mismo con el nombre del objeto.
Cambiar en Propiedad: Nombre de Archivo: MiClase o puede hacerlo directamente. Grabe el Proyecto DLL en la carpeta MiDll (En el Escritorio) del paso
anterior haciendo clic en el botn Guardar Todo: Empecemos a Programar dicha biblioteca, agregando los siguientes espacios y codigos: ESTA PROGRAMACION PERTENECE A LA BIBLIOTECA DE CLASE
Grabe el proyecto de biblioteca de clases y luego debemos Generar la DLL, esto se hace de la siguiente manera.
Despus de Generar la DLL, esta debe ser verificada su existencia, ya que al generarla se crea un archivo que llevara el mismo nombre del proyecto con la extensin Dll (MiDll.dll), para ello debemos abrir la carpeta del proyecto MiDll, luego la carpeta Bin finalizando la carpeta Debug.
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 77 Abrir la Carpeta MiDll por segunda vez. Abrir la Carpeta Bin. Abrir la Carpeta Debug. Es donde es visible el archivo componente Midll.dll Nota: TENER PRESENTE SIEMPRE ESTO! Este archivo contiene todo el cdigo programado de la biblioteca de clases (Procedimientos y Funciones Compartidas) este deber se copiado y pegado en la carpeta DEBUG de cualquier proyecto de Visual Basic Net, y desde esa ubicacin ser invocado como referencia para su uso. Si en caso la DLL tuviera algn error de lgica, volver abrir el proyecto MiDll creado en VBNET y hacer los cambios necesarios, grabar y volver a generar la DLL, y nuevamente volver a copiar y pegar el archivo en la carpeta DEBUG del proyecto de biblioteca al proyecto que necesite a nuestra DLL.
2. 3. 4. 5.
DLL TERMINADA
CARACTERISTICAS DE LA DLL CREADA. Esta DLL est compuesta por: Una funcin compartida llamada CadenaConexion el posee un parmetro de entrada llamada CadenaC (Cadena de Conexin) es decir esta funcin lo que har es proveer a las dems funciones y procedimientos de nuestra DLL las conexiones respectivas con cualquier base de datos, debidamente configurada. Un Sub Programa Llamado Ejecutar, tiene 2 parmetros de entradas (CadenaSQL que significa la instruccin SQL, y CadenaC este contendr la cadena de conexin) el cual permitir la ejecucion de ciertos comandos SQL como por ejemplo: INSERT, DELETE, UPDATE, los cuales son necesarios para nuestro propsito. En base a nuestro proyecto que use a esta DLL. Una funcin ConsultarFiltrar, tiene 2 parmetros de entrada (Cadena este servir para contener la consulta o filtro a ejecutar y CadenaC este contendr la cadena de conexin) esta funcin permite generar consultas de un solo registro de datos o filtrar cierta cantidad de datos segn el criterio de bsqueda o filtro. Sub Programa GrabarFoto permitir grabar en la tabla una imagen, para ello se requiere el uso de 3 parmetros de entradas: (Id es el cdigo de la persona, IMAGEN el cual contendr la foto o imagen a la que se guardara, y CadenaC este contendr la cadena de conexin).
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 78 Funcin GENERADOR_CODIGO el cual permitir generar cdigo para cualquier tabla, esta funcin trabaja directamente sobre la tabla Generador, y posee 2 parmetros TABLA que representa el nombre de la tabla a generar cdigo, estos pueden ser: CLIENTE, EMPLEADO, PRODUCTO etc. y CadenaC este contendr la cadena de conexin. Sub Programa ActualizarGenerador, esta funcin es necesaria para el auto generacin de cdigos para cada tabla. Usa 2 parmetros: TABLA que representa el nombre de la tabla a generar cdigo, y CadenaC este contendr la cadena de conexin. La tabla Generador debe ser actualizada. Estructura Jerrquica de la DLL creada:
Proyecto: Clase:
Esta DLL ser invocada mediante una Instancia, desde un proyecto de aplicacin de Windows.
Public Sub
Ejecutar (ByVal
CadenaSQL As String, ByVal CadenaC As String)
Public Function
ConsultarFiltrar
(ByVal Cadena As String, ByVal CadenaC As String) As DataTable
Public Sub
GrabarFoto
(ByVal Id As String, ByVal IMAGEN As Byte(), ByVal CadenaC As String)
CONTROLES USADOS:
Public Function
GENERADOR_CODIGO
String
Public sub
ActualizarGenerador
5 Combos: CboTipo (Tipo) CboDep (Departamento), COMO USAR LA DLL, DESDE UN PROYECTO VBNET CboPro (Provincia), CboDis (Distrito), CboEstado Crear un Proyecto nuevo en Visual (Estado).Net, con el nombre: Basic SERVICIOS5, cuya ubicacin ser el escritorio de Windows: TxtFnacel 2 MaskedTextBox: disear siguiente formulario (Ejecute por lo menos una vez la aplicacin para (Fecha Nac), TxtFreg (Fecha Windows y Grabe Totalmente el proyecto). Reg). 1 PictureBox: PicFoto 1 OpenFileDialog: [email protected] OpenFileDialog1
PicFot
COMO EMPEZAR A USAR NUESTRA DLL Abrir la Carpeta DEBUG de los proyectos MiDll (Biblioteca de Clases) y SERVICIOS5 (El Otro proyecto de VBNET) en forma paralela, copiar y pegar el archivo DLL llamado: MiDll.dll hacia el otro proyecto quien lo va a usar. As como se muestra en la imagen Proyecto: Biblioteca de Clases MiDll SERVICIOS5 VBNET Proyecto:
Cuando este archivo sea pegado en la carpeta DEBUG de MiDll hacia la carpeta DEBUG de SERVICIOS5, entonces se podr iniciar la programacin del formulario.
ACCESO A DATOS VISUAL BASIC NET SQL SERVER Pg. 80 PROGRAMANDO EL FORMULARIO Agregar como referencia a nuestra DLL. Para ello se debe hacer click en la opcin PROYECTO y luego en la sub opcin AGREGAR REFERENCIA, as como se observa en la imagen:
Ahora debemos dirigirnos a la pestaa EXAMINAR y buscar el componente, dentro de la carpeta DEBUG de SERVICIOS5, es ah donde encontraremos el archivo que anterior mente fue pegado. Luego de seleccionarlo deber abrirlo. Haga click en ACEPTAR.
Cuando este componente ha sigo agregado como referencia a nuestro proyecto SERVICIOS5, este deber ser verificado, para ello haga click en el siguiente icono (Mostrar todos los archivos) de la ventana de soluciones:
INSTANCIA.Ejecutar(SQL, StrCon)
'GRABAR FOTO If Sw = 1 Then GrabarFoto(TxtIdP.Text) Sw = 0 If CboTipo.Text = "CLIENTE" Then INSTANCIA.ActualizarGenerador("CLIENTE", StrCon) If CboTipo.Text = "EMPLEADO" Then INSTANCIA.ActualizarGenerador("EMPLEADO", StrCon) BtnNuevo.Text = "Nuevo" BtnGrabar.Enabled = False Bloquear(False) MsgBox("OK: PERSONA REGISTRADA SATISFACTORIAMENTE")
INSTANCIA.Ejecutar(SQL, StrCon)
If Sw = 1 Then GrabarFoto(TxtIdP.Text) BtnNuevo.Text = "Nuevo" : BtnNuevo.Enabled = True : BtnGrabar.Enabled = False BtnConsultar.Enabled = True : BtnActualizar.Enabled = False : Bloquear(False) BtnActualizar.Text = "Editar" MsgBox("OK: PERSONA ACTUALIZADA SATISFACTORIAMENTE") Catch Ex As Exception MsgBox("Error al Actualizar " + Ex.ToString()) End Try Else MsgBox("Error: Para Actualizar Todos los Objetos Deben Ser Rellenados") End If End If
((CONSULTAR))
((ACTUALIZAR))