logo
small logo
  • Producto
  • Comprar
  • Ayuda
  • About
  • Consola de usarios Ayuda
    • en
    • de
    • JP
    • ZH
  • Página principal
  • /
  • Blogs
  • /
  • La formación de informes con los formularios de diálogo
  • Instalación de FastReport en Lazarus

    17 de marzo de 2021

    Como parte del programa educativo Académico, hemos decidido producir algunos artículos de apoyo para los

    read more
  • Trabajar con gráficos y tablas en FastReport VCL

    22 de marzo de 2021

    Seguimos publicando artículos de apoyo para los estudiantes como parte del programa educativo de la

    read more
  • Conexión de un informe a los datos de FastReport en Lazarus

    26 de marzo de 2021

    En el artículo anterior sobre cómo trabajar con cuadros y gráficos, nos hemos familiarizado con

    read more
  • Uso de mapas interactivos en FastReport VCL 2021

    30 de abril de 2021

    Este es el artículo final de los cursos del programa educativo Akademik. En las

    read more
  • Convierta los datos de la base de datos en un documento en Delphi / Lazarus / C ++ Builder

    3 de febrero de 2021

    ¿Cómo convertir un montón de datos en un informe? Oracle DB, MySQL, Microsoft SQL Server, PostgreSQL,

    read more

La formación de informes con los formularios de diálogo

26 de abril de 2021

La formación de informes con los formularios de diálogo

En los artículos precedentes del programa educativo Academic aprendimos a instalar FastReports en Lazarus, enseñamos a utilizar los gráficos, los diagramas y los códigos de barras y también conectamos un informe a los datos. Ahora necesita examinar los formularios de diálogo. 

A menudo tiene que configurar algunos parámetros o transferir los datos antes la representación del informe. Por cierto, puede hacerlo por vía del entorno de programación, pero FastReport tiene sus propias herramientas de desarrollo de los formularios de diálogo. Además de las paginas simples puede utilizar algunos formularios de diálogo en un informe.

Para crear un nuevo formulario sirve el botón FastReport en la barra de herramientas del administrador de diseño, añade una nueva página en un informe. Cuando se cambia a una página con el formulario de diálogo, el campo de trabajo del administrador de diseño se cambia — ahora es un formulario donde puede colocar los objetos — elementos de control. 

Ejemplo del formulario de diálogo

La imagen muestra que modelar un formulario de diálogo se parece a trabajar con los formularios en todo entorno de programación moderno. El formulario de diálogo tiene la marcación especial para facilitar la orientación de los objetos en el. 

Los elementos de control 

Los objetos del formulario de diálogo son tradicionales para todos los entornos de programación modernos. Para colocar un elemento de control es necesario hacer clic en un objeto, pues en un espacio conveniente en el formulario.

Elemento

Nombre

Descripción

 

TfrxLabelControl

Este elemento de control destina a representar un título explicativo en el formulario de diálogo.

 

TfrxEditControl

El elemento de control destina a escribir una línea de texto desde el teclado.

 

TfrxMemoControl

El elemento de control destina a escribir algunas líneas de texto desde el teclado.

 

TfrxButtonControl

El elemento de control es un botón.

 

TfrxCheckBoxControl

El elemento de control es una casilla de verificación que puede estar en dos estados: activado y desactivado. Un título explicativo aparece cerca de la casilla.

 

TfrxRadioButtonControl

El elemento de control es un análogo del botón de radio. Por esta razón no se utiliza solo.

 

TfrxListBoxControl

El elemento de control es una lista de las líneas con la posibilidad de elegir una de ellas.

 

TfrxComboBoxControl

El elemento de control es una lista despegable de las líneas con la posibilidad de elegir una de ellas.

 

TfrxPanelControl

El elemento de control es un panel que sirve para reunir algunos elementos de control.

 

TfrxGroupBoxControl

El elemento de control es un panel con el título explicativo que sirve para reunir algunos elementos de control.

 

TfrxPageControl

El control le permite combinar varias pestañas que contienen diferentes controles en el mismo formulario durante el proceso de diseño.

 

TfrxDateEditControl

El elemento de control es un campo de entrada de fechas con el calendario despegable.

 

TfrxImageControl

El elemento de control es una imagen de los formatos BMP, ICO, WMF, EMF.

 

TfrxBevelControl

El elemento de control destina a hacer un formulario de diálogo.

 

TfrxBitBtnControl

El elemento de control es un botón con una imagen.

 

TfrxSpeedButtonControl

El elemento de control es un botón con una imagen.

 

TfrxMaskEditControl

El elemento de control es un campo de entrada de información según una trama determinada.

 

TfrxCheckListBoxControl

El elemento de control es una lista de líneas con las casillas.

 

DBLookupComboBox

El elemento de control es una lista de celdas de la columna determinada en una tabla.

El informe "Hello, World!" con un formulario de diálogo 

Esta vez vamos a crear un informe que representa antes la formación una ventana con un mensaje de salutación por vía del formulario de diálogo. Para esto:

  1. Creamos un nuevo informe y añadimos un formulario de diálogo en un informe.
  2. Ponemos los objetos TfrxLabelControl, TfrxButtonControl en un informe.

Una trama del informe el más simple con el formulario de diálogo

  1. Personalizamos las propiedades de los objetos:
TfrxLabelControl:
Caption = 'Hello, World!'
 
TfrxButtonControl:
Caption = 'OK'
Default = True
ModalResult = mrOk

Personalizamos la propiedad BorderStyle = bsDialog del formulario propio.

Después de personalizar el formulario de diálogo, volvamos en una página del informe y ponemos el objeto "Texto" en ella con algún texto adentro. Iniciamos el informe a ejecutar y veamos nuestro formulario:

El informe el más simple con un formulario de diálogo

Si hace clic en el botón ОК, el informe se formará y se representará. Si cierra la ventana con el botón Х, el informe no se formará. Así es un algoritmo del funcionamiento del diálogo en FastReport: si hay los formularios de diálogo, el informe sólo se generará si cado formulario se ha cerrado con el botón ОК, es decir ha vuelto ModalResult = mrOk. Por eso hemos establecido la propiedad ModalResult de nuestro botón como mrOk.

La entrada de los parámetros y su carga en un informe 

Complicamos nuestro ejemplo para mostrar cómo puede cargar los valores entrados en un formulario de diálogo en el informe. Para eso cambiamos nuestro formulario de la manera siguiente:

El formulario de diálogo para entrar un parámetro

En una página del informe ponemos el objeto "Texto" con el contenido siguiente:

You've entered: [Edit1.Text]

Ejecutamos el informe y nos aseguramos de que el parámetro que hemos entrado se muestra bien. De la misma manera puede referirse a otros objetos del formulario de diálogo. Cómo cada objeto tiene el nombre único en todo el informe, se puede utilizar en cualquier parte del documento.

La interacción de los elementos de control 

Utilizando el script puede realizar fácilmente el algoritmo del funcionamiento del formulario de diálogo, por ejemplo, la interacción de sus elementos de control. Lo veamos en un ejemplo simple. Modificamos nuestro formulario de la manera siguiente:

El formulario de diálogo con el elemento de control lógico

Hacemos doble clic en el objeto "CheckBox" – esto crea un controlador de eventos OnClick. Escribimos el código siguiente del script:

PascalScript:
1
2
3
4
procedure CheckBox1OnClick(Sender: TfrxComponent);
begin
 Button1.Enabled := not CheckBox1.Checked;
end;

 

C++ Script:
1
2
3
4
void CheckBox1OnClick(TfrxComponent Sender)
{
 Button1.Enabled = !CheckBox1.Checked;
}

Una vez que el informe se ha iniciado, necesita comprobar cómo reacciona el botón al cambio de estado de la casilla.

Algunos formularios de diálogo 

Vamos a ver cómo funciona el informe con dos formularios de diálogo. Creamos un informe con dos diálogos y una pagina:

La trama de una página para el informe con dos formularios de diálogo

El primer formulario de diálogo:

El primer formulario de diálogo

El segundo formulario de diálogo:

El segundo formulario de diálogo

Personalizamos las propiedades ModalResult (mrOk y mrCancel respectivamente) de los botones OK y Cancel. Luego ejecutamos el informe. Al principio se nos harán preguntas del primero diálogo (el nombre, si hay hijos), luego, si hacemos clic en el botón ОК – del segundo (los nombres de hijos). Después de pulsar el botón OK el informe se formará en el segundo diálogo. Así es cómo funciona el motor FastReport – si hay algunos formularios de diálogo, se muestran en el orden de su formación, y cada diálogo siguiente se mostrará después de que haya pulsado el botón OK en el diálogo precedente (con la propiedad ModalResult = mrOk). Si alguno de los diálogos se cancela (con el botón Cancel o una cruz en la barra de título), la formación del informe se interrumpe.

El control de los formularios del informe 

En el ejemplo precedente ambos formularios se presentan independientemente de si marcamos la casilla "Have children" o no. Mostramos cómo ocultar el segundo diálogo si esta casilla no está marcada. Para eso creamos el controlador OnClick del botón ОК en el primer formulario de diálogo (haga doble clic en el botón para crear el controlador):

PascalScript:
1
2
3
4
procedure Button1OnClick(Sender: TfrxComponent);
begin
 DialogPage2.Visible := CheckBox1.Checked;
end;

 

C++Script:
1
2
3
4
void Button1OnClick(TfrxComponent Sender)
{
 DialogPage2.Visible = CheckBox1.Checked;
}

OnRunDialogs

Este código oculta el segundo formulario de diálogo (DialogPage2), si la casilla no está marcada. Si iniciamos el informe a ejecutar, veamos que todo funciona bien.

Otra manera de controlar los formularios es utilizar el evento de informe OnRunDialogs. Para crear el controlador de este evento seleccione el objeto Report en el árbol del informe o en el inspector de objetos y pase al marcador "Eventos" en el inspector. El doble clic en el evento OnRunDialogs crea un controlador necesario.

Escribimos el código siguiente en el controlador:

PascalScript:
1
2
3
4
5
6
7
8
9
procedure frxReport1OnRunDialogs(var Result: Boolean);
begin
 Result := DialogPage1.ShowModal = mrOk;
 if Result then
 begin
 if CheckBox1.Checked then
 Result := DialogPage2.ShowModal = mrOk;
 end;
end;

 

C++Script:
1
2
3
4
5
6
7
8
9
void frxReport1OnRunDialogs(bool &Result);
{
 Result = DialogPage1.ShowModal == mrOk;
 if (Result)
 {
 if (CheckBox1.Checked)
 Result = DialogPage2.ShowModal == mrOk;
 }
}

El controlador funciona de la manera siguiente: mostramos el primer diálogo. Si está cerrado con el botón OK, veamos el estado de la casilla CheckBox1 y mostramos el segundo diálogo, si es necesario. Si el controlador devuelve Result = True, el informe se construye; si Result = False, el informe se interrumpe.

about product comprar
avatar
Sergey Plastun
VCL Development
Fast Reports Team: Sergey Plastun - VCL Development at Fast Reports
VCL Lazarus FastReport Delphi Academic

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
  • FAQ
  • Toturial en vídeo
  • Foro
  • Documentación técnica
  • Nuestras noticias
  • Quiénes somos
  • Socios
  • Extended licensing
  • Contactos

© 1998-2023 by Fast Reports Inc.

  • Privacidad