Anda di halaman 1dari 14

EJEMPLO 1.

CUADROS DE TEXTO
En este ejemplo vamos a ver la forma de crear cuadros de texto con los datos de vistas Para ello disponemos de una vista con los datos de los alumnos. En el formulario principal vamos a crear un desplegable donde elegiremos el usuario del cual vamos a sacar los datos en el informe. Empezamos creando un nuevo elemento Web Form llamado ejer1.aspx.

CREAR UN DESPLEGABLE FILTRAR LOS DATOS


En el formulario anterior, arrastramos el componente DropDownList para crear el desplegable. Esto es necesario para que, al elegir un elemento del desplegable, muestre en el informe los datos de esa persona. A ese componente, le tendremos que marcar la opcin Habilitar AutoPostBack para que recargue la pgina en cada cambio de seleccin.

Ahora es el momento de cargar los elementos del desplegable. Esta vez, vamos a cargar los datos, tanto del desplegable como del informe, mediante objetos SqlDataSources. Pulsamos sobre la pestaita superior derecha del DropDownList en modo diseo y elegimos Elegir origen de datos.

El nuevo origen de datos va a ser de tipo Base de datos.

Creamos una nueva conexin si no la tenemos creada.

Le damos nombre a la nueva conexin.

Elegimos la sentencia que queremos ejecutar. En nuestro caso seleccionaremos que nos saque todos los datos de alumnos que hay en la vista VREPORT_DATOSALU ordenados por nombre. Y, finalmente, los campos de texto y valor del desplegable.

REPORTVIEWER
A continuacin del desplegable, arrastraremos un nuevo componente ReportViewer con su ScriptManager que ser donde mostremos los datos.

Seleccionando sobre el objeto ReportViewer y viendo sus propiedades, cambiamos la llamada SizeToReportContent a True. Esto har que el ReportViewer se ajuste al tamao que tenga el informe.

INFORME
Ahora es el momento de crear el informe. Pulsamos con el botn derecho en el proyecto y agregamos un nuevo elemento de tipo informe.

Lo primero que debemos hacer con el informe es crear el nuevo conjunto de datos. Para ello, seleccionamos nuevo/conjunto de datos. Como origen de datos seleccionamos el botn nuevo y, dentro de l, escogemos la cadena de conexin creada anteriormente.

Y seleccionamos la vista VREPORT_DATOSALU.

ENLAZAR REPORT CON EL INFORME


Ahora es el momento de informar al ReportViewer de que datos va a pasarle al informe.

Al elegir el informe deseado, vemos que ya se nos crea un ObjectDataSource. Este objeto ha sido creado automticamente cuando le hemos asignado al informe un origen de datos. El objeto hace uso del fichero xsd creado automticamente en app_code. Podramos crear este objeto y crear un nuevo SqlDataSource como hemos hecho con el desplegable, pero para ver todas las posibilidades vamos a utilizar este nuevo objeto.

Si probsemos el formulario ya nos devolvera resultados, pero al informe le llegaran todos los datos sin filtrar. Para ello, primero deberemos de cambiar la funcin del fichero xsd para que recoja un parmetro y nos filtre los datos. Abriendo el fichero DataSet.xsd y seleccionando el mtodo GetData, nos aparecern las propiedades de esa funcin. Pulsando sobre el valor de CommandText vamos a cambiar su valor.

Agregamos un filtro en NIF llamado :pNIF. Podremos probar el resultado ejecutando la consulta.

Ahora, para hacer que el mtodo filtre el valor del desplegable, deberamos ir a las propiedades del objeto y pulsar sobre SelectParameters.

Agregamos un nuevo parmetro con nombre pNIF y que recoja los datos del DropDownList.

Los datos ya son filtrados, pero nuestro problema ahora es que el ReportViewer no refresca los datos. Para ello solo es necesario colocar el siguiente cdigo en el evento SelectedChanged del DropDownList.
ReportViewer1.LocalReport.Refresh();

La sentencia har que el ReportViewer se recargue cada vez que seleccionemos un elemento del desplegable.

CUADROS DE TEXTO
En este ejemplo, solamente vamos a utilizar cuadros de texto, para ver la multitud de opciones que posee.

El cuadro de texto es uno de los elementos ms tiles que poseen los informes. Para utilizarlo, solamente tendremos que ir arrastrando el elemento a la zona de trabajo.

TEXTO ESTTICO
Para escribir cualquier texto esttico, arrastraremos un elemento campo de texto y, haciendo doble Click sobre l, escribiremos el texto que deseamos que tenga.

A este cuadro de texto podremos darle el tamao que queremos que tenga arrastrando los ejes del mismo desde el men de propiedades. En este men podremos asignarle el formato que queremos que tenga.

TEXTO DINMICO
Para agregar texto dinmico tendremos dos posibilidades: Arrastrando uno de los datos del origen de datos sobre el informe, se crear un cuadro de texto con la expresin necesaria para mostrar el dato. Arrastrando uno de los datos de origen sobre un cuadro de texto.

TEXTO ESTATICO Y TEXTO DINMICO


Al arrastrar un cuadro de texto y escribir texto esttico, podremos arrastrar un elemento del origen de datos entre el texto y, de esa forma, el texto se adaptar al valor del dato.

EXPRESIONES
Para escribir una expresin o funcin en un cuadro de texto, tendremos que pulsar con el botn derecho sobre el cuadro y seleccionar Expresin.

Aqu podremos escribir multitud de expresiones ayudados por su asistente. Como ejemplo vamos a crear una expresin para que el cuadro de texto muestre el nombre y el apellido separados por un espacio. Si seleccionamos conjunto de datos, veremos todos los datos disponibles, y pulsando doble Click en el deseado, se nos colocar en el valor de la expresin.

Para concatenar, en Operadores/Concatenacin, veremos que existen dos posibilidades, las cuales son idnticas para cadenas.

Completando la expresin quedar de la siguiente forma:

Este tipo de expresin no tienen mucho sentido porque se puede hacer lo mismo arrastrando los elementos. Vamos a ver un ejemplo en el que tenga sentido. Tenemos el siguiente cuadro de texto y deseamos que, si el usuario no tiene valor en la base de datos, no se escriba el texto APELLIDO2.

La expresin resultante quedar de la siguiente forma:

Qu pasara ahora si quisiramos poner en negrita el valor de los datos? No podramos seleccionar el texto deseado y darle formato porque en el cuadro de texto aparece <<expr>>. Existe la posibilidad de escribir el valor del cuadro de texto en HTML. Para ello debemos de seleccionar sobre la expresin y, posteriormente, volver a pulsar encima. Al hacerlo, aparecer la propiedad MarkupType, la cual pondremos a HTML. Al hacer esto tendremos que modificar la expresin de la siguiente forma:

NOTA: Los retorno de carro podramos dejarlos como Chr(10).

PASO DE PARMETROS
Hay veces que necesitamos pasar parmetros al informe que no vienen dados desde base de datos. Por esa razn existe la posibilidad de crear Parmetros de entrada. Para ello iremos al men de Datos de informe y elegiremos Nuevo/Parmetro.

Al crear el parmetro podremos elegir el nombre y el tipo de dato, as como los valores disponibles y predeterminados.

En nuestro ejemplo le daremos el nombre Parametro1 de tipo texto y dejaremos el resto por defecto. El nuevo parmetro se nos crear en el informe como un dato ms, y podremos hacer con l lo mismo que con los datos del DataSet (arrastrar al informe, utilizarlo en las expresiones,).

Para pasar el parmetro desde el ReportViewer tendremos que utilizar cdigo. En el mtodo de SelectedChanged del desplegable utilizaremos las siguientes instrucciones:
//Ser el valor del parmetro (podemos pasar lo que queramos) int valor = DropDownList1.SelectedIndex + 1; //Array que contendr los parmetros ReportParameter[] parameters = new ReportParameter[1]; //Establecemos el valor de los parmetros parameters[0] = new ReportParameter("Parametro1", valor.ToString()); //Pasamos el array de los parmetros al ReportViewer ReportViewer1.LocalReport.SetParameters(parameters); //Refrescamos el ReportViewer ReportViewer1.LocalReport.Refresh();

Para probarlo vamos a arrastrar el parmetro al informe y ver su valor. Podemos apreciar que la primera vez que lanzamos la pgina el informe no se crea. Esto es debido a que la primera vez no estamos pasando ningn parmetro.

Para corregir este error tendremos que poner tambin el anterior cdigo en un evento del DropDownList que se ejecute despus de haber cargado sus datos, como por ejemplo el evento DataBound.

OCULTAR ELEMENTOS
Tal como hemos hecho anteriormente con una parte de un cuadro de texto, vamos a hacer que un elemento (cuadro de texto, imagen,) se oculte para unos usuarios y se muestre para otros. Vamos a hacerlo mediante el valor del parmetro. Si el parmetro vale 1 mostraremos un cuadro de texto que pondr Eres el primero de la lista, si el parmetro vale 4 mostraremos otro cuadro diferente que ponga Eres el ltimo de la lista y, para los otros dos casos, mostraremos una imagen. Creamos los dos cuadros. Se podra hacer con uno y utilizar expresiones, pero vamos a aprender a ocultar los cuadros de texto de otra forma diferente.

Ahora, arrastramos la imagen y la importamos el informe. Ms adelante, en otro ejemplo, veremos todo lo que nos permite este elemento.

Pulsando con el botn derecho sobre la imagen y seleccionando la pestaa Visibilidad, tenemos la posibilidad de mostrar u ocultar en funcin de una expresin. Para este ejemplo utilizaremos la expresin:

Para los cuadros haremos lo mismo pero modificando la expresin:

HACER QUE LOS CUADROS DE TEXTO NO CAMBIEN DE TAMAO


Hay veces que necesitamos mantener los cuadros de texto fijos y, que su tamao no vare en funcin del valor de las variables de su interior. Esto puede ocasionar ms de un quebradero de cabeza, ya que en informes donde se necesita un cierto diseo, puede ocasionar desplazamientos inoportunos. Para ello utilizaremos dos caractersticas de los cuadros de texto: -CanGrow: Indica si el elemento del informe aumenta automticamente de tamao para alojar un valor largo. -CanShrink: Indica si el elemento del informe disminuye automticamente de tamao para alojar un valor corto.

Anda mungkin juga menyukai