AC C E S O A DATOS DE S DE V I S U A L BA S I C .N E T C O N ADODB
ELABORADO POR: ELIESER NÚÑEZ
[email protected] Elieser Núñez
[email protected]
1
INTRODUCCIÓN
A través de esta guía que va paso a paso y que para cumplir los objetivos se desarrolla un proyecto de control de trabajo educativo social, para una institución de nivel medio, donde el alumno aprenderá a crear aplicaciones usando base de datos. Espero que satisfaga las necesidades de los estudiantes Si desean compartirla con otros colegas, me agradaría mucho que lo hiciera, con la única condición de que siempre se respete el derecho del autor.
Elieser Núñez
Elieser Núñez
[email protected]
2
Microsoft Visual Basic.Net GUÍA DE LABORATORIO Nº 1 Objetivos Luego
de
completar
este
laboratorio,
el
estudiante
será
capaz de: Crear y manipular bases de datos utilizando Microsoft Access. Conectar con la base de datos usando la librería ADODB Manipular registros de una tabla programando con ADODB Crear formularios con datos enlazados. Realizar consultas utilizando sentencias SQL. Crear Reportes usando Crystal Report
Creación de la base de datos con Microsoft Access 2007-2010 Para desarrollar nuestras prácticas de laboratorio debemos crear una base de datos cuyo nombre es DBtes.ACCDB, la cual contendrá
las
tablas
modalidades,
Cursos,
secciones,
alumnos,
actidetalles, actividad1 y otras que añadiremos en el siguiente nivel. La tarea de crear una base de datos con Microsoft Access 2007-2010-2013 es muy sencilla. Para tener una mejor comprensión observemos el DER del proyecto.
Elieser Núñez
[email protected]
3
DER PROYECTO CONTROL-TES 90%
Casos
Partiendo de que un instituto tiene varias modalidades (áreas) podemos decir: Un área puede tener varios cursos Un curso puede tener varias secciones Un alumno tiene derecho a estar en un curso varias veces
Conociendo los casos y visto el diagrama describimos los atributos pertenecientes a cada identidad e identificamos los campos claves. Para luego crear la base de datos en Microsoft Access.
TABLA MODALIDADES Nombre del
Tipo
Ancho
Descripción
Mod_cod
T
03
Código de modalidad
Mod_nom
T
50
Nombre de modalidad
Tipo
Ancho
Campo
TABLA CURSOS Nombre del
Descripción
Campo Elieser Núñez
[email protected]
4
Cur_cod
T
Cur_no
N
Cur_desc
T
Cur_nsec
N
Mod_cod
T
03
Código de Curso
Entero Numero de Curso 12
Descripción
Entero Cantidad secciones 03
Código de modalidad
TABLA SECCIONES Nombre del
Tipo
Ancho
Descripción
Campo Sec_id
AutoNumera cion
Sec_no
N
Entero
sec_jorn
T
20
Sec_limite
N
Entero
Limite alumnos
Sec_year
N
Entero
Año sección
Cur_cod
T
03
Numero de Sección Jornada
Código de curso
Como puede observar hay un atributo en cada tabla que aparece subrayado, eso significa que es un campo único donde los datos a diferencia de los demás no se pueden repetir, al momento de crear la tabla debe asegurarse que la llave de asignación este sobre el campo primario. Note que hay campos que han sido definidos como primarios en una tabla y aparecen en otra tabla, a estos campos se les denomina campos foráneos y su función es conectar la información de una tabla con otra. Desarrollaremos este proyecto por partes, como hemos visto el DER está compuesto por 6 entidades (tablas), iniciaremos diseñando estas cuatro tablas(áreas, curso, secciones y modalidades) y la interfaz de cada una de ellas en Visual Basic. Así que manos a la obra, entremos en la aplicación de Access asignemos el nombre a la base de datos “dbtes”, diseñamos la tabla de áreas, cursos, secciones y alumnos conforme al diseño propuesto en esta guía. Luego relacionamos las tablas usando las reglas de integridad referencial, guarde la base de datos y listo ya tenemos la base de datos. Si usted ya recibió el curso de Access no tendrá problemas en seguir las instrucciones descritas anteriormente. Si no consulte el manual de Access para resolver el problema.
Elieser Núñez
[email protected]
5
La relación debe de quedar según la siguiente imagen.
Creando aplicaciones en Visual Basic >NET 2008-2010 En
visual
Basic
existen
diferentes
formas
de
desarrollar
una
aplicación puede ser utilizando entornos de datos, ADODB entre otros. Nos centraremos en la programación ADODB que es la más recomendada por los expertos en esta área. Que significa ADODB? A través de este nuevo modelo podemos acceder a las bases de datos mediante código. Podíamos definir ADODB como:
Un conjunto de interfaces, clases y estructuras que permiten el acceso a Datos.
Permite decir
un
modo
de
acceso
a
datos
desconectado. Esto quiere
que a través de ADODB solo estaremos conectados con el
servidor
el
tiempo
estrictamente
necesario
para
realizar
la
carga de los datos en el RECORDSET.
Entremos a visual Basic y elijamos Nuevo Proyecto.
Elieser Núñez
[email protected]
6
Aparece la siguiente ventana
Seleccionamos Aplicación de Windows Form Asignamos un nombre al proyecto por ejemplo “Control-TES” Hacemos clic en el botón Aceptar y listo
Elieser Núñez
[email protected]
7
AGREGANDO UNA REFERENCIA PARA TRABAJAR CON LA LIBRERÍA ADODB Clic derecho sobre el nombre del proyecto en el explorador de soluciones
HAGA
APARECE LA SIGUIENTE VENTANA
HAGA CLIC EN LA PESTAÑA COM
BUSQUE LA OPCIÓN O DESCRIPCIÓN QUE SE MUESTRA EN LA IMAGEN SIGUIENTE:
CLIC EN AGREGAR REFERECIA
Elieser Núñez
[email protected]
8
HAGA CLIC EN EL BOTON ACEPTAR, YA PODEMOS TRABAJAR CON LA LIBRERÍA ADODB.
CREANDO MODULO PARA ESTABLECER CONEXIÓN Un módulo es una sección no grafica que generalmente se usa para segmentos de código a través de procedimientos o funciones específicas como en este caso; establecer la conexión con la base de datos. Manos a la obra.
Clic derecho en el nombre del proyecto en el explorador de soluciones
Haga clic en agregar, luego en modulo
Asigne nombre al modulo o déjelo con el nombre que asigna el sistema.
Haga clic en el botón aceptar
Elieser Núñez
[email protected]
9
Codificando el modulo Comenzaremos declarando variables de alcance publico ya que su valor es necesario en todas las aplicaciones del proyecto. La variable CONEc sera usada para establecer la conexión con la base de datos por lo tanto heredera comandos y funciones para realizar peticiones a la base de datos dbtes. Declare las variables tal como se observan en la imagen debajo.
Agregando
un
procedimiento
para
escribir
el
código
que
debe
conectar a la base de datos. Al procedimiento le asignamos el nombre de conectar pero igual le podemos otro nombre si desea hacerlo, la estructura Try se usa para
evitar
que
el
programa
se
suspenda
en
caso
de
que
se
produzca un error, de producirse un error este es almacenado en la función ex, devolviendo un mensaje donde se lee el error que se produjo.
Elieser Núñez
[email protected]
10
Debajo de try se escriben todas las instrucciones para conectar con la base de datos, pero debajo de Catch ex As Exception se escribe código para que el programa devuelva un mensaje con el error que se produjo. Descripción de código
La
primera
recibir
la
línea
activa
conexión
a
la
variable
heredándole
CONEc
todos
los
para
que
pueda
procedimientos,
propiedades y funciones de la clase ADODB.Connection; la segunda línea almacena la cadena de conexión, la cual lleva instrucciones clara del proveedor y ubicación de la base de datos con la que vamos a conectar. La tercer línea ejecuta la cadena de conexión, aquí se establece la conexión con la base de datos. La cuarta línea asigne el valor de verdadero ala variable estado, en señal de que la conexión ha sido exitosa. Agregando un procedimiento para cerrar la conexión a la base de datos. Al procedimiento le llamaremos cerrar, y permitirá cerrar
la
conexión a la base de datos. Generalmente se usa en las rutinas de salida del proyecto.
Elieser Núñez
[email protected]
11
Creando el procedimiento Sub Main Ningún procedimiento definido por el usuario es capaz de autoejecutarse, es decir que para que su código sea analizado o ejecutado el procedimiento debe de ser invocado.
Elieser Núñez
[email protected]
12
Desde
el
procedimiento
configurado
para
que
sub
sea
la
main(el primer
cual
más
aplicación
adelante que
será
corra
al
ejecutar el proyecto) llamamos al procedimiento conectar para que realice la conexión; si la conexión se realiza con éxito, en esta caso se ejecutara el formulario de modalidades.
CONFIGURANDO
PARA QUE EL PROYECTO INICIE CON EL PROCEDIMIENTO SUB
MAIN.
Clic derecho en el nombre del proyecto y luego hacemos clic en propiedades.
Aparece la siguiente ventana
En el combo tipo de aplicación seleccionamos aplicación de consola Elieser Núñez
[email protected]
13
La
descripción
formulario
de
inicio
se
cambiara
automáticamente a objeto de inicio.
Seleccione sub main y listo, debe quedar como la siguiente imagen.
NOTA. Si ejecutamos el proyecto, no establecerá la conexión, ya que la base de datos no se encuentra en la ruta especificada, hasta aquí aún no hemos guardado el proyecto, eso significa que aún no tiene estructura. Es justo lo que vamos hacer;
HAGA CLIC EN GUARDAR TODO
APARECE LA SIGUIENTE VENTANA
CAMBIE EL NOMBRE DEL PROYECTO SI LO DESEA
LUEGO HAGA CLIC EN EL BOTON GUARDAR , LISTO
Puede
ir
a
la
dirección
que
muestra
la
imagen
debajo
para
comprobar que se creó la estructura.
Elieser Núñez
[email protected]
14
Nota. Debe de copiar la base de datos (dbtes) en la siguiente dirección que muestra la imagen. Esto porque cuando se establece la conexión, es a este lugar que hace referencia para que busque la base de datos.
Nota. Ejecute el proyecto, si ha seguido los pasos correctamente y sus dedos no han fallado, debe de aparecer el formulario de modalidad, lógicamente vacío, pero si aparece significa que la conexión con la base de datos se ha realizado con éxito.
“Si usted va por el mundo buscando la excelencia, encontrará la excelencia; si va por el mundo buscando problemas, encontrará problemas. O, como dice el proverbio árabe: “Lo que pueda significar un trozo de pan dependerá de que tengas hambre o no” John Grinder
Elieser Núñez
[email protected]
15
APLICACIÓN Nº 1 (FRM-MODALIDAD) Elaborar editar
áreas
una o
aplicación
modalidades
que
permita
tomando
en
agregar,
cuenta
eliminar
los
y
siguientes
aspectos: o Para
poder
agregar
un
registro
es
obligatorio
introducir el código y nombre del área, sino debe de generar un mensaje de error. o El código del botón OK debe de identificar si se trata de
un
registro
nuevo
o
simplemente
es
una
actualización. El
diseño
de
la
interfaz debe
ser
similar la
a
figura
mostrada en la
IMagen
El botón Eliminar, posibilita la eliminación del registro seleccionado en el datagridview1. Agregue los siguientes controles al formulario:
3 grupos de opciones(optiongroup)
2 etiquetas
2 cajas de texto
1 datagridview
Elieser Núñez
[email protected]
16
En seguida proceda a establecer las propiedades requeridas: Form1 Nombre
FrmModalidad
Text
Registro de Modalidades
OptionGroup1 Text OptionGroup2 Text OptionGroup3 Text Label1 Nombre
Lblcodigo
Text
Codigo
Label2 Nombre
Lblnombre
Text
Modalidad
Nombre
Txtcodigo
Nombre
TxtMododalidad
Text1
Text2
Button1 Nombre
BtnOk
Text
Ok
Button2 Nombre Elieser Núñez
BtnAyuda
[email protected]
17
Text
Ayuda
Button3 Nombre
BtnEliminar
Text
Eliminar
Button4 Nombre
BtnSalir
Text
Salir
El
código
asociado
a
la
aplicación
se
muestra
a
continuación:
Iniciamos declarando variables, la variable table es del tipo Recordset (conjunto de registros), podríamos decir que se
trata
Elieser Núñez
de
una
tabla
temporal
que
almacenara
datos
[email protected]
18
provenientes
de
una
consulta,
pero
sus
valores
solo
se
mantendrán en tiempo de ejecución.
El
procedimiento
todas
las
Cargar
modalidades
(),
tiene
existentes
como en
objetivo la
mostrar
cuadricula
(datagridview), este procedimiento se invoca desde el evento load
(se
produce
inmediatamente
después
de
ejecutar
el
formulario). El siguiente código pertenece al botón BtnOK escrito en el evento click.
Elieser Núñez
[email protected]
19
Como puede observar esta codificación tiene muchos comentarios que describen la función de cada línea. Desde este botón podemos agregar
una
nueva
modalidad
como
modificar
una
modalidad
existente. Esto significa que si ingresa un código de modalidad existente y hace cambios en el nombre de la modalidad y luego pulsa en el botón Ok, se producirá una actualización. Una vez pulsado el
botón BtnOk, se realiza una consulta para
comprobar si el código de modalidad ya existe o no. Si existe se dara una operación de actualización de lo contrario los datos serán insertados como nuevos. El siguiente código que presentamos es para eliminar modalidades.
Para
eliminar
una
modalidad
debe
de
seleccionarla
en
el
datagridview. Y luego hacer clic en el botón eliminar. La primer sentencia de este código es para conocer el número de fila seleccionada, la segunda es para conocer el código de área de la fila seleccionada, luego la condición para confirmar si desea
eliminar,
si
contesta
que
sí;
realiza
una
consulta
de
eliminación usando como criterio el código de área, ejecuta la consulta y por ultima vuelve a llamar al método cargar.
Elieser Núñez
[email protected]
20
El siguiente código es para cerrar la aplicación o formulario, me.dispose se utiliza para destruir los identificadores que se usan en la aplicación al momento de cerrarla, me.close cierra el formulario. El código escrito en TXTMODALIDAD_KeyPress tiene la función de validar la tecla enter. Como ya es conocido la tecla que se usa para salir o saltar de un control a otro es Tab, para que la tecla
Enter
realiza
esta
función
es
necesario
escribir
la
instrucción que presentamos en la imagen debajo.
Ejecutemos la aplicación y hagamos las pruebas de escritorio necesarias para determinar el buen funcionamiento. APLICACIÓN NO . 2 (FRM CURSOS)
Elaborar una aplicación que permita agregar, eliminar y editar cursos tomando en cuenta los siguientes aspectos: o En un cuadro combinado debe de seleccionar el área, si hay
cursos
ya
creados
para
el
área
o
modalidad
seleccionada debe de visualizarlos en el datagridview. o Para
poder
agregar
un
registro
es
obligatorio
introducir todos los datos, sino debe de generar un mensaje de error. o El código del botón Agregar debe de identificar si se trata
de
un
registro
nuevo
o
simplemente
es
una
actualización.
Elieser Núñez
[email protected]
21
o Para eliminar debe de seleccionar el registro dentro de datagridview y luego hacer clic en el botón eliminar y listo. El
diseño
planteado
para
esta aplicación es el siguiente.
Agregue los siguientes controles al formulario:
4 grupos de opciones(optiongroup)
5 etiquetas(label)
3 cajas de texto(TextBox)
2 cuadros combinados (combobox)
Una cuadricula(datagridview)
En seguida proceda a establecer las propiedades requeridas: Form1 Nombre
FrmCursos
Texto
Registro de Cursos
Optiongroup1 Texto
Agregar
/
Actualizar
cursos
Elieser Núñez
[email protected]
22
Optiongroup2 Texto Optiongroup3 Texto Optiongroup4 Texto Label1 Nombre
LblTitulo
text
Registro de Cursos
Label2 Nombre
Lblmodalidad
text
Codigo de Area:
Label3 Nombre
Lblcodcurso
Text
Codigo Curso:
Label4 Nombre
Lblncurso
Text
No-Curso:
Label5 Nombre
Lbldescripcion
text
Cantidad secciones
Text1 Nombre
TxtcurCod
Text
Elieser Núñez
[email protected]
23
Text2 Nombre
Txtcurno
Text Text3 Nombre
Txtcansec
Text Combobox1 Nombre
cbomodalidad
Combobox2 Nombre
Cbodescrip
Items
PRIMERO SEGUNDO TERCERO CUARTO QUINTO SEXTO SEPTIMO OCTAVO NOVENO DECIMO ONCEAVO DOCEAVO
DataGridView1 Nombre
Datagridview1
Agregar 4 columnas
Elieser Núñez
[email protected]
24
Para modificar ancho de columnas haga lo siguiente
Aparece la siguiente imagen
Elieser Núñez
[email protected]
25
Seleccione la propiedad y cambie las siguientes propiedades Column1 Nombre
Column1
HeaderText
Codigo
witdh
100
Column2 Nombre
Column2
HeaderText
Curso No
witdh
90
Column3 Nombre
Column3
HeaderText
Descripcion
witdh
100
Column4 Nombre
Column4
HeaderText
Cant_Secc
witdh
90
Button1 Nombre
BtnOk
Text
Ok
Button2 Nombre
Btndeshacer
Text
Deshacer
Button3 Nombre
BtnEliminar
Text
Eliminar
Elieser Núñez
[email protected]
26
Button4 Nombre
Btnayuda
Text
Ayuda
Button5 Nombre
BtnSalir
Text
Salir
El
código
asociado
a
la
aplicación
se
muestra
a
continuación:
Como puede observar este código es muy similar al que usamos en la aplicación de modalidad, tiene muchos comentarios para una mejor comprensión del código. Cuando ejecutemos este formulario se lee el procedimiento cargar con el objetivo de depositar los nombres de las modalidades en el cbomodalidad. Es la función que cumple el procedimiento cargar.
“El viaje es mejor que la llegada” Continuamos codificando
Elieser Núñez
[email protected]
27
Este es otro procedimiento definido por el usuario, su función es depositar todos los cursos registrados en el datagridview1. Este procedimiento es llamado desde el evento load, para llamarlo tan solo basta con digitar el nombre. Listo para ejecutar la aplicación haga las pruebas de escritorio necesarias para comprobar si el funcionamiento del programa va de acuerdo a las necesidades planteada. Guarde el formulario con el nombre de “FrmCursos”.
Seguro que vas bien, continuemos
Elieser Núñez
[email protected]
28
Este código visualiza los cursos según la modalidad seleccionada, como podes ver, los comentarios sobre el código brindan una mejor comprensión de la función del mismo. Este código tiene como objetivo mostrar la descripción de acuerdo al número de curso que se digite.
Complete las condiciones hasta el grado número 12.
Elieser Núñez
[email protected]
29
El siguiente código tiene como proposito agregar o actualizar información sobre los cursos,
El nombre de este control es Cbomodalidad
La explicacion de este codigo es visible en los comentarios asignados al mismo. El siguiente código sirve para eliminar cursos, para hacerlo debe de seleccionar el curso que desea eliminar en el datagridview1 y luego hacer clic en el botón eliminar, el código lo presentamos a continuación:
Elieser Núñez
[email protected]
30
La primer linea declara la variable nn, luego en la segunda se almacena en la variable nn el numero de la fila seleccionada, la tercera asigna el valor de la celda de la primer columna y fila seleccionada. La siguiente hace aparecer un cuadro de mensaje con la interrogante “Eliminar Si / NO”, si contesta que si, se ejecutar la consulta de eliminacion y se ejecuta de nuevo el procedimiento cargarcursos para que ya no se muestre el registro eliminado. El siguiente codigo es para el boton salir, jeje, en realidad no deberia de ponerlo, a estas altura seguro que lo tienes muy bien memorizado.
Para finalizar mostramos el codigo del boton deshacer, cuya funcion es limpiar los datos que se visualizan en los controles de entrada de datos. Cuadros de textos y combos.
Elieser Núñez
[email protected]
31
APLICACIÓN Nº 3 (FRMSECCIONES) Elaborar
una
aplicación
que
permita
agregar,
eliminar
y
editar secciones tomando en cuenta los siguientes aspectos: o Para
poder
crear
una
sección
es
obligatorio
elegir
modalidad, código curso. o El código del botón Crear permite agregar una nueva sección al curso seleccionado o Para edita una sección se realizan los cambios en el datagridview y se hace clic en el botón actualizar o Cuando seleccionemos una modalidad debe desplegar los códigos de cursos de la modalidad seleccionada. o Cuando
seleccionemos
desplegarse curso,
los
datos
descripción
y
un
código
del
curso
cantidad
de como
de
curso el
debe
numero
secciones,
de
estos
controles deben de estar en solo lectura.
Agregue los siguientes controles al formulario: Elieser Núñez
[email protected]
32
5 grupos de opciones(optiongroup)
9 etiquetas(label)
2 cajas de texto(TextBox)
4 cuadros combinados (combobox)
Tres controles numéricos (numericUpdow)
Una cuadricula(datagridview)
4 botones
En seguida proceda a establecer las propiedades requeridas: Form1 Nombre
FrmSecciones
Texto
Registro de Secciones
Optiongroup1 Texto Optiongroup2 Texto Optiongroup3 Texto Optiongroup4 Texto Optiongroup5 Texto Label1 Texto
Modalidad
Label2 Texto
Código de curso
Label3 Texto
Numero de Curso
Label4 Elieser Núñez
[email protected]
33
Texto
Descripcion
Label5 Texto
Cantidad Secciones
Label6 Texto
Año
Label7 Texto
Seccion
Label8 Texto
Jornada
Label9 Texto
Limite Alumnos
TextBox1 Nombre
Txtcurno2
readonly
true
enabled
False
Combobox1 Nombre
cbomodalidad
Combobox2 Nombre
Cbocurcod2
Combobox3 Nombre
Cbodesc
Enabled
False
NumericUpDown1 Nombre
NUDano
Maximun
2100
Minimun
2000
Elieser Núñez
[email protected]
34
NumericUpDown2 Nombre
NUDSEC
Maximun
100
Minimun
0
NumericUpDown3 Nombre
NUDLIMITE
Maximun
100
Minimun
0
Datagridview1 Nombre
Datagridview1
Debe de agregar tres columnas (Seccion, limite-alumnos, jornada) el ancho de cada columna debe de ser de 130. Si no se acuerda verifique en la paginas anteriores para recordar el procedimiento. El código asociado al evento es el siguiente.
El procedimiento cargar realiza una cónsulta de selección en la tabla de modalidades, luego deposita el resultado de la consulta en el combo Cbomodalidad.
Elieser Núñez
[email protected]
35
Este procedimiento busca todos los códigos de cursos en la tabla de cursos según la modalidad seleccionada, primero busca el código de área usando como parámetro de búsqueda el nombre del área. Este código se aplica en el control CBOmodalidad. El código que presentamos a continuación, realiza una consulta en la tabla de cursos, para conocer los detalles del curso (no, descripción, cantidad de secciones). El resultado de esta consulta se deposita en los controles (txtcurno2, cbodesc2, txtnsec2).
El siguiente codigo muestra las secciones que pertenecen al curso seleccionada, este codigo este escrito en el contro Cbocurcod2
Elieser Núñez
[email protected]
36
El siguiente código agrega secciones a la tabla de secciones.
El código que presentamos a continuación, permite actualizar los cambios hechos en x fila del datagridview en la tabla de secciones.
Elieser Núñez
[email protected]
37
El siguiente código sirve para eliminar una sección, para ello debe de seleccionarla en el datagridview y luego hacer clic en el botón eliminar.
Bueno aquí tenemos el código necesario para registrar secciones, si puede codifique algunos controles para validad la tecla enter, esto se hace en el evento Keypress, también puede aplicar otros detalles, esto queda a su criterio.
Elieser Núñez
[email protected]
38
APLICACIÓN Nº 4 (FRMALUMNOS) Elaborar editar
e
una
aplicación
imprimir
listado
que
de
permita
alumnos
agregar,
tomando
en
eliminar, cuenta
los
siguientes aspectos: o Para
poder
agregar
un
alumno
es
obligatorio
elegir
modalidad, código curso y sección. Luego debe de llenar los campos rne, nombre, apellido, sexo, fecha. o El código del botón Add permite agregar los datos del alumno a la tabla de alumnos y al datagridview. o Para editar los datos del alumno, debe de hacer los cambios en la fila del datagridview y luego hacer clic en el botón actualizar. o Cuando seleccionemos una modalidad debe desplegar los códigos de cursos de la modalidad seleccionada. o Cuando
seleccionemos
desplegarse
los
datos
un
código
del
curso
de como
curso el
debe
número
de
curso, descripción estos controles deben de estar en solo lectura. o Cuando
seleccionemos
el
número
de
sección
debe
de
visualizar el límite de alumnos, la jornada y desplegar la cantidad de alumnos registrados en dicha sección; esta lista debe de visualizarse en el datagridview. o Para eliminar un alumno de la base de datos, solo debe de seleccionar la fila donde se encuentran los datos del alumno que quiere eliminar y luego debe de hacer clic en el botón Eliminar. o Desde
aplicación
obtendremos
listado
de
alumnos
visibles en pantalla y también de forma impresa, a través de los botones Vista Previa e Imprimir.
Elieser Núñez
[email protected]
39
Agregue los siguientes controles al formulario:
4 grupos de opciones(optiongroup)
8 etiquetas(label)
1 cajas de texto(TextBox)
4 cuadros combinados (combobox)
Tres controles numéricos (numericUpdow)
Una cuadricula(datagridview)
6 botones
1 statusstip
En seguida proceda a establecer las propiedades requeridas: Form1 Nombre
FrmAlumnos
Texto
Registro de Alumnos
Optiongroup1 Texto Optiongroup2 Elieser Núñez
[email protected]
40
Texto Optiongroup3 Texto Optiongroup4 Texto Label1 Texto
Modalidad
Label2 Texto
Código de curso
Label3 Texto
Numero de Curso
Label4 Texto
Descripción
Label5 Texto
Seccion
Label6 Texto
Año
Label7 Texto
Limite alumnos
Label8 Texto
Jornada
TextBox1 Nombre
Txtcurno2
readonly
true
enabled
False
Elieser Núñez
[email protected]
41
Combobox1 Nombre
Cbomodalidad2
Combobox2 Nombre
Cbocurcod2
Combobox3 Nombre
Cbodesc2
Enabled
False
Combobox4 Nombre
Cbojor
Enabled
False
NumericUpDown1 Nombre
NUDano
Maximun
2100
Minimun
2000
NumericUpDown2 Nombre
NUDSEC
Maximun
100
Minimun
0
NumericUpDown3 Nombre
NUDLIMITE
Enabled
False
Maskedtextbox1 Nombre
Mtxtrne
Mask
9999999999999
Maskedtextbox2 Nombre
Mtxtnombre
Mask
>LLLLLLLLLLLLLLLLLLLLLLLLL
Elieser Núñez
[email protected]
42
Maskedtextbox3 Nombre
Mtxtapellido
Mask
>LLLLLLLLLLLLLLLLLLLLLLLLL
Maskedtextbox4 Nombre
Mtxtsexo
Mask
>L
Maskedtextbox5 Nombre
Mtxtfecha
Mask
00/00/0000
Maskedtextbox6 Nombre
Mtxtalu_tel
Mask
0000-0000
Maskedtextbox7 Nombre
Mtxtalu_email
Mask Datagridview1 Nombre
Datagridview1
El código asociado a la aplicación lo iremos describiendo en partes, este primer código que aparece en la imagen debajo, tiene comentarios en cada línea de código para que tenga una mejor comprensión, el procedimiento cargar (definido por el usuario) se encarga de depositar los nombres de las modalidades en el combo de modalidad, ningún procedimiento creado por el usuario puede auto ejecutarse por eso como puedes observar se le llama desde el procedimiento load, para que al inicializarse el formulario ya se visualicen las modalidades dentro del combo (cbomodalidad2), a continuación presentamos el siguiente código:
Elieser Núñez
[email protected]
43
El siguiente código se produce en el combo (cbomodalidad2) en el evento SelectedIndexChanged (que se produce cuando seleccionamos un elemento del control mencionado). Lo que hace este código es que busca la modalidad seleccionada en la tabla de modalidades y luego compara el código de la modalidad de la tabla de modalidades con el código de modalidad de la tabla de cursos, para obtener los códigos de cursos, los cuales son depositados en el combo (cbocurcod2). Aquí el código:
El código que presentamos a continuación se produce en el combo (cbocurcod2), tiene como objetivo visualizar el número de curso y la descripción del mismo de acuerdo al código de curso seleccionado, el código tiene los comentarios para una mejor comprensión.
Elieser Núñez
[email protected]
44
El próximo código se escribe en el control numérico (NUDSEC) en el evento valuechanged(se produce con cada cambio de valor en el control), tiene como objetivo mostrar el límite de alumnos y la jornada de la sección seleccionada, así como visualizar todos los alumnos que están matriculados en dicha sección. Para que entienda mejor el código me tome el tiempo de escribir comentarios en casi todas las líneas, así que espero le sea de mucha utilidad.
Elieser Núñez
[email protected]
45
El procedimiento limpiar que presentamos a continuación, tiene como objetivo quitar los datos específicos del alumno de los controles que se encuentra en el groupbox2.
El siguiente código se produce en el botón Add, tiene como objetivo agregar registros de alumnos a la tabla de alumnos y al datagridview.la explicación al código se refleja en los comentarios sobre líneas.
Elieser Núñez
[email protected]
46
Este código permite eliminar registros de alumnos, para lograrlo bastara con seleccionar la fila en el datagridview y luego haciendo clic en el botón Eliminar. Este código no permite que se eliminen registros de a;os anteriores al actual. A parte de eliminar el registro de la tabla de alumnos también lo elimina del datagridview.
El código que veremos a continuación permite actualizar o registrar los cambios que se realizan en una fila especifica del datagridview, por ejemplo: si el nombre de un alumno está mal escrito, ubíquese en la fila y columna donde se encuentra el nombre realice el cambio y luego haga clic en el botón actualizar y listo. El código está muy bien descrito.
Elieser Núñez
[email protected]
47
Nos queda por programar el botón Vista Previa y el botón Imprimir, por ahora lo dejamos hasta aquí, ya que primero tenemos que diseñar el informe. Crear un conjunto de registros (dataset) y otras cosas que veremos a continuación. Si trabajas con visual estudio 2008, el cristal report viene integrado, si trabajas con versiones 2010 en adelante tendrás que instalar Crystal Report. Si no le tienes aquí te dejo este enlace para que lo descargues. www.vidaenlinea2010.blogspot.com
Haz que mi esfuerzo y el tuyo valgan la pena. “Siempre adelante” Continuemos, después de descargar Sap Crystal Report 2010 instálelo, no ocupa ciencia para hacerlo, siga la lógica para lograrlo. Una vez instalado, abramos el proyecto que estamos trabajando y realicemos la siguiente configuración para poder utilizar el Crystal Report en versiones mayores a visual estudio 2008. Si tienes visual estudio 2010 como puedes ver en la imagen no aparecen ningún elemento relacionado con cristal report, si lees el mensaje que aparece en el recuadro marcado en la imagen, nos describe porque no aparecen los controles y nos indica cómo hacer para mostrarlos. Para lograrlo haz clic derecho sobre el nombre del proyecto. Luego en la opción propiedades. En la ventana propiedades haz clic en la ficha Compilar.
Elieser Núñez
Haz clic en las opciones de compilación avanzadas
[email protected]
48
Luego cambiamos la versión de NET Framework y seleccionamos “NET Framework 4”
Por ultimo hacemos clic en aceptar y listo ya disponemos de los controles CRYSTAL REPORT en nuestro proyecto.
Observa los controles en la siguiente imagen
Hoy si disponemos de esta herramienta así que ya podemos empezar a diseñar el reporte. Para ello es necesario seguir un proceso el cual te muestro paso a paso a continuación:
Creando el DataSet (conjunto de datos) Un dataset es un conjunto de datos provenientes de consultas, controles y tablas. Lo usaremos para crear los reportes en Crystal Report. Así que manos a la obra.
Como crear un Data Set En el explorador de soluciones, haz clic derecho sobre el nombre del proyecto. Luego seleccionamos la opción Agregar Luego clic en la opción nuevo elemento Aparecerá la siguiente ventana
Elieser Núñez
[email protected]
49
En esta ventana seleccionaremos “Conjunto de datos”, tal como se observa en la imagen. Cambiamos el nombre al dataset, le llamaremos “DsAlumno” como se muestra en la imagen. Luego hacemos clic en Agregar y listo.
Esta es la ventana que nos aparecerá después de hacer clic en agregar, un conjunto de datos vacío, así que el siguiente paso es crear DataTable, para almacenar los datos que queremos visualizar en el informe.
Elieser Núñez
[email protected]
50
Crear un DataTable (tabla de datos) en el DataSet
Ubícate en el Dataset Haz clic derecho y selecciona la opción agregar Luego haz clic en tabla de datos. Aparecerá la ventana que permite definir la estructura de la datatable que estamos creando.
La estructura alumnos que podemos observar es la que crearemos. Así debe de quedar al final, así que comencemos.
Comenzaremos asignándole nombre al datatable, para ello solo haz doble clic sobre la parte superior de la ventana datatable y asígnale el nombre “alumnos”
Para agregar columnas al DataTable: Alumnos. Haz lo siguiente
Haz clic derecho Luego selecciona Después haz clic Digita el nombre ya tenemos columna columnas, tal como
Elieser Núñez
sobre el Datatable: Alumnos la opción agregar en columna de la columna en esta caso: “Nombre” y listo agregada. Asi debe de agregar las demás se observa en la estructura siguiente.
[email protected]
51
El campo nombre, código y teléfono son propios del instituto o colegio, modalidad, curso y sección para identificar donde está matriculado el alumno, los demás datos son del alumno(a). Bien hasta aquí ya tenemos la tabla de datos creada, cabe mencionar que esta tabla solo funciona de forma temporal, es decir que su contenido se destruye al cerrar la aplicación que contiene los datos. Seguro vamos avanzando muy bien, continuemos pues, el siguiente paso es agregar un nuevo elemento (Crystal Report), crearemos el diseño del reporte. Creando el diseño del Informe (Crystal Report)
En el explorador de soluciones, haz clic derecho sobre el nombre del proyecto. Luego seleccionamos la opción Agregar Luego clic en la opción nuevo elemento Aparecerá la siguiente ventana
En el panel de la izquierda elige Reporting
Elieser Núñez
[email protected]
52
Luego selecciona Crystal Report Asígnale nombre en este caso digita “CRalumno” Haz clic en Agregar Aparecerá la ventana Galería de Crystal Report
Selecciona la opción “como informe en blanco” Haz clic en el botón aceptar Ahora si nos debe de aparecer la ventana diseño de informe.
Ya falta poco, el siguiente paso es diseñar el informe, es decir prepararlo tal cual deseamos que se imprima en pantalla o impresora. Así que manos a la obra. Ya verás cómo cada uno de los elementos que hemos ido creando se conjuntan para lograr el objetivo final; que es crear un reporte de alumnos por sección.
Elieser Núñez
[email protected]
53
Una vez dentro del diseñador de informe, lo primero que haremos es agregar campos de la tabla de datos en este caso la que creamos en el dataset (dsalumnos) y cuyo nombre es alumnos. Haz lo siguiente:
En el explorador de campos haz clic derecho sobre Campos de base de datos. Luego clic en asistente de base de datos aparece la siguiente ventana
nos vamos donde dice datos del proyecto y configuramos tal como te muestro en la siguiente imagen
Elieser Núñez
[email protected]
54
lo que hacemos aquí es seleccionar la tabla de alumnos para disponer de sus campos o columnas y así poder agregarlas al informe que estamos creando. Haz clic en el botón Aceptar, para agregar la tabla.
Si quieres comprobar si los campos se agregaron haz clic campos de base de datos y veras que ya dispones de todos los campos de la tabla de datos alumnos. Tal como te muestro en esta imagen.
Ahora vamos arrastrar los campos hacia el diseñador de informe para ir dándole forma al reporte. El proceso es sencillo, haces clic sostenido sobre la columna o campo y lo llevas hasta el informe. Cabe mencionar que los datos que van en forma de lista se ubican en la columna detalle. Generalmente estos datos provienen de controles (listview, datagridview, listbox entre otros) y de consultas sql.
Elieser Núñez
[email protected]
55
Así que los campos que ubicaremos en la columna detalle son (rne, nombrea, apellido, sexo). Agrégalos. deben de quedar como lo veras en la siguiente imagen.
En la sección encabezado de informe. Colocaremos la siguiente información. Aquí debe de ir el nombre del colegio, el código y el número de teléfono, además agregaremos el título “Lista de alumnos por sección”. Este título lo agregaremos desde el panel Cuadro de herramientas con la herramienta o control Objeto de texto de Crystal Report.
Cuando estamos digitando texto en el diseñador de informe debe de aparecer esta barra de herramienta. La cual te permite modificar el tipo y tamaño de la fuente. El encabezado del informe debe de quedarte más o menos así. Trata de que sea igual o mejor.
Elieser Núñez
[email protected]
56
Falta agregar algunos campo como la modalidad, curso y seccion y el a;o, esto lo haremos en la seccion encabezado de pagina.
Así que procedamos a realizarlo. Debe de quedarte parecido al que te muestro en la siguiente imagen.
Fijate que los nuevos elementos que agregamos al informe aparecen duplicados, le aplique negrita a las etiquetas de referencias las cuales agregamos con el control objeto de texto, los que no tienen negrita son los campos que agregamos de la tabla alumnos. También utilice el objeto de línea, para dibujar un par de líneas solo para mejorar la estética o presentación del informe.
En la sección Pie de página haremos que aparezca el número de página: hazlo de la siguiente manera:
En el explorador de campos, selecciona campos especiales Luego elegí el campo Numero de página y arrástralo hasta la sección pie de página. A la par del campo número de página, pon un objeto de texto y escribe “No. Pag. ”
Así quedaría el reporte después de agregar el pie de página.
Elieser Núñez
[email protected]
57
En la sección pie de informe, puedes insertar un campo especial para mostrar la fecha en la que se está imprimiendo el informe. También puedes insertar un campo especial en la sección detalles antes del campo rne, para que enumere los alumnos que estas visualizando en el informe.es opcional al menos inténtalo. Ya tenemos el informe listo. Guardemos todos los cambios en el proyecto, es más deberías de hacerlo cada 10 minutos, y recuerda ir haciendo una copia de seguridad de tu proyecto. Por cualquier problemita, da la casualidad que siempre aparecen. Ya falta muy poco, todo lo que haremos ahora será desde el formulario
Agreguemos un nuevo formulario: asignémosle el nombre de FrmReporte, la función que cumplirá este formulario será de visualizar el reporte en pantalla, a este formulario le agregaremos un control de Crystal Report que permite dicha función. Para lograrlo insertar este control en el formulario que acabamos de crear (FrmReporte) haz lo siguiente:
En el cuadro de herramientas En la seccion Creacion de informes Seleccione el control CrystalReportViewer y arrástralo al formulario.
El formulario debe de quedar tal como se muestra en la siguiente imagen.
Elieser Núñez
[email protected]
58
Listo guardemos los cambios, ahora iremos al formulario de Alumnos (FrmAlumno). En el formulario de alumnos que ya tenemos codificado en un 90%, nos hace falta codificar el botón Vista Previa y el Botón Imprimir. No lo habíamos hecho antes, porque necesitábamos crear el reporte, todo el proceso que acabamos de hacer. Ahora si comenzaremos con el botón Vista Previa.
Elieser Núñez
[email protected]
59
Este es el código que lleva el botón Vista Previa, tiene los comentarios necesarios para su comprensión. Pero de forma general podría decir que define una estructura idéntica a la tabla de datos (Alumnos) que fue creada en el dataset (dsalumno) y que utilizamos en el reporte para asociar los datos provenientes del formulario de alumnos (frmalumnos). La tabla dt recibe esos datos y los envía al reporte, en el reporte los recibe la tabla (alumnos) y de esa forma es que es posible visualizar los datos y mandarlos al reporte. Ahora codificaremos el botón Imprimir
Elieser Núñez
[email protected]
60
Como puedes ver es casi una replica del boton Vista Previa, lo unico cambia es la linea marcada en rojo, que manda el reporte a una ventana de dialogo, donde podemos seleccionar la impresora y el número de copias que deseamos imprimir. Bueno es hora de probar, hazlo… Seguro te apareció este mensaje de error cuando hiciste clic en Vista Previa o Imprimir. En caso de que tengas Visual Estudio 2010, seguro te aparece este error.
Tranquilo(a) tiene solución, para solucionarlo haremos lo siguiente:
En su proyecto abra el archivo app.config aparecerá la siguiente estructura de código:
Elieser Núñez
[email protected]
61
Pues es aquí donde corregiremos el problema, agregando el siguiente código.
El código que debemos agregar es el que aparece dentro del rectángulo de color rojo. Guarde los cambios y ejecute de nuevo, seleccione una sección que tenga alumnos registrados y haga clic en el botón vista previa para poder visualizar el informe.
Elieser Núñez
[email protected]
62
Elieser Núñez
[email protected]
63