logo
small logo
  • Producto
  • Comprar
  • Ayuda
  • Blogs
  • Consola de usarios Ayuda
    • en
    • pt
    • es
    • de
    • pl
    • JP
    • ZH
  • Página principal
  • /
  • Blogs
  • /
  • Cómo mostrar un subinforme basado en las condiciones del informe padre
  • Formato de MS Word vs. Open Document Text, ¿cuál es mejor?

    19 de octubre de 2020

    Hablando de editores de texto, presentamos inmediatamente corifeo como Microsoft Word, que durante muchos años

    read more
  • ¿Quiere generar tablas para un usuario: Excel u OpenOffice Calc?

    8 de octubre de 2020

    Tablas. Durante siglos, se han utilizado para presentar datos similares para llevar registros, contar cantidades

    read more
  • Cómo elegir los valores principales en la matriz

    22 de abril de 2021

    El artículo es relevante hasta la versión 2022.1. FastReport.NET tiene una buena herramienta para representar los

    read more
  • Cómo conectarse a Elasticsearch

    10 de noviembre de 2021

    Ahora los productos FastReport .NET, Core, Mono y OpenSource permiten conectarse a Elasticsearch. Elasticsearch es

    read more
  • ¿Cómo proteger su PDF?

    30 de noviembre de 2020

    El Día de la Protección de Datos decidimos preparar un artículo sobre la protección de

    read more

Cómo mostrar un subinforme basado en las condiciones del informe padre

8 de enero de 2020

Muchos generadores de informes modernos le permiten itegrar otro informe, así llamado subinforme. ¿Para qué? Por ejemplo, para hacer la proyección del informe más cómoda. Si el informe principal y el subinforme son de un tipo diferente, es más conviniente crearlos separadamente.

Además, dividir el informe en partes de esta manera puede gestionar la estructura del informe según las condiciones. Por ejemplo, muestra alguna información nueva en el informe principal, pero según estos datos o algún parámetro del informe, se seleccionará uno de varios subinformes. Esto hace su informe más universal. No hay necesidad de crear varios informes en cada caso particular.

El usuario del generador de informes ActiveReports ha encarado este problema:

Tengo un informe con dos subinformes. Quiero arrancar o no arrancar cada informe a base de una condición. ¿Es posible?

La respuesta del soporte técnico:

Sí, puede seleccionar subinformes desde el informe padre a base de unas condiciones. Por ejemplo, puede utilizar la propiedad Visible del elemento de gestión SubReport en un evento del formato Detail para gestionar el registro de los informes adjuntados a base de una variable del contador que se aumenta cada vez que se invoca el evento Detail.

En FastReport.Net un subinforme se crea simplemente en otra página y tiene el acceso a los mismos datos que el informe principal. Al informe principal se añade el objeto Subreport en el lugar en el que tiene pensado colocar el subinforme. El objeto es un hipervínculo a la página del informe que se crea enseguida. Como parte de la nueva página del informe cree un modelo necesario.

Por cierto, primero puede crear un informe con varias páginas y después, si quiere, añadir un objeto subreport y colocar en sus propiedades un hipervínculo a la página deseada.

Vamos a examinar cómo hacer un informe que muestre un subinforme según una condición. En realidad, la idea es muy fácil. Gracias al script integrado en el informe vamos a establecer una propiedad de visualización para el subinforme deseado. Al mismo tiempo, los subinformes tienen que estar colocados en un mismo lugar, un objeto encima del otro.

Supongamos que nuestro informe muestra información sobre los pedidos. A la tabla de pedidos están relacionadas unas más: más detalles del pedido, productos, clientes. Aparte de la información sobre el pedido, nos gustaría mostrar la lista de productos en el pedido o la información sobre el cliente. El informe tiene un parámetro sugún la condición. De este parámetro vamos a mostrar bien la lista de productos, bien la información del cliente.

 

The template of the main report is pretty simple:

La información principal del pedido se saca de la tabla Orders. Al lado de los campos añadidos colocamos un objeto Subreport. En las propiedades de Subreport1 hay que poner la propiedad PrintOnParent en true.

Cuando hemos añadido a la página del informe el objeto Subreport, se ha ñadido automáticamente una nueva página del informe. En esta página creamos un modelo de subinforme que va a mostrar la lista de productos. Como la tabla Orders está relacionada a Order Details, el subinforme mostrará información que corresponda al pedido actual. La tabla Order Details también está relacionada con la tabla Products y vamos a utilizar los datos de esta relación:

 

Por eso los hipervínculos a los campos se ven así: Order Details.Products.ProductName.

Ahora añadimos un objeto más Subreport. Lo colocamos encima del objeto Subreport1. Para ese también hay que poner una propiedad PrintOnParent = true.

Al modelo del segundo subinforme añadimos los campos de la tabla Customers que está relacionada a Orders.

Ahora tenemos un informe con dos subinformes. Añadimos al informe un parámetro. El valor del parámetro puede establecer desde fuera del informe, por ejemplo, desde el programa del usuario.

Para la banda Data en el informe principal creamos un manejador de evento BeforePrint:

1 2 3 4 5 6 7 8 9 10 11 12 13 
private void Data1_BeforePrint(object sender, EventArgs e)  {  if ((int)Report.GetParameterValue("Parameter") == 1)  {  Subreport1.Visible = false;  Subreport2.Visible = true;  }  else  {  Subreport1.Visible = true;  Subreport2.Visible = false;  }  }

El código es muy simple, por eso basta tener conocimientos mínimos de programación ara crear un informe así.


Al final, el variante de la lista de productos se verá así:

Y el variante con la información sobre el cliente así:

about product descargar comprar
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Comprar
  • Descargar
  • Documentación
  • Opiniones de usuarios
  • Cómo desinstalar nuestros productos
  • Enviar mensaje
  • FAQ
  • Toturial en vídeo
  • Foro
  • Documentación técnica
  • Nuestras noticias
  • Quiénes somos
  • Socios
  • Extended licensing
  • Contactos

© 1998-2022 by Fast Reports Inc.

  • Privacidad