Fran Diaz

Reporting Services, Business Intelligence, tecnologías Microsoft y otros

Email Notifications

Recent Posts

Tags

News

Community

Comunidades

  • Foro MSDN Español: Colaborador
  • CartujaDotNet

Webs Amigas

Archives

May 2007 - Artículos

Ajax Ya!!

Aquí os dejo una página con un tutorial sobre ajax. Este está dividido en una serie de temas con la descripción de cada uno, un ejemplo y en algunos temas con un ejercicio a resolver. Eso sí, los ejemplos para enlazar el JavaScript están para php nada más.

Enlace: http://www.ajaxya.com.ar/

Entre otros también podréis visitar: HTML Ya, JavaScript Ya, CSS Ya, PHP Ya y DHTML Ya

Espero que os sea de utilidad

Un Saludo

Posted: 15/5/2007 9:27 por Fran Díaz | con 2 comment(s)
Archivado en:
How To SSRS 2005: Expandir o Contraer las páginas de un informe de forma dinámica.
Cuando queremos expandir o contraer un grupo de un informe tan solo tenemos que haber creado un grupo para ello. Este nos crea solito la agrupación por el campo/s que le hayamos indicado. Hasta ahí todo es sencillo si no necesitamos hacer nada más. Pero…¿Qué pasa si queremos que se expanda/contraiga todas las páginas de nuestro informe?. Pues la respuesta es bien fácil, tienes dos opciones: la primera, es la más facil pero más incómoda: es abrir a mano  todas las pestañas, cuando hayamos generado nuestro informe. La segunda es meter una expresión que nos haga esa funcionalidad. Evidentemente la segunda es  más adecuada para mi proyecto, y a continuación explicaré como la implementé y que obstáculos me encontré al hacerlo. Lo primero es preparar los campos necesarios del informe para añadirle la expresión necesaria. Por un lado tenemos que controlar que cuando se expanda/contraiga la imagen debe de estar acorde. Es decir, un más(+) para cuando está contraido o un menos(-) para cuando este está expandido. ¿Tenemos que indicarle la dirección de la imagen?, no, Reporting Services tiene una propiedad que controla eso. Esa propiedad se llama InitialToggleState con tres valores posibles a introducir: Collapsed, Expanded o Expresión. En Expresión lo que haremos será decirle mediante un IIF que ponga la imagen de una forma u otra. Al llegar aquí surgen dos nuevas preguntas:·         ¿Cómo se lo indico?. Pues para ello nos creamos un parámetro de tipo Boolean(en mi caso rptCONTRAER) y  luego creamos la sentencia IIF de la siguiente forma: IIF(PARAMETERS!rptCONTRAER.Value,False,True). Esta se la añadimos a la propiedad InicialToggleState. ·         ¿En cual de todos los campos debo meter esta expresión?. Pues en el campo por el cual hemos hecho la agrupación.

 

Lo segundo que debemos de hacer es decirle que se expanda o se contraiga. Bueno, aquí tuve algunos problemillas ya que no es tan fácil de ver. Para ello utilicé una tabla y esta tiene una cabecera y un detalle. Las propiedades de cada control(en este caso un textbox) del detalle sale en la ventana de propiedades. Para agregar nuestra expresión debemos de pulsar al principio de la tabla con el botón derecho y elegir editar grupo. Nos saldrá una ventana de Agrupación de detalles. Dentro de esta nos vamos a la pestaña Visibilidad y en Visibilidad Inicial pulsamos en Expresión y añadimos la expresión anterior (PARAMETERS!rptCONTRAER.Value,True,false).

 

 ¿Por qué si es el mismo valor del parámetro van distintas opciones de true y false?. Pues bien, esto es así por la definición del informe. Si vemos el código que genera para cada propiedad Reporting Services, veremos el porqué:  

Para la Imagen, le estamos indicando el estado inicial. En mi caso es cerrado que equivale a un false.

 <ToggleImage>                            <InitialState>=iif(PARAMETERS!RPTCONTRAER.Value,false,true)</InitialState></ToggleImage> 

Para el caso del detalle es diferente, ya que lo que se pide es el estado de la visibilidad del detalle, esta se representa si está oculta o no. En este caso es true porque quiero que esté contraido por defecto.

 <Visibility>            <Hidden>=iif(PARAMETERS!RPTCONTRAER.Value,true,false)</Hidden></Visibility> Luego por último, me sobrescribí (como sobreescribirlo) el control ReportViewer que trae Visual Studio en cualquiera de sus sabores, con un botón nuevo llamado btnExpandir. Al botón le añadí el siguiente código:

// Variable boleana que me controla que valor debo de poner en el parámetro.Contraer = ¡Contraer;
// ReportParameter paramentro = new ReportParameter(“rptCONTRAER”,Contraer,false); óMiReportViewer.LocalReport.SetParameters(parametro); ó MiReportViewer.ServerReport.SetParameters(parametro); //Refresco mi Report.

MiReportViewer.RefreshReport();


Y Listo, con esto ya contraemos o expandimos todas las páginas de nuestro informe.

Espero que os sea de utilidad.

 

Un Saludo