logo
small logo
  • Producto
  • Comprar
  • Ayuda
  • Blogs
  • Consola de usarios Ayuda
    • en
    • ru
    • pt
    • es
    • de
    • pl
    • JP
    • ZH
  • Página principal
  • /
  • Blogs
  • /
  • Cómo crear unas mismas páginas de informe con cabeceras diferentes
  • 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
  • Generador de informes FastReport

    23 de marzo de 2020

    Sin información no se puede realizar ninguna actividad de ninguna esfera de nuestra vida. La

    read more
  • How to create business cards from ASP .Net Core application

    31 de mayo de 2020

    ASP.Net Core Framework is a cross-platform solution for creating web applications. This means that you

    read more
  • Los eventos PreviewControl.OnPrint y PreviewControl.OnExport

    1 de octubre de 2020

    En FastReport 2019.4 se agregó la posibilidad de suscribirse a los eventos PreviewControl.OnPrint y PreviewControl.OnExport,

    read more
  • Cómo conectarse a OracleDB desde FastReport.Net

    15 de noviembre de 2019

    En primer lugar, puede utilizar el conector ODBC. Pero este modo supone muchos ajustes. Como

    read more

Cómo crear unas mismas páginas de informe con cabeceras diferentes

8 de enero de 2020

A veces su trabajo requiere un mismo informe pero con algunas diferencias. Por ejemplo, cabeceras diferentes para secciones diferentes. Así, por ejemplo, el usuario del generador de informes ActiveReports quiere crear un informe como:

For example, the user select copies for the customer and for administration department.

The application creates the same report but each one has a label in the header that shows something like "Copy for the customer", "Copy for the administration department".

After, the application has to show the two pages in a form viewer.

Vamos a implementar un informe de este tipo en FastReport.Net. Se puede formar un mismo informe y pasar a este diferentes parámetros para la cabecera. Sin embargo, si quiere obtener unos mismos con diferentes cabeceras en un solo informe, se puede hacer todo de otra manera. Podemos dublicar páginas del informe original para luego cambiar las cabeceras de estas páginas. La solución más fácil será mostrar en un informe de una sola página.

En el informe habrá un parámetro en el que, separados por comas, se numeren las cabeceras que hay que mostrar en este informe. En el script del informe duplicamos la página según la cantidad de los valores del parámetro, luego remplazamos el texto en las cabeceras de las nuevas páginas por uno necesario.

De esta manera, podemos crear páginas con diferentes cabeceras según los números que hemos pasado. Pero hay un problema. Tiene que calcular a mano el número del objeto de texto en el que hay que remplazar el texto. Por ejemplo, en mi informe hay 9 objetos de texto. El primer de estos es una cabecera. Entonces, el décimo también es otra cabecera pero en una nueva página. Si añadimos a los 10 9 más, obtenemos el número de la cabecera en la tercera página, etc.

Estará más claro cuando vea el script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
private void _StartReport(object sender, EventArgs e)
 {
 //Parse parameter
 string parameter = (string)Report.GetParameterValue("Parameter");
 string[] arr = parameter.Split(',');
 
 //Number of text obj that is header
 int step = 10;
 
 foreach (string item in arr)
 {
 ReportPage newPage = new ReportPage();
 newPage.AssignAll(Page1);
 Report.Pages.Add(newPage);
 newPage.CreateUniqueName();
 foreach (object obj in newPage.AllObjects)
 {
 if (obj is Base)
 { 
 (obj as Base).CreateUniqueName();
 }
 }
 TextObject txt = Report.FindObject("Text"+ step.ToString()) as TextObject;
 switch (item)
 {
 case "1":
 txt.Text = "Header 1"; 
 break;
 case "2":
 txt.Text = "Header 2"; 
 break;
 case "3":
 txt.Text = "Header 3"; 
 break;
 }
 step = step + 9;
 }
 Report.Pages.Remove(Page1);
 }

Vamos a examinar este scrip con lupa. Hemos utilizado el evento StartReport. Es en el manejador de eventos donde vamos a trabajar con las páginas del informe. El informe ya tiene una página desarrollada que, esencialmente, es un informe preparado cuya base vamos a utilizar para hacer varios pero con cabeceras diferentes.

En primer lugar, parseamos un parámetro del informe. Como hemos dicho anteriormente, se pasa al parámetro la secuencia de los identificadores de modelos que queremos mostrar. Los identificadores se separan por comas. A continuación, en el ciclo revisamos los identificadores obtenidos del parámetro del informe. Para cada uno de ellos se crea una página a base de la existente, se calcula el objeto de texto con la cabecera. Según el identificador del modelo, se establece un valor para el objeto de texto de la cabecera. Después de crear un "paquete" de páginas necesarias, eliminamos la primera página de modelo.

Como resultado obtenemos varios informes dentro de uno. Administrar la cantidad de estos informes (páginas) se puede pasando al informe el valor del parámetro, es decir, combinación deseada de identificadores o cabeceras.

 

about product descargar comprar
avatar
Dmitriy Fedyashov
.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
  • Nuestro equipo
  • Contactos

© 1998-2021 by Fast Reports Inc.

  • Privacidad