You are on page 1of 8

EJEMPLO 2.

TABLAS
En este ejemplo vamos a ver la forma de crear tablas con los datos de clase de objetos.
Para ello disponemos de una vista con los datos de los alumnos y los cursos que han realizado.
En el formulario principal vamos a crear una lista para poder filtrar los datos que sacaremos
por el informe.
Empezamos creando un nuevo elemento Web Form llamado ejer2.asp.


CREAR DESPLEGABLE PARA FILTRAR LOS DATOS
En el formulario anterior! arrastramos el componente "rop"o#n$ist para crear la lista y
habilitamos su autopostbac%. Esto es necesario para que! al cambiar de elemento en la lista! se
llame de nuevo al formulario y se filtren los datos.


&hora es el momento de car'ar los elementos del listado. Esta vez! vamos a car'ar los datos!
tanto de la lista como del informe! de forma manual (por c)di'o*.
Pulsamos sobre el "rop"o#n$ist en modo dise+o y en sus eventos hacemos doble clic% en
$oad. ,os aparecer- la funci)n que se ejecuta cuando se car'a el componente.

En el nuevo evento creado insertamos el si'uiente c)di'o.
//Para que se cargue solamente la primera vez
if (!IsPostBack)
{
//Cargamos los datos
DropDon!ist"#Data$ource % ne Clase&lumnos()#'iltrar((())
//*legimos el campo de te+to para el desplega,le
DropDon!ist"#Data-e+t'ield % (./0B1*()
//elegimos el campo de valor para el desplega,le
DropDon!ist"#Data2alue'ield % (.I'()
//Pintamos el desplega,le
DropDon!ist"#DataBind())

//Insertamos una opci3n en el primer lugar del desplega,le
DropDon!ist"#Items#Insert(45 ne !istItem((66-odos los alumnos66(5 (()))
7


&hora ya tenemos creado el desple'able que va a filtrar los datos! por lo tanto empecemos a
crear el informe.






REPORTVIEWER
& continuaci)n del desple'able! arrastraremos un nuevo componente /eport0ie#er con su
1cript2ana'er que ser- donde mostremos los datos.

1eleccionando sobre el objeto /eport0ie#er y viendo sus propiedades! cambiamos la llamada
1ize3o/eport4ontent a 3rue. Esto har- que el /eport0ie#er se ajuste al tama+o que ten'a el
informe.
INFORME
&hora es el momento de crear el informe. Pulsamos con el bot)n derecho en el proyecto y
a're'amos un nuevo elemento de tipo informe.


$o primero que debemos hacer con el informe es crear el nuevo conjunto de datos. Para ello!
seleccionamos nuevo5conjunto de datos6 y esta vez seleccionamos la opci)n 'lobal. En
'lobal es donde tendremos todas nuestras clases.
1olamente faltar7a seleccionar el m8todo ele'ido! que en nuestro ejemplo ser- Filtrar de
4lase&lu4ursos.


&rrastramos el elemento tabla e introducimos en ella todos los campos de la clase.
Para arrastrar m-s campos de los tres que hay por defecto tenemos dos opciones.
9:ot)n derecho sobre una columna y seleccionar insertar columna.
9&rrastrar hasta la tabla el nuevo campo y soltar al ver que la columna se pinta de azul como
en la si'uiente ima'en.


&s7 es como queda nuestro informe.

&hora solamente queda enlazar los datos del /eport0ie#er al informe.








4reamos una funci)n que ser- la encar'ada de actualizar el /eport0ie#er
private void &ctualizar1eport()
{
//1eco8o el valor del desplega,le
string valor % DropDon!ist"#$elected2alue)

//!impio los enlaces del 1eport2ieer
1eport2ieer"#!ocal1eport#Data$ources#Clear())
//&signo el nuevo enlace de datos
1eport2ieer"#!ocal1eport#Data$ources#&dd(ne 1eportData$ource((Data$et"(5 ne
Clase&luCursos()#'iltrar(valor))))
//&signo el nuevo informe al 1eport2ieer
1eport2ieer"#!ocal1eport#1eportPat9 % (1eport:#rdlc()
//Pinto el 1eportvieer
1eport2ieer"#!ocal1eport#1efres9())
7

En el evento $oad del /eport0ie#er hacemos una llamada a &ctualizar/eport para hacer una
car'a inicial.
//$i no lo ponemos entra en un ,ucle de,ido a que el 1eport2ieer utiliza llamadas a8a+ internamente
if (!IsPostBack)
{
&ctualizar1eport())
7

;a solo queda hacer que el /eport0ie#er se actualice por cada cambio del desple'able. Para
ello llamamos a la funci)n &ctualizar/eport desde el m8todo <nde4han'ed del "rop"o#n$ist.
protected void DropDon!ist";$electedInde+C9anged(o,8ect sender5 *vent&rgs e)
{
&ctualizar1eport())
7

GRUPOS
=ay veces que necesitamos a'rupar los datos en 'rupos para mostrar los datos mas
ordenados.
Para a're'ar un 'rupo a nuestro informe! arrastramos el campo hasta el panel de 'rupo de
filas situado en la parte de abajo del -rea de trabajo. 1it>alo encima de la fila denominada
detalles.

Podemos a're'ar tantos 'rupos como queramos.
&l a're'ar el 'rupo se crear- una nueva columna de 'rupo.


TOTALES
Podemos a're'ar totales dentro de un 'rupo o de forma 'lobal a todos.
Para ello! hay que ir al panel de 'rupo mencionado anteriormente u seleccionar la opci)n
a're'ar total.
1i lo hacemos al elemento detalles se crear- el total dentro de los elementos del 'rupo. 1i lo
hacemos al 'rupo se crear- el total 'lobal a todos los elementos.





FORMATO FECHA
4omo vemos en la >ltima ima'en! las fechas no tienen el formato que deseamos
(""5225;;;;*. Para conse'uir esto! tendremos que hacer uso de una de las propiedades de
los cuadros de teto.
1eleccionamos con el bot)n derecho el campo de fecha y ele'iremos Propiedades de cuadro
de teto6 en su men>.

?na vez en las propiedades! en la solapa ,>mero podremos ele'ir el formato que deseamos
para el elemento.



DISEO TABLA
1olo con darle el aspecto que deseemos al informe (desde las propiedades Font o :ac%'round*
este dise+o se trasladar- a nuestro pdf! Ecel6

TABLAS EN DISTINTAS HOJAS DE EXCEL
Para poder mostrar varias hojas en Ecel debemos utilizar la propiedad Pa'e:rea% de la
tabla. 0eamos un ejemplo.
&l ejemplo que tenemos le colocamos otra tabla posteriormente con al'unos datos.

1i observamos el resultado! el Ecel resultante nos mostrar- una tabla encima de otra. Para
poder separarlas en varias hojas! seleccionamos la primera tabla y! a su propiedad
Pa'e:rea%! le damos el valor end.

Esto har- que el resultado nos lo muestre en ambas hojas o! en caso de Word o pdf! cambie de
hoja al finalizar la primera tabla.

You might also like