You are on page 1of 3

Programación de informes

La ejecución de este método presenta un diálogo en pantalla, donde el usuario


podrá determinar los rangos de selección de registros, el orden en que éstos deben
presentarse, etc.

La llamada al método super(), abre el formulario definido en la propiedad


Form de la consulta. Por defecto, esta propiedad toma el valor SysQueryForm.

Si el programador no quiere que aparezca este diálogo, el método Prompt


puede sobrecargarse, de manera que no realice la llamada a super(). Como ejemplo,
tenemos el método Prompt del informe Cheque.

Ejemplo de método Prompt


boolean prompt()
{
boolean ret;
;
ret = true; //No muestra la ventana
return ret;
}

d) Método Run

El método Run se ejecuta cuando ejecutamos la consulta de un informe desde


el Arbol de Objetos de la Aplicación.

5. Métodos en secciones de un informe


Las secciones determinan la apariencia de un informe en MorphX. Estas secciones,
pueden ser definidas por una plantilla o directamente en el diseño particular de un informe.
Todas las secciones pueden ser repetidas un número determinado de veces, según las
necesidades del usuario.

En la tabla siguiente se presentan las diferentes secciones que pueden componer


un informe:

Prólogo - Aparece al principio de un informe. Se utiliza para mostrar


(Prolog) elementos, como por ejemplo el logotipo, el título del
informe, o la fecha actual. El prólogo se imprime antes que
el encabezado de página, en la primera página del informe.

Encabezado de página - Aparece al principio de cualquier página de un informe.


(Page Header)

Encabezado - Aparece al principio de un nuevo grupo de registros. Se


(Header) utiliza para mostrar elementos, como por ejemplo el
nombre de un grupo.

Página 91 de 141
Programación de informes

Sección - Aparece en la parte central de un informe. Una sección


(Section Group) puede contener un encabezado, un cuerpo y un pie.
- Es importante señalar, que la estructura de los orígenes de
datos se ve reflejada en la estructura de las secciones.

Cuerpo - Aparece en la parte central de un informe. Un cuerpo


(Body) contiene controles o una sección. Los controles muestran
la información de los campos de los orígenes de datos.

Pie - Aparece al final de un grupo de registros. Se utiliza para


(Footer) mostrar, por ejemplo, subtotales.

Pie de página - Aparece al final de cada página de un informe. Se utiliza


(Page Footer) para mostrar, por ejemplo, números de página.

Epílogo - Aparece al final de un informe. El epílogo se imprime justo


(Epilog) después del pie de página de la última página del informe.

Sección programable - Podemos utilizar secciones programables para añadir


(Programmable Section) cualquier tipo de información personalizada a nuestros
informes. Para activar una sección programable, lo
hacemos mediante la llamada explícita al método execute.

Por lo tanto, la estructura de un informe sería la siguiente:


[Prolog]
[Page Header]
[Section Group]
[Header]
[Body]
[Footer]
[Section Group]
[Header]
[Body]
[Footer]

[Page Footer]
[Epilog]

En cualquier lugar del informe podemos definir Secciones programables. De la


misma manera, en cualquier sección del diseño de un informe, podemos crear métodos de
tipo display, que nos permitirían producir la información que quisiéramos mostrar en dicho
informe.

Página 92 de 141
Programación de informes

En el diseño de un informe, debajo de cada sección, existe un método llamado


ExecuteSection. Cuando ejecutamos el método super(), dentro de un método de este tipo,
se imprime la información de dicho sector. En determinadas situaciones, nos interesa
controlar si la información de una sección queremos que se imprima o no, de acuerdo con
algún criterio que nosotros mismos definimos. Esto se consigue haciendo que la llamada al
método super() se realice dentro de una instrucción condicional.

También podemos utilizar el método ExecuteSection para esconder o mostrar


controles de un informe en tiempo de ejecución.

Otra utilidad común de los métodos ExecuteSection es insertar un salto de página.


Por ejemplo, para insertar un salto de página entre el prólogo y las páginas siguientes,
debemos insertar la instrucción element.newPage() después de la llamada al método
super() en el método ExecuteSection del prólogo.

6. Acceso a los controles desde el código


En algunas ocasiones puede interesarnos modificar alguna propiedad de un control
en tiempo de ejecución.

Para poder acceder a los controles de un informe, lo primero que tenemos que hacer
es declarar una variable del tipo correspondiente en el método ClassDeclaration:

Ejemplo declaración de controles


public class ReportRun extends ObjectRun
{
ReportSection reportSection;
ReportTextControl textControl;
}

A continuación debemos asignar a esa variable de tipo control el control del informe.
Supondremos que tenemos una sección llamada Prolog_1 y dentro de ella un control de
tipo texto llamado PrologText1. Realizaríamos la asignación con una instrucción como la
siguiente:

Ejemplo de asignación de control a una variable


public void init()
{
reportSection = element.design().sectionName("Prolog_1");
textControl = reportSection.controlName("PrologText1");
}

Hay que destacar que en los controles de los informes no tenemos la propiedad de
declaración automática (Autodeclaration), lo que hará, que tengamos de declarar variables
para todos los controles del informe a los que queramos acceder en tiempo de ejecución.

Página 93 de 141

You might also like