107
ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 1 En muchas ocasiones nos hemos preguntado cómo 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 conexión lista para que inmediatamente tengamos una conexión 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 Específicos. 3. Devolver Datos. 4. Transmitir Actualizaciones 5. Cerrar Conexión OBSERVACION : En muchas aplicaciones, la conexión se cierra después de que el usuario accede a los datos y vuelve a abrirse cuando el usuario reenvía actualizaciones o realiza más peticiones. VB.Net le permite muchas maneras de conectarse a una base de datos o fuente de datos. La tecnología 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 (líder de una jerarquía, 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 Definición SqlConnection Un objeto SqlConnection representa una sesión única de origen de datos. Sirve para interactuar con una base de datos. Esto requiere ciertos elementos como: Server, Uid (usuario ID), Password (Contraseña) y [email protected]

Manual IV CICLO de VISUAL BASIC NET.doc

Embed Size (px)

Citation preview

Page 1: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 1

En muchas ocasiones nos hemos preguntado cómo 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 tenerLa cadena de conexión lista para que inmediatamente tengamos una conexión 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 Específicos.3. Devolver Datos.4. Transmitir Actualizaciones5. Cerrar Conexión

OBSERVACION: En muchas aplicaciones, la conexión se cierra después de que el usuario accede a los datos y vuelve a abrirse cuando el usuario reenvía actualizaciones o realiza más peticiones.

VB.Net le permite muchas maneras de conectarse a una base de datos o fuente de datos. La tecnología 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 (líder de una jerarquía, 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 DefiniciónSqlConnection Un objeto SqlConnection representa una sesión única de origen de

datos. Sirve para interactuar con una base de datos. Esto requiere ciertos elementos como: Server, Uid (usuario ID), Password (Contraseña) 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 conexión, el cual contendrá toda la información para establecer la conexión.

Sqlcommand Un objeto SqlCommand le permite especificar qué tipo de interacción 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:ExecuteNonQuery: Ejecuta una instrucción Transact-SQL en Conexión y devuelve el número de filas afectadas.ExecuteReader: Envía un Texto comando mediante una Conexión y crea un objeto SqlDataReaderExecuteScalar: Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devueltos por la consulta. Columnas o filas son ignorados.ExecuteXmlReader: Envía CommandText a Connection y crea un objeto XmlReader, Similar a ExecuteReader.

SqlDataAdapter Es el SqlDataAdapter que gestiona las conexiones con la fuente de datos y nos da el comportamiento desconectado. SqlDataAdapter abre una conexión sólo cuando sea necesario y se cierra tan pronto como se ha

[email protected]

Page 2: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 2

llevado a cabo su tareaSqlDataReader Un SqlDataReader es un tipo, que es bueno para la lectura de los datos

de la manera más eficiente posible * No * se puede utilizar para escribir datos.

Dataset Un conjunto de datos es una en-memoria para almacenar los datos que puede contener muchas tablas. Conjuntos de datos sólo tienen los datos y no interactúan con un origen de datos

Cómo Visual Basic Net Interactúa con SQL Server?MODO DE CONEXIÓN

COMO DEFINIR UNA CONEXIÓN AUTENTIFICADA CON SQL SERVERDim CN As New SqlConnection(“Server=localhost;Uid=Sa;Password=123;Database=STAFF”)

La variable conexión es CN y es pública es decir todos los controles del formulario donde fue definido saben de su existencia, el servidor es localhost (Mi Propia PC), el cual tiene un usuario de inicio de sesión llamado “Sa”, y la contraseña de acceso es “123”, esta conexión está dirigida a la base de datos “STAFF”, Toda esta información deberá estar entre comillas.

COMO DEFINIR UNA CONEXIÓN AUTENTIFICADA CON WINDOWSDim CN As New SqlConnection(“Server=localhost;Integrated Security=SSPI;Database=STAFF”)

La variable conexión es CN y es pública es decir todos los controles del formulario donde fue definido saben de su existencia, el servidor es localhost (Mi Propia PC), el cual ya no lleva usuario ni contraseña, estas son obtenidas desde el inicio de sesión de Windows, esta conexión está dirigida a la base de datos “STAFF”, Toda esta información deberá estar entre comillas.

Nota: Es Recomendable usar la primera forma de conexión, conexión basada en SQL Server, ya que este trabaja individualmente a Windows (Sistema Operativo) si el acceso a Windows es ilegal, entonces esto permitirá la entrada ilegal al servidor SQL server.La línea “Imports System.Data.SqlClient” es necesaria para la utilización de comandos SQL en VBNET. Sin esta declaración Visual no podrá hace conexiones o ejecutar comandos SQL - TRANSAC.

DEFINIR UN OBJETO DATASETDim DsEntorno as New DataSet

[email protected]

Page 3: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 3

Este objeto DsEntorno está declarado en modo público sobre el formulario, si se desea un Dataset en modo Privado, hacer lo mismo pero dentro de un objeto cuya inicialización exprese Private Sub.

DEFINIR Y POBLAR UN OBJETO SqlDataAdapter (Modo Público)Dim DaCliente As New SqlDataAdapter("SELECT * FROM CLIENTE", CN)

Nota: este objeto tendrá el nombre de: “DaCliente” la Inicialización de este objeto requiere una consulta expresiva (SELECT * FROM CLIENTE) guiada con una Conexión (Cn) debidamente declarada con anticipación. Así como se observa en la imagen. Para que este objeto sea poblado, requiere ser programado sobre el evento LOAD del formulario. Este creara inmediatamente una tabla llamada CLIENTE con todos sus registros, dentro del entorno de datos DsEntorno.

DEFINIR Y POBLAR UN OBJETO SqlDataAdapter (Modo Privado)

Nota: Esta clase de definición son privadas, solo en control donde fue definido podrá usarlo para sus propios propósitos.

DEFINIR UN OBJETO SqlCommand

[email protected]

Page 4: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 4

Nota: Este ejemplo está almacenado datos en la tabla CLIENTE de la base de datos activa, el comando requiere una sentencia SQL como cadena, de esa manera Visual Basic NET interactúa con SQL Server. Para la ejecución de esta cadena se requiere a parte la declaración de una variable CMD el cual contendrá la cadena a ejecutar vía la conexión (Cn), esta conexión debe estar abierta y luego enviar la ejecución con el comando ExecuteNonQuery, para finalizar el proceso esta conexión debe ser cerrada. Desde luego todo este proceso estará sometido a un try catch (es decir a una prueba de evaluación) si en caso sucede un error en el proceso el Try Catch se vera forzado a interrumpir todo el proceso y presentar el mensaje de error “Error: en Grabación” respetivamente con su código de error, en otro caso simplemente grabara los datos. Con este objeto VBNET puede ejecutar cualquier comando SQL permitido. EL comando DISPOSE se encargara de eliminar de memoria la variable CMD.Los datos que se almacenan en la tabla CLIENTE deben corresponder a los objetos del formulario mencionado, según el orden de los campos que tenga la tabla cliente, así será el orden de los objetos que forman parte de la cadena de grabación.

DEFINIR UN OBEJETO SqlDataReader

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 Práctico ISe tiene el siguiente Modelo Relacional: Erwin – SQL BASE DE DATOS: SERVICIOS

[email protected]

Page 5: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 5

Este Modelo Relacional está constituido por 5 tablas (Cliente, Departamento, Provincia, Distrito, y Generador) aquí se deberán registrar todos departamentos provincias y distritos existentes en Perú, la Tabla Generador será usada para generar los códigos de cliente ya que estos deben ser automáticos, como parte final la tabla cliente, aquí se harán los mantenimientos respectivos (Grabar, Consultar, Eliminar y Actualizar Datos de clientes) usando como aplicación a: Visual Basic Net y su potente herramienta ADO NET.

DISEÑAR EL SIGUIENTE FORMULARIO

Este Formulario está constituido por los siguientes objetos:Cajas de Textos: TxtIdCli, TxtNom, TxtdirCombos: CboDep, CboPro, CboDis, CboEstado.MaskedTextBox: TxtFNac, TxtFreg

PROGRAMANDO EL FORMULARIOIMPORTAR Y HACER DECLARACIONES GENERALES

[email protected]

Page 6: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 6

En este paso se declaran tres variables, Cn (Conexión) DsEntorno (El Dataset) y el DaCliente (DataAdaptador) estos tres objetos son necesarios para nuestro proyecto.

CREAR LOS SIGUIENTES PROCEDIMIENTOS

[email protected]

Page 7: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 7

CREAR LAS SIGUIENTES FUNCIONES

CARGAR LA TABLA CLIENTE Y EL DATASET, BLOQUEAR / DESBLOQUEAR CONTROLES, CARGAR TODOS LOS DEPARTAMENTOS EN EL COMBO CboDep (CargarDepartamentos)

EVENTO -> LOAD DEL FORMULARIO

PROGRAMAR EL COMBO DEPARTAMENTO - CboDep (EVENTO ->TEXTCHANGED)

[email protected]

Page 8: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 8

PROGRAMAR EL COMBO PROVINCIA - CboPro (EVENTO ->TEXTCHANGED)

PROGRAMAR EL BOTON NUEVO (EVENTO ->CLICK)

PARA PODER GRABAR DATOS, DEBEN EXISTIR LAS SIGUIENTES FUNCIONES EXTRAS:

GENERADOR DE CODIGOS

[email protected]

Page 9: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 9

ACTUALIZACION DEL GENERADOR

VALIDAR LOS OBJETOS DEL FORMULARIO, PARA QUE NO ESTEN VACIOS

DEVOLVER NOMBRES DE DEPARTAMENTOS POR BUSQUEDA

DEVOLVER NOMBRES DE PROVINCIAS POR BUSQUEDA

[email protected]

Page 10: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 10

DEVOLVER NOMBRES DE DISTRITOS POR BUSQUEDA

PROGRAMAR EL BOTON GRABAR (EVENTO -> Click)

PROGRAMAR EL BOTON CONSULTAR (EVENTO -> CLICK)

[email protected]

Page 11: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 11

PROGRAMAR EL BOTON ACTUALIZAR (EVENTO -> CLICK)

[email protected]

Page 12: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 12

FILTROS EN VISUAL BASIC NET.Los filtros son un tipo de búsqueda de datos en forma masiva, los cuales cumplen ciertas condiciones, para crear un filtro se debe saber el uso del comando SQL SELECT, el cual presenta el resultado de una consulta en algún objeto determinado de Visual Basic Net, estos pueden ser Combos, Listas, Datagrids, DatagridView entre otros. Los filtros que Visual Basic Net puede crear, depende de ciertos elementos u objetos clases para su definición, estos son: SQLCOMMMAND, SQLDATAREADER, SQLDATADAPTER basados en un conexión SQLCONNECTION.

Caso Práctico IITomando en cuenta la base de datos SERVICIOS del proyecto anterior crear los siguientes filtros vía 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 podría realizarse por: Código de Cliente, Nombres de Clientes, Departamentos, Provincias, Distritos, Fecha de Nacimientos, Fechas de Registros y Estados de cliente.

DISEÑE EL SIGUIENTE FORMULARIO

[email protected]

Page 13: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 13

Los objetos de este formulario tienen los siguientes Nombres:

Control NombreTxtCriterio1Caja de Texto

TxtCriterio2Caja de Texto

Filtrar1Button Control

Control Nombre

[email protected]

Page 14: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 14

TxtCriterio3Caja de Texto

TxtCriterio4Caja de Texto

Filtrar2Button Control

Control NombreTxtCriterio5Caja de Texto

TxtCriterio6Caja de Texto

Filtrar3Button Control

Control NombreTxtF1MaskedTextBox, Cambiar al formato Fecha DD/MM/YYYCambiar las Propiedades del Objeto

[email protected]

Page 15: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 15

TxtF2MaskedTextBox, Cambiar al formato Fecha DD/MM/YYYCambiar las Propiedades del ObjetoFiltrar4Button Control

Control NombreCboDepComboBox

CboProComboBox

CboDisComboBox

Filtrar5Button Control

Y por último un control DataGridView, Cambiar El nombre Por DtgResultados

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 están enumeradas se la siguiente forma:

PRIMER FILTROEste Filtro basado en Select SQL busca al cliente C0001

[email protected]

Page 16: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 16

SEGUNDO FILTROEste Filtro basado en Select SQL busca aquellos clientes cuyos nombres empiecen con la letra “S”

TERCER FILTROEste Filtro basado en Select SQL busca aquellos clientes cuya dirección empiecen con la letra “C”

CUARTO FILTROEste Filtro basado en Select SQL busca aquellos clientes cuyas fechas de nacimientos se encuentres entre 03/05/1980 y 03/05/1982

QUINTO FILTROEste Filtro basado en Select SQL busca aquellos clientes que viven en un determinado departamento, provincia o distrito. Para ello debemos digitar los códigos correspondientes al departamento, provincia y distritos, entre los apóstrofes..

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.

[email protected]

Page 17: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 17

PROGRAMAR EL FORMULARIOIMPORTAR 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 CONEXIÓN (CN) Y EL DATASET DSENTORNO

DECLARAR LOS SIGUIENTES PROCEDIMIENTOS

[email protected]

Page 18: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 18

DECLARAR LAS SIGUIENTES FUNCIONES

PROGRAMAR EN EL EVENTO LOAD DEL FORMULARIO

PROGRAMAR EN EL BOTON FILTRAR1 EVENTO CLICK

PROGRAMAR LA CASILLA DE TEXTO TXTCRITERIO2 EVENTO TEXTCHANGED

[email protected]

Page 19: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 19

PROGRAMAR EL BOTON FILTRAR2 EVENTO CLICK

PROGRAMAS LA CASILLA DE TEXTO TXTCRITERIO4 EVENTO TEXTCHANGED

PROGRAMAR EL BOTON FILTRAR3 EVENTO CLICK

[email protected]

Page 20: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 20

PROGRAMAR LA CASILLA DE TEXTO TXTCRITERIO6 EVENTO TEXTCHANGED

PROGRAMAR EL BOTON FILTRAR4 EVENTO CLICK

PROGRAMAR EL BOTON FILTRAR5 EVENTO CLICK

[email protected]

Page 21: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 21

APLICACIÓN EJECUTADA

APRENDER A ORGANIZAR NUESTRO CODIGO (CLASES).Estos dos formularios anteriores has sido desarrollados con código tradicional, es decir todo el código fue centralizado en el formulario y solo trabaja ahí, pero existe otra manera más reducida de realizarlo y esta es mediante clases u objetos de herencias. Las clases son de dos tipos o al menos son estas las que se usan con más frecuencia: CLASE COMPARTIDA (Shared = Compartido) Y LA CLASE INSTANCIADA (después de usar se auto descarga)

Caso Práctico III

[email protected]

Page 22: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 22

Crear la base de datos: SERVICIOS2, similar a la base de datos SERVICIOS del proyecto anterior, con 2 ligeras variantes, 1: a la tabla CLIENTE se le ha agregado un campo nuevo llamado FOTO de tipo IMAGE, el cual guardara la foto del cliente.

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 imágenes 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 características, 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 opción Agregar Clase. Así como se observa en la imagen.

[email protected]

Page 23: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 23

Como resultado de esta operación se obtendrá la siguiente ventana:

Es aquí donde se escribirá el nombre de la Clase a agregar: MiClase luego hacer click en Agregar, aparecerá una nueva ventana de código con la siguiente estructura.

Antes de empezar se debe realizar la siguiente importación (Sobre él: Public Class MiClase) para que SQL Server pueda trabajar dentro de esta clase.

Aquí es donde se redactaran los códigos de herencia, estos pueden ser Procedimientos (Public Sub), funciones (Public Function), Métodos y Propiedad (Public Property) Get - Set, entre otros. Todo ese código será redactado entre el Public Cass MiClase y EndClass

EMPEZANDO LA CLASEDentro de dicha Clase, digitar los siguientes códigos:

DEFINIR CONEXIÓN EN LA CLASE

[email protected]

Page 24: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 24

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

[email protected]

Page 25: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 25

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

[email protected]

Page 26: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 26

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.

CLASE TERMINDA

A CONTINUACIONDISEÑE EL SIGUIENTE FORMULARIO CON TODAS SUS CARACTERISTICAS

[email protected]

CONTROLES DE ESTE FORM.

3 Cajas de Texto: TxtIdC (Código), TxtNom (Nombre), TxtDir (Dirección)

4 Combos: CboDep (Departamento), CboPro (Provincia), CboDis (Distrito), CboEstado (Estado).2 MaskedTextBox: TxtFnac (Fecha

Nac), TxtFreg (Fecha Reg).1 PictureBox: PicFoto1 OpenFileDialog: OpenFileDialog16 Buttons: BtnNuevo, BtnGrabar, BtnConsultar, BtnActualizar (Editar), BtnExaminar, BtnSalir.Todos estos controles deben ser colocados

en este formulario.

Page 27: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 27

PROGRAMANDO EL FORMULARIO:AQUÍ SE DEBE AGREGAR LOS SIGUIENTES NOMBRES DE ESPACIOS LOS CUALES

PERMITIRAN MANIPULAR IMÁGENES, INCLUYENDO AL ESPACIO SQL.

DEFINIR A NIVEL DE FORMULARIO CLIENTE (FrmCliente) LAS SIGUIENTES VARIABLES, FUNCIONES Y PROCEDIMIENTOS

[email protected]

PicFoto

Page 28: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 28

PROGRAMAR EL FORMULARIO EVENTO LOAD

PROGRAMAR EL COMBO DEPARTAMENTO EVENTO TEXTCHANGED

PROGRAMAR EL COMBO PROVINCIA EVENTO TEXTCHANGED

PROGRAMAR EL BOTON NUEVO EVENTO CLICK

[email protected]

Page 29: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 29

PROGRAMAR EL BOTON GRABAR EVENTO CLICK

PROGRAMAR EL BOTON GRABAR EVENTO CLICK

PROGRAMANDO EL BOTON CONSULTAR EVENTO CLICK

[email protected]

Page 30: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 30

PROGRAMAR EL BOTON EXAMINAR

PROGRAMAR EL BOTON ACTUALIZAR EVENTO CLICK

[email protected]

Page 31: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 31

Crystal ReportsCrystal Reports es una aplicación de inteligencia empresarial utilizada para diseñar y generar informes desde una amplia gama de fuentes de datos (bases de datos).Varias aplicaciones, como Microsoft Visual Studio Net, incluyen una versión de Crystal Reports como una herramienta de propósito general del informes/reportes. Crystal Reports se convirtió en el escritor de informes estándar cuando Microsoft lo liberó con Visual Basic.

CamposMuchos de los datos que se pueden insertar en el informe son campos de base de datos seleccionada. Éstos mostrarán los datos tal como están almacenados en la base de datos.

Campos de fórmulaSi se quieren desplegar datos que son valores calculados, tendrá que crear un campo de fórmula y ponerlo en el informe, similarmente a lo anterior (arrastrar hasta el lugar deseado, o insertarlo).Se cuenta con un amplio espectro de fórmulas disponibles para la creación de éstas. Las cuales pueden ser programadas o creadas según el lenguaje crystal, integrado al programa, o bien, utilizando la sintaxis de Basic (Visual Basic Net).

Campos de parámetroSirven para solicitar al usuario de un informe que especifique información. De esta manera se crear un campo de parámetro. Los parámetros son como preguntas que el usuario necesita responder antes de que se genere el informe. La información que escribe el usuario, o la forma en que responde, determinan lo que aparece en el informe.Los parámetro pueden ser creados con datos fijos (estáticos), dinámicos 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 exportación de reportes/informesEl 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 ReportesLos reportes son variados, los principales son: Reportes Normales y filtrados, es decir sin algún estilo de presentación, Reportes Agrupados, es decir los que se muestran con algunos niveles de separación, y las Tab Cruzadas, es decir reportes de alta complejidad.

Caso Práctico IV

[email protected]

Para desarrollar una aplicación orientada a Crystal Reports, se debe contar con una base de datos, en esta ocasión usaremos a la base de datos SERVICIOS2 del proyecto anterior, el cual deberá contener datos, para su posterior pre visualización en un Informe o Impresora.

Page 32: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 32

Para nuestro ejemplo usaremos a la tabla CLIENTE, el cual debe contar con los siguientes Datos:

Estos datos serán ingresados desde el Formulario Cliente, como observara contamos con algunos registros BLOQUEADOS y la fotografía del Cliente no es visible desde el manejador, esto se debe a que ese código 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 NETCREAR un nuevo proyecto con el nombre SERVICIOS3, desde visual Basic Net y mantener el formulario que se presenta vacio momentáneamente.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 opción Reporting (Izquierda) y luego la Opción Crystal Report (Derecha) e ingresamos el nombre del Crystal RptCliente1.rpt y hacemos click en el botón Agregar.

[email protected]

1

2

34

Page 33: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 33

Modo standard Modo Cross – Tab Modo Mail Label

El Modo Estándar es el más recomendable ya que con él se realizan reportes sencillos y de presentación adecuada, sin dejar de lado a los otros dos modos.

“SELECCIONE EL MODO STANDARD” Y HACER CLICK EN OK.

[email protected]

Licencia para el usuario final

Este Paso es casi opcional, esta ventana solo se obtendrá siempre y cuando se está creando un Crystal Report por primera vez en Visual Basic Net. Bueno lo único que debemos hacer es Aceptar los Términos y luego hacer click el botón OK.

Galerias de Crystal ReportsEste 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))Seleccionando un Experto

Standard Cross – Tab Mail Label

1

2

3

Page 34: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 34

Después obtendremos la siguiente ventana: Ya que nuestro reporte depende de datos de tablas, debemos establecer conexión con nuestra base de datos SERVICIOS2, de la siguiente manera:

Seleccionamos el proveedor “Microsoft OLE DB Provider for SQL Server” tal como se muestra en la imagen. Y hacemos click en el botón Next (Siguiente)

El proveedor es el intermediario entre la base de datos y nuestra aplicación de Visual Basic Net, sin este componente nativo sería imposible la conexión, aunque existen otras maneras de establecer la conexión 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 conexión, por ejemplo: el nombre del servidor, el usuario, la contraseña y la base de datos a

[email protected]

Aquí debemos hacer click en el signo + de la expansión del componente OLE DB (ADO), el cual mostrara otra ventana, para seleccionar el proveedor de conexión OLE DB.

Page 35: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 35

acceder, estos datos son necesarios para nuestra conexión. Estos deberán ser rellenados manualmente. Cuando se termine hacer click en el botón NEXT (Siguiente).

En esta ventana debemos hacer click en FINISH (Finalizar)

Después de finalizar se obtendrá una ventana nueva con la configuración de la conexión establecida, se observara la conexión y la base de datos, con sus tablas incluidas.

Como se dijo en el enunciado de la página 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)

[email protected]

Page 36: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 36

En esta ventana se observan las tablas que fueron agregadas, están 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 podría 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 agregándolos. Gracias a este paso podemos realizar ciertas agrupaciones y/o configuraciones con los datos del reporte de tal forma existiría 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)

[email protected]

Page 37: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 37

de esa manera todos los campos de las tablas podrán formar parte de nuestro reporte. Cosa que sería lo (((Recomendado))) para no volver a configurar la conexión, por si algún campo nos falto agregar.

“ESCOJA LA SEGUNDA ALTERNATIVA” CLICK EN FINISH

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 páginas. Esta Sección está Bloqueada.Seccion2 (Page Header):Es la cabecera de la página, esto solo saldrá por cada hoja del informe.Seccion3 (Detalles):Esta sección le corresponde a los datos de un detalle. Puede ser los datos de cualquier tabla.Seccion4 (Report Footer):Es el pie de la página, esto solo saldrá por cada hoja del informe. Esta Sección está Bloqueada.Seccion5 (Report Header):

[email protected]

Page 38: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 38

Es la cabecera del informe, ya que un informe puede tener muchas páginas.

Cuadro de Herramientas de Informes

EN NUESTRO INFORME SOLO USAREMOS DOS SECCIONES: (Seccion2 Page Header) (Sección3 Detalles) es decir, Cabecera de Pagina y el Detalle de la pagina.

SECCION2 PAGE HEADERBUENO EMPEZAREMOS A DISEÑAR NUESTRO INFORME CON ALGUNAS CAJAS O ETIQUETAS:

[email protected]

MODO SELECCIÓN DE OBJETOS

CAJA DE TEXTOS

TRAZADOR DE LINEAS

OBJETO FIGURA O CAJA

Page 39: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 39

SECCION3 DETALLESEn esta sección empezaremos a colocar los campos de la tabla CLIENTE, tal como se presenta en el informe, recuerda que en cualquier sección se podrá colocar cualquier campo de una tabla, pero eso dependerá del criterio del programador.

Los campos serán arrastrados desde la ventana Field Explorer (Explorador de Campos) hacia el diseño del informe, en la sección3 aparecen los campos de las tablas, pero encima (Seccion2 Page Header) aparecen sus respectivas etiquetas. Estas estarán siempre en subrayado.

[email protected]

Para colocar estos textos en nuestro informe es solo cuestión 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 automáticamente en el momento que se creó el informe. Y la línea se hará con la herramienta Line Object, Esto debe quedar tal como se presenta en la imagen. Los formatos de textos dependerán de las demás herramientas o propiedades del objeto para su mejor presentación.

Esta presentación dependerá del usuario, las herramientas a usar para su mejor presentación.

Page 40: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 40

Si observamos la vista previa del informe, esta se vera de la siguiente manera: (Leer más abajo)

En la parte inferior de la ventana del informe existe dos enlaces: Main Report y Main Report Viewer estos enlaces permitirán permutar entre el diseño del informe y su pre visualización.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.

Ahora volvamos a pre visualizar: click en Main Report Viewer

[email protected]

Page 41: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 41

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, Próximo Cumpleaños 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).Encontrándonos en el entorno del Reporte, ir a la ventana Formula Fields, hacer click derecho sobre dicha opción y seleccionar: NEW (Nuevo), así como se presenta en la imagen.

El cual se mostrara una nueva ventana, aquí se deberá redactar el siguiente código: este código permitirá saber cuántos años tiene el cliente, usando como campo elemental a la fecha de nacimiento.

Años

[email protected]

Aquí ingresamos el nombre del campo calculado y hacemos click en el botón Use Editor

Page 42: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 42

Esta ventana contiene los campos del informe (Izquierda) que serán usados en las operaciones, si se desea aplicar algún comando de gestión, se debe usar las Funciones (Centro) y algunas operaciones extras (Derecha), al final el código se redactara en el nivel inferior. Para verificar la sintaxis del código se deberá pulsa el botón X+2 ubicado en la parte superior izquierda de la imagen. Estos mensajes podrían ser de éxitos o fracasos. Cuando el código este terminado, hacer click en el botón Save And Close, ubicado también 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

[email protected]

Page 43: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 43

ProximaFecha

Por lo tanto tendremos 4 campos calculados definidas por el usuario, quedando así como se presenta la imagen:

Estos nuevos campos deberán ser colocados en nuestro informe, con sus respectivas etiquetas, para ello nuestro reporte tendrá un nuevo aspecto:

[email protected]

Page 44: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 44

Ahora pre visualizaremos el informe, hacer click en el enlace Main Report Preview. Mostrar a un 100% de ampliación. Para el documento, si se desea ver a los demás registros reduzca el porcentaje de ampliación, así podrá ver a todos los registros.

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 código, todas las filas de datos del informe estarán afectas a dichos campos calculados.

[email protected]

Page 45: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 45

Ahora crear un formulario (FrmReporte1) para su presentación 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 vía formulario de nuestra aplicación. Este objeto deberá tener las siguientes propiedades:

Propiedad ValorNombre Reporte1DisplayGroupTree FalseBorderStyle Fixed3D

AHORA PROGRAMAR EL FORMULARIO CON EL SIGUIENTE CODIGO:

[email protected]

Page 46: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 46

EJECUTE EL FORMULARIO Y MAXIMIZARLO, OBSERVE:

F I N - D E - L A - P R I M E R A - P A R T E - D E - I N F O R M E S

PARAMETROS. Es un componente extra en los informes, la ayuda básica que tienen estos parámetros 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 parámetro 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 Diseño) observar la ventanita Field Explorer, y hacer click derecho sobre la opción: Parameter Fields y seleccionar la opción New e ingrese el nombre del parámetro con su respectivo tipo de dato, Así como se muestra en la imagen:

[email protected]

Page 47: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 47

Luego procederemos a ingresar el nombre del parámetro en este caso será: ESTADOX cuya descripción será: Solo para Filtrar Por Estados de Clientes, por ultimo seleccionar el tipo de dato del parámetro, 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 botón OK. Después se observara que el parámetro ha sigo agregado como se observa en la segunda imagen.

Ahora debemos crear una Selección 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.

[email protected]

Page 48: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 48

Es aquí donde seleccionamos el campo Estado de la tabla Cliente, y lo comparamos con el parámetro ESTADOX, esta comparación se observara abajo. Luego verificamos sintaxis con el botón X+2 si todo es correcto entonces Cerramos y Grabamos con el botón 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 (póngale 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 asígnele 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:

[email protected]

Page 49: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 49

REPROGRAMANDO EL FORMULARIODeclarar las siguientes variables en modo público a nivel de formulario.

Programando el BtnActivo – Click (CLIENTES ACTIVOS)

Programando el BtnBloqueado – Click (CLIENTES BLOQUEADOS)

EJECUTE EL FORMULARIO FrmReporte2 Y PRESIONE LOS BOTONES.

CLIENTES ACTIVOS CLIENTES BLOQUEADOS

F I N - D E - L A – S E G U N D A - P A R T E - D E - I N F O R M E SEn este tema de Informes, estos elementos llamados Parámetros no necesariamente deben ser creados en el mismo informe, por el contrario, estos podrán ser programados desde la aplicación, es

[email protected]

Page 50: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 50

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 cálculos 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.

AHORA A CREAR NUESTRO INFORME

Las tablas que se usan en el informe son: EMPLEADO, DEPARTAMENTO, PROVINCIA Y DISTRITO, deberán estar relacionas. Y todos los campos de las tablas agregados.EL DISEÑO DEL INFORME ES EL SIGUIENTE:

[email protected]

Después 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 Social.ONP: Sistema PensionarioBonEx: Bonificación Extraordinaria. Solo si gana a partir de 2000 Soles.TOTAL: Total a Pagar

Page 51: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 51

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 deberán estar unos en DATOS PERSONALES y otros en la parte inferior de la foto. Un campo calculado es fácilmente 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:

Bonificación Extra (BonEx) el cual será un medio sueldo, solo si ganan a partir de 2000.

Fecha de Nacimiento en Verbo (FechaNa)

[email protected]

Page 52: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 52

Edad del Empleado (Edad)

Estado del Empleado en Verbo (EstadoE)

ONP el cual será un 13% del haber mensual.

Seguro el cual será un 19% del haber mensual.

[email protected]

Page 53: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 53

TOTAL a recibir.

En el formulario que se encuentra vacio y si no fuera el caso agregue uno nuevo (FrmReport4), proceda a diseñarlo con la siguiente estructura:

Estructura del formulario:GRAFICAS DETALLES A CONSIDERAR DE OBJETOS EN LAS GRAFICAS

Caja de Texto TxtIdE y un Botón Btn1 (Ejecutar)

La primera casilla se llamara: TxtS1 y un Botón Ejecutar Nombrado: BTn5La Segunda casilla se llamara: TxtS2 y un botón ejecutar Nombrado: Btn6

La Casilla se llamara: TxtNombre y un Botón Ejecutar nombrado Btn2

[email protected]

CrystalReportViewer1

Page 54: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 54

Primer Combo Llamado: CboSexo y un Botón Ejecutar Nombrado Btn7Segundo Combo Llamado: CboEstado y un Botón Ejecutar Nombrado Btn8

Primer Control Fecha MaskedTextBox Nombrado: TxtF y un Primer Botón Ejecutar Nombrado: Btn3Segundo Botón Ejecutar Nombrado: Btn4Segundo 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 conexión Cn. Luego proceda a crear un sub programa llamado EjecutarInforme con el Parámetro CADENA de tipo String. Este parámetro contendrá el filtro programado para nuestro informe.

Botón Ejecutar Btn1 Evento Click

Botón Ejecutar Btn2 Evento Click

Botón Ejecutar Btn3 Evento Click

[email protected]

Page 55: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 55

Botón Ejecutar Btn4 Evento Click

Botón Ejecutar Btn5 Evento Click

Botón Ejecutar Btn6 Evento Click

Botón Ejecutar Btn7 Evento Click

Botón Ejecutar Btn8 Evento Click

AL EJECUTAR NUESTRO FORMULARIO DEBERA QUEDAR ASI:

[email protected]

Page 56: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 56

Informes de Tipo EstadísticoEn este segmento es necesario saber qué es lo que se va a pre visualizar, para crear un informe de esta modalidad, se requieren datos exclusivamente de tipo numérico (Datos que se van a mostrar) y algunas etiquetas en referencia a dichos datos. Nuestra Tabla Empleado, de la base de datos SERVICIOS4, tiene un campo numérico: Sueldo, con el podemos trabajar y el cual muestre: Quien Gana Más ó Separar los Sueldos de acuerdo al Genero (Sexo), debemos tomar en cuenta que este tipo de informes requiere obligatoriamente agrupaciones (Groups) para su presentación.SEGUIR LOS SIGUIENTES PASOS:En el proyecto actual SERVICIOS4 de Visual Basic Net, agregaremos un nuevo informe llamado Estadistica1.Rpt, el cual solo tendrá algunos campos de la tabla Empleado: SUELDO y SEXO, (aunque podrían ir todos los campos de la tabla) estos deberán ser seleccionados y agregados en los pasos para la construcción del informe. Entre estos dos campos el que agrupara será el campo SEXO, y luego indicar el criterio del agrupamiento el cual será pedir la suma de los Sueldos.Construyamos el informe hasta el paso de la selección de campos, es ahí donde debemos seleccionar en un apartado el grupo y la sumatoria de los sueldos.

[email protected]

Page 57: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 57

En estas dos gráficas se observa la selección de campos, en una (Izquierda) gráfica solo los campos que nos interesan y en la otra (Derecha) gráfica todos los campos de la tabla Empleado, Con cualquiera de las dos se puede trabajar. Hacer click en el botón 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.

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 Estadístico que tendrá nuestro informe y además 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).

Cuando finalizamos el diseño (Main Report) del reporte se visualiza (Izquierda) de la siguiente manera, y en la otra ventanita (Derecha) se observa la pre visualización del informe (Main Report Preview) según los datos de la tabla Empleado.

[email protected]

Seleccionar los campos Sexo y Sueldo

Seleccionar Todos los Campos

Aquí el Campo que Agrupara los datos será el campo SEXO.

Aquí se debe aplicar e l criterio del Grupo el cual será la sumatoria de los sueldos.

A B

A B

Page 58: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 58

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 diseño (Main Report), y pre visualizamos el informe (Main Report Preview) para ver cómo queda

Main Report Main Report Preview

Cambiar Algunas Características Del Gráfico

Por ejemplo: si se desea cambiar la gráfica a tipo pie (Torta) se harían los siguientes pasos:En modo Main Report, Click derecho sobre la Gráfica y observar la ventana emergente: la opción Format Object cambia alguna características del grafico por ejemplo: color de línea de marco, color de fondo, entre otros, la opción Chart Expert permite cambios en la forma del Grafico, es en esta opción es donde se podrá especificar el tipo Pie (Torta) y algunas característica adicionales como: Títulos de Gráfico, Sub títulos Datos y grupos. Y la opción Char Options, el cual permitirá afinar la presentación de los gráficos, por ejemplo: colocar las etiquetas de los datos dentro o fuera de las imágenes, gráfica Tridimensional, alineación de algunos elementos de la gráfica, esto permitirá darle a nuestro informe una mejor presentación.

[email protected]

Barras divisorias esta debe quedar juntas.

Page 59: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 59

Ahora nuestro informe estadístico 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 opción Chart Options - > luego la sub opción General. Así como se muestra en la Grafica (A). En la Grafica (B) estando en la pestaña General, empezamos a mover los pequeños despliegues de: Tilt (Giro Vertical de Profundidad), Depth (Grosor de la profundidad), Rotation (Rotación de objeto), Explode (Explosión del objeto)

[email protected]

A B

Page 60: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 60

Con respecto a las otras pestañas (Layout) facilita ciertas características a la gráfica, y la Pestaña (DataLabels) el cual puede cambiar algunas cosas en la grafica como: etiquetas, valores porcentuales, elementos dentro o fuera de la imagen etc.

La pestaña (Numbers) determina el estilo de numeración en la grafica. La pestaña (Lock) es solo referida a las legendas, es decir mejora la presentación de la misma

La Pestaña (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, después de realizar las modificaciones:

Main Report Main Report Preview

[email protected]

Page 61: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 61

Agregar un nuevo formulario al proyecto SERVICIOS4, y este tendrá el siguiente Diseño:

Este formulario solo contiene un solo objeto y este es un control: CrystalReportViewer1, cuya propiedad DisplayGroupTree es False.

PROGRAMAR EL FORMULARIO.

Al ejecutar el formulario se observara lo siguiente:

[email protected]

CrystalReportViewer1

Page 62: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 62

Acceder a Datos Desde Una DLL

(Dynamic Linking Library - Bibliotecas (Librería) de Enlace Dinámico). DLL es la implementación de Microsoft del concepto de bibliotecas (librerías) compartidas en sistemas Windows y OS/2. Generalmente estas bibliotecas llevan la extensión ".dll" o ".ocx" (para aquellas que contienen controles ActiveX), o ".drv" (controladores de sistema).

El formato de archivo para los DLL es el mismo que para los archivos EXE. Como en EXE, los DLL pueden contener códigos, datos y recursos. Las aplicaciones suelen utilizar DLL propias y las que provee el sistema operativo, u otras aplicaciones. Las bibliotecas DLL serían una evolución de las bibliotecas estáticas. Usarlos en el desarrollo de programas trae ciertas ventajas como:

Reducción del tamaño de los archivos ejecutables: pues parte del código puede estar en las bibliotecas y no en el ejecutable.

Compartir bibliotecas entre aplicaciones. Facilitar la gestión y aprovechar la memoria del sistema. Brindar flexibilidad frente a cambios: la solución de errores o la implementación de mejoras

puede solucionarse sólo con distribuir una nueva versión de la biblioteca. Esta corrección, en general, será válida para todas las aplicaciones que la utilicen.

Con respecto a este último punto, cabe señalar que no siempre las modificaciones son compatibles con todos los programas. Es más, existen aplicaciones que al ser instaladas, reemplazan algunos DLL por versiones viejas o incompatibles para otras aplicaciones. También puede pasar que algunas aplicaciones al ser desinstaladas, eliminen DLL de otras aplicaciones.

BIBLIOTECA DE CLASES

La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos de datos básicos, tales como System.Object (raíz de la jerarquía de objetos .NET), tipos numéricos y de fechas, tipo string, matrices y colecciones. La BCL contiene también clases que administrarán las características centrales de .NET: entrada/salida de archivos , subprocesamiento, serialización 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 la que un tipo .NET expone campos, propiedades, métodos y sucesos, también cómo 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 gráfico, un botón o nuestro programa.

[email protected]

Page 63: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 63

Para demostrar cómo 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 PERSONAS, esto será diferenciado por el (Campo Tipo), y a su vez eso controlara nuestra aplicación basada en DLL.

EMPEZAR A CREAR NUESTRA DLL

Ingresemos a Visual Basic NET, y crearemos un proyecto orientado a Bibliotecas de Clase, llamado MiDll, cuya ubicación será el escritorio de Windows, así como se muestra en la Imagen:

[email protected]

34

2

1

Page 64: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 64

Al aceptar obtendremos a la siguiente ventana:

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.

Grabe el Proyecto DLL en la carpeta MiDll (En el Escritorio) del paso anterior haciendo clic en el botón Guardar Todo:Empecemos a Programar dicha biblioteca, agregando los siguientes espacios y codigos:

ESTA PROGRAMACION PERTENECE A LA BIBLIOTECA DE CLASE

Programar la siguiente función compartida (Usar Shared)

Programar la siguientes funciones Normales (Sin Shared)

[email protected]

Cambiara el nombre de la clase y objeto por igual

Cambiar en Propiedad: Nombre de Archivo: MiClase o puede hacerlo directamente.

Nombres normales de las clases

Page 65: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 65

Crear los siguientes Procedimientos Normales (Sin Shared)

Grabe el proyecto de biblioteca de clases y luego debemos Generar la DLL, esto se hace de la siguiente manera.

Después 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 extensión Dll (MiDll.dll), para ello debemos abrir la carpeta del proyecto MiDll, luego la carpeta Bin finalizando la carpeta Debug.

[email protected]

1

5

2 3 4

Page 66: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 66

1. Abrir la carpeta MiDll del Proyecto.2. Abrir la Carpeta MiDll por segunda vez.3. Abrir la Carpeta Bin.4. Abrir la Carpeta Debug.5. Es donde es visible el archivo componente Midll.dll

Nota: TENER PRESENTE SIEMPRE ESTO!Este archivo contiene todo el código 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 ubicación será invocado como referencia para su uso.

Si en caso la DLL tuviera algún error de lógica, 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.

DLL TERMINADA

CARACTERISTICAS DE LA DLL CREADA.

Esta DLL está compuesta por:Una función compartida llamada CadenaConexion el posee un parámetro de entrada llamada CadenaC (Cadena de Conexión) es decir esta función lo que hará es proveer a las demás funciones y procedimientos de nuestra DLL las conexiones respectivas con cualquier base de datos, debidamente configurada.Un Sub Programa Llamado Ejecutar, tiene 2 parámetros de entradas (CadenaSQL que significa la instrucción SQL, y CadenaC este contendrá la cadena de conexión) el cual permitirá la ejecucion de ciertos comandos SQL como por ejemplo: INSERT, DELETE, UPDATE, los cuales son necesarios para nuestro propósito. En base a nuestro proyecto que use a esta DLL.

Una función ConsultarFiltrar, tiene 2 parámetros de entrada (Cadena este servirá para contener la consulta o filtro a ejecutar y CadenaC este contendrá la cadena de conexión) esta función permite generar consultas de un solo registro de datos o filtrar cierta cantidad de datos según el criterio de búsqueda o filtro.

[email protected]

Page 67: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 67

Sub Programa GrabarFoto permitirá grabar en la tabla una imagen, para ello se requiere el uso de 3 parámetros de entradas: (Id es el código de la persona, IMAGEN el cual contendrá la foto o imagen a la que se guardara, y CadenaC este contendrá la cadena de conexión).

Función GENERADOR_CODIGO el cual permitirá generar código para cualquier tabla, esta función trabaja directamente sobre la tabla Generador, y posee 2 parámetros TABLA que representa el nombre de la tabla a generar código, estos pueden ser: CLIENTE, EMPLEADO, PRODUCTO etc. y CadenaC este contendrá la cadena de conexión.

Sub Programa ActualizarGenerador, esta función es necesaria para el auto generación de códigos para cada tabla. Usa 2 parámetros: TABLA que representa el nombre de la tabla a generar código, y CadenaC este contendrá la cadena de conexión. La tabla Generador debe ser actualizada.Estructura Jerárquica de la DLL creada:

Public Shared Function

Public Sub

Public Function

Public Sub

Public Function

Public sub

COMO USAR LA DLL, DESDE UN PROYECTO VBNET

Crear un Proyecto nuevo en Visual Basic Net, con el nombre: SERVICIOS5, cuya ubicación será el escritorio de Windows: diseñar el siguiente formulario (Ejecute por lo menos una vez la aplicación para Windows y Grabe Totalmente el proyecto).

[email protected]

Proyecto: MiDll

Clase: MiClase

CadenaConexion (ByVal CadenaC As String) As SqlConnection

Ejecutar (ByVal CadenaSQL As String, ByVal CadenaC As String)

ConsultarFiltrar (ByVal Cadena As String, ByVal CadenaC As String) As DataTable

GrabarFoto (ByVal Id As String, ByVal IMAGEN As Byte(), ByVal CadenaC As String)

GENERADOR_CODIGO (ByVal TABLA As String, ByVal CadenaC As String) As String

ActualizarGenerador (ByVal TABLA As String, ByVal CadenaC As String)

CONTROLES USADOS:

4 Cajas de Texto: TxtIdP (Código), TxtNom (Nombre), TxtDNI (Dni), TxtDir (Dirección)

5 Combos: CboTipo (Tipo) CboDep (Departamento), CboPro (Provincia), CboDis (Distrito), CboEstado (Estado).2 MaskedTextBox: TxtFnac (Fecha

Nac), TxtFreg (Fecha Reg).1 PictureBox: PicFoto1 OpenFileDialog: OpenFileDialog16 Buttons: BtnNuevo, BtnGrabar, BtnConsultar, BtnActualizar (Editar), BtnExaminar, BtnSalir y BtnReport

PicFoto

Esta DLL será invocada mediante una Instancia, desde un proyecto de aplicación de Windows.

Page 68: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 68

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 Proyecto: SERVICIOS5 VBNET

Cuando este archivo sea pegado en la carpeta DEBUG de MiDll hacia la carpeta DEBUG de SERVICIOS5, entonces se podrá iniciar la programación del formulario.

PROGRAMANDO EL FORMULARIO

Agregar como referencia a nuestra DLL. Para ello se debe hacer click en la opción PROYECTO y luego en la sub opción AGREGAR REFERENCIA, así como se observa en la imagen:

[email protected]

Page 69: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 69

Ahora debemos dirigirnos a la pestaña 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:

[email protected]

Page 70: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 70

¡Ahora ya estamos listos para empezar a programar el formulario!Agregar los siguientes nombres de Espacios y declarar las siguientes variables:

En el entorno del formulario programar las siguientes procedimientos (Subs)

[email protected]

Aquí está la línea de código que invoca a nuestra DLL, la variable es

INSTANCIA y está declarada en modalidad pública sobre el formulario, es decir todos los controles del formulario podrán usarla.

Aparte la cadena de conexión (StrCon) también publica ya no será un objeto SqlConnection, de aquí en adelante solo será una cadena.

Page 71: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 71

En el entorno del formulario programar las siguiente Función (Function)

Evento load del formulario

Botón Nuevo Evento Click

Botón Examinar Evento Click

Combo Departamento Evento TextChanged

[email protected]

Page 72: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 72

Combo Provincia Evento TextChanged

Botón Grabar Evento Click

If VALIDAR() = True Then Try 'GRABAR LOS DATOS EN LA TABLA CLIENTE Dim Cdep As String = "" : Dim Cpro As String = "" : Dim Cdis As String = "" Dim TEMPO1 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDEP FROM DEPARTAMENTO " + _ " WHERE NOMBRE='" + CboDep.Text + "'", StrCon) If TEMPO1.Rows.Count > 0 Then Cdep = TEMPO1.Rows(0)(0).ToString

Dim TEMPO2 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDPROV FROM PROVINCIA " + _ " WHERE NOMBRE='" + CboPro.Text + "' AND IDDEP='" + Cdep + "'", StrCon) If TEMPO2.Rows.Count > 0 Then Cpro = TEMPO2.Rows(0)(0).ToString

Dim TEMPO3 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDIST FROM DISTRITO " + _ " WHERE IDPROV='" + Cpro + "' AND NOMBRE='" + CboDis.Text + "'", StrCon) If TEMPO3.Rows.Count > 0 Then Cdis = TEMPO3.Rows(0)(0).ToString

If CboTipo.Text = "CLIENTE" Then TxtIdP.Text = INSTANCIA.GENERADOR_CODIGO("CLIENTE", StrCon) If CboTipo.Text = "EMPLEADO" Then TxtIdP.Text = INSTANCIA.GENERADOR_CODIGO("EMPLEADO", StrCon)

Dim SQL As String = "INSERT INTO PERSONAS VALUES('" + TxtIdP.Text + "','" + TxtNom.Text + _ "','" + TxtDni.Text + "','" + CboTipo.Text + "','" + TxtFNac.Text + "','" + TxtDir.Text + _ "','" + Cdep + "','" + Cpro + "','" + Cdis + "','" + TxtFreg.Text + "','" + CboSexo.Text + _ "','" + TxtSueldo.Text + "','" + CboEstado.Text + "',NULL)"

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") Catch Ex As Exception MsgBox("Error al Grabar " + Ex.ToString()) End TryElse MsgBox("Error: Para Grabar Todos los Objetos Deben Ser Rellenados")End If

Botón Consultar Evento ClickDim CODIGO As String = InputBox("INGRESE CODIGO DE EMPLEADO:") If CODIGO.Length > 0 Then Dim DT As New DataTable DT = INSTANCIA.ConsultarFiltrar("SELECT * FROM PERSONAS " + _ " WHERE IDPERSONA='" + CODIGO + "'", StrCon)

[email protected]

Page 73: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 73

If DT.Rows.Count > 0 Then TxtIdP.Text = DT.Rows(0)(0).ToString : TxtNom.Text = DT.Rows(0)(1).ToString TxtDni.Text = DT.Rows(0)(2).ToString : CboTipo.Text = DT.Rows(0)(3).ToString TxtFNac.Text = DT.Rows(0)(4).ToString : TxtDir.Text = DT.Rows(0)(5).ToString Dim Cdep As String = DT.Rows(0)(6).ToString Dim Cpro As String = DT.Rows(0)(7).ToString Dim Cdis As String = DT.Rows(0)(8).ToString Dim TEMPO1 As DataTable = _ INSTANCIA.ConsultarFiltrar("SELECT NOMBRE FROM DEPARTAMENTO WHERE IDDEP='" + _ Cdep + "'", StrCon) If TEMPO1.Rows.Count > 0 Then CboDep.Text = TEMPO1.Rows(0)(0).ToString Dim TEMPO2 As DataTable = _ INSTANCIA.ConsultarFiltrar("SELECT NOMBRE FROM PROVINCIA WHERE IDPROV='" + _ Cpro + "' AND IDDEP='" + Cdep + "'", StrCon) If TEMPO2.Rows.Count > 0 Then CboPro.Text = TEMPO2.Rows(0)(0).ToString

Dim TEMPO3 As DataTable = _ INSTANCIA.ConsultarFiltrar("SELECT NOMBRE FROM DISTRITO WHERE IDPROV='" + _ Cpro + "' AND IDDIST='" + Cdis + "'", StrCon) If TEMPO3.Rows.Count > 0 Then CboDis.Text = TEMPO3.Rows(0)(0).ToString

TxtFreg.Text = DT.Rows(0)(9).ToString : CboSexo.Text = DT.Rows(0)(10).ToString TxtSueldo.Text = DT.Rows(0)(11).ToString : CboEstado.Text = DT.Rows(0)(12).ToString 'REVELAR IMAGEN If DT.Rows(0)(13) Is DBNull.Value Then Me.PicFoto.Image = Nothing Else Dim VALOR As Byte() = CType(DT.Rows(0)(13), Byte()) Dim MEMORIA As New MemoryStream(VALOR) Dim MAPABITS As New Bitmap(MEMORIA) Me.PicFoto.Image = MAPABITS : VALOR = Nothing End If BtnActualizar.Enabled = True : BtnNuevo.Enabled = True BtnNuevo.Text = "Cancelar" : BtnGrabar.Enabled = False BtnConsultar.Enabled = False : BtnActualizar.Text = "Editar" Else MsgBox("EMPLEADO NO ENCONTRADO") : LimpiarObjetos() : Bloquear(False) End If Else MsgBox("ERROR: DEBE INGRESAR UN CODIGO DE EMPLEADO") : LimpiarObjetos() Bloquear(False) End If

Botón Actualizar Evento ClickIf BtnActualizar.Text = "Editar" Then BtnActualizar.Text = "Actualizar" : Bloquear(True) : BtnNuevo.Text = "Cancelar" BtnNuevo.Enabled = TrueElse If VALIDAR() = True Then Try Dim Cdep As String = "" : Dim Cpro As String = "" : Dim Cdis As String = "" Dim TEMPO1 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDEP FROM DEPARTAMENTO " + _ "WHERE NOMBRE='" + CboDep.Text + "'", StrCon)

If TEMPO1.Rows.Count > 0 Then Cdep = TEMPO1.Rows(0)(0).ToString Dim TEMPO2 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDPROV FROM PROVINCIA " + _ " WHERE NOMBRE='" + CboPro.Text + "' AND IDDEP='" + Cdep + "'", StrCon) If TEMPO2.Rows.Count > 0 Then Cpro = TEMPO2.Rows(0)(0).ToString Dim TEMPO3 As DataTable = INSTANCIA.ConsultarFiltrar("SELECT IDDIST FROM DISTRITO " + _ " WHERE IDPROV='" + Cpro + "' AND NOMBRE='" + CboDis.Text + "'", StrCon) If TEMPO3.Rows.Count > 0 Then Cdis = TEMPO3.Rows(0)(0).ToString Dim SQL As String = "UPDATE PERSONAS SET NOMBRE='" + TxtNom.Text + "',FNAC='" + _ TxtFNac.Text + "',DIR='" + TxtDir.Text + "',IDDEP='" + Cdep + "',IDPROV='" + _ Cpro + "',IDDIST='" + Cdis + "',FREG='" + TxtFreg.Text + "',Sexo='" + CboSexo.Text + _ "',Sueldo='" + TxtSueldo.Text + "',ESTADO='" + _ CboEstado.Text + "' WHERE IDPERSONA='" + TxtIdP.Text + "'"

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())

[email protected]

Page 74: Manual IV CICLO de VISUAL BASIC  NET.doc

ACCESO A DATOS VISUAL BASIC NET – SQL SERVER Pág. 74

End Try Else MsgBox("Error: Para Actualizar Todos los Objetos Deben Ser Rellenados") End IfEnd If

EJECUTAR EL PROYECTO Y OBSERVAR LOS RESULTADOS((GRABAR))

((CONSULTAR))

((ACTUALIZAR))

[email protected]