ONYX - 9.0 - Utilisation
Document footer management in XML
Sommaire
Introduction
This section describes how to manage fixed-height document footers on the last page of a document with automatic page breaks.
Prerequisites
- Have a good foundation on how Designer works in XML mode
- Know the structure of the XML Designer file
Problematic
When a document contains a long list spread over several pages and having a footer only on the last one (document footer), it is generally desirable that the list takes up all the space available on the intermediate pages, but that it stops early enough on the last to leave room for the footer of the last page.
Principle
To meet this need, it is necessary to intervene on 2 elements:
- Conditionner le pied de document pour qu’il apparaisse uniquement sur la dernière page. Pour cela, la condition à utiliser est « Saut de page » avec la logique not(1). En effet, cette condition devient vraie pour le reste de la page dès qu’un groupe paginé déclenche un saut de page. Pour que cette condition soit pertinente elle doit donc être évaluée après le traitement du groupe correspondant à la liste paginée. Le pied de document doit être confectionné exclusivement avec des objets de type « groupe » ou « texte », car ce sont les seuls à pouvoir être exécutés après un objet de type « groupe ».
- Intégrer artificiellement le pied de document à la fin de la liste afin que cette dernière puisse en tenir compte pour le déclenchement des sauts de page Il est essentiel de s’assurer que le pied de document dispose de suffisamment d’espace sur la dernière page. Le groupe correspondant à la liste paginée doit donc vérifier que cet espace est disponible. Si ce n'est pas le cas, un saut de page doit être déclenché avant l'écriture du pied de document. Pour ce faire, une ligne spécifique (artificielle) doit être ajoutée à la fin du groupe principal. Cette ligne servira à réserver un espace dont la hauteur sera au minimum équivalente à celle du pied de document.
Example
The idea is to use the following group as a document footer. In our example, we have a special line at the end of the main group named RESA_SPACE. We apply a zone with a front spacing of 3cm. (this allows you to reserve the place for the document foot)
<group name="Products"> <line >….</line> <line >….</line> <line >….</line> (...) <line name=”RESA_SPACE/> </group>
We condition the RESA_SPACE zone on the presence of the line type "RESA_SPACE"
In our case, the document footer is 2 tables (VAT breakdown and totals table)
This includes all the elements required to design the VAT breakdown table of a document. This must only be present on the last page of the document.
The group must be conditional on not triggering a page break: