EJEMPLO 5. SUBINFORMES

Documentos relacionados
EJEMPLO 2. TABLAS CREAR DESPLEGABLE PARA FILTRAR LOS DATOS

EJEMPLO 4. MATRIZ CREAMOS EL INFORME

EJEMPLO 1. CUADROS DE TEXTO

UNIDAD 4. MODIFICAR TABLAS DE DATOS

Operaciones con bases de

ACTIVIDADES BASE DE DATOS ACCESS 2007

OPENOFFICE IMPRESS. Creación básica de presentaciones digitales

FUSIÓN DE DOCUMENTOS PROCEDENTES DE OTRAS APLICACIONES DEL PAQUETE OFIMÁTICO UTILIZANDO LA INSERCIÓN DE OBJETOS DEL MENÚ INSERTAR

Manual Word Plantillas y Formularios

img.1 Comenzar a crear nuestro player

Creación de formularios en documentos DE WORD 2.007

Manual Word Macros y Elementos rápidos

TECNOLOGÍA E INFORMÁTICA

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

1. Creamos un nuevo proyecto del tipo Aplicaciones de Windows Forms (Visual C#) en Visual Studio.

TRABAJAR OBRAS COMO TALLER MECÁNICO

Manual Gran Hotel. En principio, una estacionalidad no tiene el fin marcado, puede ser válida para siempre.

Consejos y Técnicas Profesionales NIVEL PRINCIPIANTES - AVANZADOS

Crear el cartel de la película "El Legado de Bourne

Índice de contenido Crear un tema nuevo...3 Editar un tema...6 Insertar diferentes elementos en el body...7 Insertar una imagen...

Crear película con memoriesontv 3.0.2

Manual para la edición con Techsmith Camtasia Studio

DEMOSTRACION DE UNA APLICACIÓN N-CAPASCON JAVA- POSTGRESQL

1.- INTRODUCCIÓN. Creación de bases de datos bajo software libre con OpenOffice Base Tema 6.

Práctica #1 Crear Base de Datos

MANUAL PREZI. Elaboración: Ing. Jocabed Bautista. 1. INGRESAR A LA PAGINA: prezi.com y dar click en Registrarse

E j e r c i c i o n º 12 Notas de Alumnos

CREACIÓN DE UNA PÁGINA WEB CON JIMDO

MANUAL Y ACTIVIDADES. Edublogg.wordpress.com. Caeiro Fábregas - Pérez

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

Combinación de correspondencia en Microsoft Office Word 2003

Ayuda para obtener el archivo para presentas la declaración de compras y ventas, modelo 347 de la agencia tributaria.

PEMAT PETICIONES DE MATERIAL. Manual Usuario Versión 1.0 Fecha de revisión 02/24/2012 Realizado por Equipo de Desarrollo PHP. PEMAT v1.

Terceros Ekon Sical. Departamento de Informática

Cómo crear un Juego de preguntas en Educamóvil

1.- CREAR UNA BASE DE DATOS CON ACCESS

MANUAL PARA CREAR NUESTRA PAGINA WEB EN DREAMWEAVER

SONIDO DIGITAL. EDITORES DE SONIDO Y SECUENCIADORES

Calificaciones de Moodle

Insertar y eliminar elementos

Tipos de datos estructurados

Seleccionamos el programa Excel. Nos aparece la pantalla del programa

MANUAL DE LA HERRAMIENTA GENERADOR DE CALENDARIOS

Manual Power Point Trabajar con diapositivas

3. CREAR FORMULARIOS 3.2. APLICAR OPCIONES DE DISEÑO DE FORMULARIOS

MANUAL APLICACIÓN RESTAURANTMENU MOVIL Y ESCRITORIO

UNIDAD 9 COMBINAR CORRESPONDENCIA

CGPE Manual de Configuración del Correo Electrónico. Manual para la configuración del correo electrónico en Outlook Express

DISTRITO de A.P.S. CONDADO-CAMPIÑA. SERVICIO ANDALUZ DE SALUD. CONSEJERÍA DE SALUD.

Manual de ayuda de la herramienta de comunicación privada Correo Interno

DAVID DIAZ VALDIVIA INFORMATICA APLICADA I

EXCEL 2007 BÁSICO REV: 20/05/11

GOOGLE SITES INICIAL

3. Lógate con la misma contraseña que la de tu correo electrónico

Configuración Nokia C7

Temario Access Nº apartado Título apartado Tipo apartado

1.- CREACIÓN DE CONSULTAS.

TEMARIO CURSO ACCESS 2007

Manual / Guía de administración Componente DOCman.

PowerPoint 2010 Edición del contenido

MANUAL DE GESTIÓN ASM

Creación y manejo de la base de datos y tablas

CORPORACIÓN UNIVERSITARIA EMPRESARIAL ALEXANDER VON HUMBOLDT Facultad de Ciencias de la Salud Informática I Combinación de correspondencia

Técnicas informáticas: El BLOG. José Ramón López

La primera vez que selecciona el nombre de usuario el programa pide introducir la nueva clave.

Unidad 10. Los formularios (I)

Sistema de Gestión y almacenamiento de archivos en el Campus Virtual

1. Pasos iniciales: Una vez localizado el programa en Aplicaciones/oficina/Presentaciones, creamos una presentación vacía.

MICROSOFT EXCEL MICROSOFT EXCEL Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

ACCIONES Photoshop. Primero explicaremos brevemente que son las Acciones de Photoshop y cómo utilizar esta interesante utilidad. Acciones Photoshop

CREAMOS UN PAQUETE DE ACTIVIDADES JCLIC PASO A PASO LOS COLORES. EDUCACIÓN INFANTIL

Curso de OpenOffice Impress. Mg. Eva M. Vásquez Valle

9.1. Insertar filas en una hoja

Combinación DE CORRESPONDENCIA MEDIANTE DOCUMENTO DE WORD

Cómo crear el objeto de la Máquina del tiempo en Eduloc

NERO BURNING ROM. Manual de grabación. By CriCri

Materia: NTIC x Profesor: Alejandro J. Alfonso

EXCEL EJERCICIO 18 TABLAS DINÁMICAS Y GRÁFICOS DINÁMICOS. Tablas dinámicas

Personal. Partes de Trabajo WhitePaper Agosto 2008

CLASE 1 de VISUAL BASIC (V6)

OSD - MIGRACIÓN DE WINDOWS XP A WINDOWS 7 en SCCM 2012 R2

Al entrar en Excel nos aparecerá la siguiente ventana:

Importa tus datos a ClassicGes 6 desde otras aplicaciones de gestión

Ejercicio 1. Formularios Maestro/Detalle.

9.- EL PATRÓN DE DIAPOSITIVAS

MICROSOFT POWERPOINT MICROSOFT POWERPOINT Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 3: Elementos esenciales del formulario

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

MÓDULO DE ANÁLISIS DE DATOS - GUIA BÁSICA DE USUARIO

COMBINAR CORRESPONDENCIA

Ubuntu Server HOW TO : SERVIDOR DE IMPRESORAS

... Bases de datos con Excel CAPÍTULO Creación de una Base de Datos

CONSTRUCCIÓN DE GRÁFICOS CON EXCEL

Demostrar los pasos para la creación y aplicación de elementos multimedia al sitio Simplify.

Cómo obtener el certificado digital?

Manual para configurar el correo electrónico institucional

Transcripción:

EJEMPLO 5. SUBINFORMES En este ejemplo vamos a ver la forma de crear un informes dentro de otro. Para ello disponemos de una clase, llamada ClasePedidos, con los pedidos de una tienda, y la clase ClaseLineas, con los artículos de cada pedido. Empezamos creando un nuevo elemento Web Form llamado ejer5.aspx. Para este ejercicio vamos a crear una tabla con los pedidos y dos botones. Al pulsar sobre uno, veremos el informe con los artículos de ese pedido y, al pulsar sobre el otro, veremos el pedido con los artículos como subinforme. Empezamos creando la tabla, para ello, arrastramos un componente GridView al formulario. Para asignarle los datos, vamos a su evento Page_Load y insertamos el siguiente código: if(!ispostback) GridView1.DataSource = new ClasePedidos().Todos(); GridView1.DataBind(); Para crear los dos botones vamos a crear una nueva columna del tipo Template y, en ella, insertar dos botones.

Pulsamos sobre Agregar nueva columna del menú del GridView y seleccionamos el tipo TemplateField : Ahora, en el mismo menú anterior, pulsamos sobre Editar plantillas y agregamos dos botones a la plantilla. A uno le ponemos como nombre Pedido y al otro Articulos. Importante: Pulsamos doble Click en cada botón para crear el evento de cada botón para posteriormente utilizarlo. Para finalizar de editar la plantilla seleccionamos Terminar edición de plantilla.

CREAMOS EL INFORME A continuación, vamos a crear el informe de artículos (Botón derecho sobre el proyecto y Agregar nuevo elemento de tipo informe) y le ponemos como nombre InformeArticulos. A este elemento le vamos a añadir un nuevo conjunto de datos llamado DataSetArticulos. Para añadir el nuevo conjunto de datos hay que darle a la opción añadir de los datos del informe. Una vez añadidos los datos, arrastramos un elemento tabla y le asignamos todos los datos excepto IdPedido. ENLAZAMOS LOS DATOS Ahora vamos a crear un nuevo formulario llamado articulos.aspx con un ReportViewer y un ScriptManager. Este nuevo formulario recibirá el pedido por una variable de session y filtrará los artículos.

En el evento Page_Load de este formulario agregamos el siguiente código: if(!ispostback) if(session["pedido"]!= null) string pedido = (string) Session["pedido"]; Session.Remove("pedido"); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.DataSources.Add( new ReportDataSource("DataSetArticulos", new ClaseLineas().Filtro(int.Parse(pedido)))); ReportViewer1.LocalReport.ReportPath = "InformeArticulos.rdlc"; ReportViewer1.LocalReport.Refresh(); Para que esto funcione, solamente nos queda insertar el código del botón. Será el siguiente: Button boton = (Button)sender; GridViewRow fila = (GridViewRow)boton.NamingContainer; string pedido = fila.cells[1].text; Session["pedido"] = pedido; Response.Redirect("articulos.aspx"); CREAMOS EL INFORME DE PEDIDO Ahora vamos a crear el informe que contendrá, como subinforme, el informe anteriormente creado. Creamos un nuevo informe llamado InformePedido y le agregamos el informe de datos de la ClasePedidos(el nuevo origen de datos se llamará DataSetPedidos).

El nuevo informe tendrá esta forma: Pulsando con el botón derecho sobre el subinforme y seleccionando Propiedades del subinforme podremos cambiar sus propiedades. De momento, lo más importante es ponerle en nombre del informe que debe abrir. Este nombre lo deberemos poner donde dice Usar este informe como un subinforme (no se pone la extensión del informe). Ahora, vamos a crear la página que va a ser la encargada de mostrar el informe. A este nuevo formulario le llamaremos pedidos.aspx y en el agregaremos un ReportViewer y un ScriptManager.

En el evento Page_Load tendrá en siguiente código: if (!IsPostBack) if (Session["pedido"]!= null) string pedido = (string)session["pedido"]; Session.Remove("pedido"); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.DataSources.Add( new ReportDataSource("DataSetPedidos", new ClasePedidos().Filtro(int.Parse(pedido)))); ReportViewer1.LocalReport.ReportPath = "InformePedidos.rdlc"; ReportViewer1.LocalReport.Refresh(); Ahora, nos falta insertar el código del botón: Button boton = (Button)sender; GridViewRow fila = (GridViewRow)boton.NamingContainer; string pedido = fila.cells[1].text; Session["pedido"] = pedido; Response.Redirect("pedidos.aspx");

EVENTO SUBREPORTPROCESSING Si comprobamos el resultado sin el elemento subinforme funcionará correctamente, pero si lo hacemos con él, fallará. Esto es debido a que no le estamos enlazando los datos al subinforme. Para hacerlo tendremos que crear el siguiente evento y añadírselo al informe. En pedidos.apsx.cs agregamos el siguiente evento: void SubreportProcessingEventHandler(object sender, SubreportProcessingEventArgs e) e.datasources.add( new ReportDataSource("DataSetArticulos", new ClaseLineas().Todos())); Para agregar el evento, el código del Page_Load quedará así: if (!IsPostBack) if (Session["pedido"]!= null) string pedido = (string)session["pedido"]; Session.Remove("pedido"); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SubreportProcessingEventHandler); ReportViewer1.LocalReport.DataSources.Add( new ReportDataSource("DataSetPedidos", new ClasePedidos().Filtro(int.Parse(pedido)))); ReportViewer1.LocalReport.ReportPath = "InformePedidos.rdlc"; ReportViewer1.LocalReport.Refresh(); Ahora, el subinforme funciona, pero no filtra los datos. Para conseguir que los filtre habrá que pasarle un parámetro al componente del informe y al subinforme. Vamos primero al subinforme. Abrimos InformeArticulos.rdlc y agregamos un nuevo parámetro de tipo entero llamado pedido.

Ahora falta pasárselo desde el componente Subinforme. Para ello, abrimos InformePedidos.rdlc y abrimos el panel de las propiedades del subinforme. En su solapa Parámetros añadimos uno con el mismo nombre y con valor el dato IdPedido. Ya solamente nos queda decirle al subinforme, en el momento de pasarle los datos, nos filtre por el valor del parámetro. Así que cambiamos el código del evento SubReportProcessingEventHandler por el siguiente: e.datasources.add( new ReportDataSource("DataSetArticulos", new ClaseLineas().Filtro(int.Parse(e.Parameters[0].Values[0]))));

PROBLEMAS CON EL PARÁMETRO El botón ahora funciona correctamente, pero si nos fijamos, el otro botón no muestra datos ya que espera un parámetro y no se lo estamos pasando. Para que funcione, basta con ir a las propiedades del parámetro de InformeArticulos.rdlc y decirle que el parámetro permita nulos.