donderdag 8 april 2010

Verschil in layout tussen de eerste pagina en de volgende pagina's van je rapport

Bij het maken van een rapport in openerp (report labs,RML) heb ik een lange tijd liggen zoeken naar de mogelijkheid om de layout van de eerste pagina te laten verschillen ten opzichte van de pagina's die er op volgen. Op de eerste pagina begint mijn story tekst langs rechts naast het logo, op de volgende pagina moet die onder het logo beginnen. Wat er dus gebeurd is dat de tekst op de volgende pagina op dezelfde hoogte begint als die van de eerste pagina en omdat die tekst dus links uitgelijnd is loopt deze door het logo. Het is natuurlijk niet de bedoeling de tekst ook rechts te gaan uitlijnen.

De oplossing bestaat er in om 2 pageTemplates aan te maken en de ene te verwisselen van zodra dit nodig is.

<template pageSize="(595.0,842.0)" title="Test" author="Martin" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="10mm" y1="40mm" width="189mm" height="239mm" />
</pageTemplate>
<pageTemplate id="next">
<frame id="first" x1="10mm" y1="40mm" width="189mm" height="209mm"/>
</pageTemplate>
</template>


Eenmaal 2 templates aangemaakt moeten we nog wel duidelijk maken welke moet gebruikt worden voor de eerste pagina. Dit doen we door aan de story tag een extra atribuut mee te geven.

<story firstPageTemplate="first">


Als dat gebeurd is geven we aan welke template er moet worden gebruikt vanaf de tweede pagina. We voegen onder de story tag de NextTemplate tag toe.

<story firstPageTemplate="first">
<setNextTemplate name="next"/>


En dat is het, van zodra je dus op pagina twee komt word er gebruik gemaakt van de tweede pageTemplate (next)

Geen opmerkingen:

Een reactie posten