De plaatsing van objecten in formulieren met een stroombare indeling besturen

U kunt op twee manieren bepalen hoe Designer objecten in een formulier plaatst:

Inhoudsgebieden
Met inhoudsgebieden op de basispagina's worden de gebieden en de stroomrichting bepaald waarin objecten door Designer op de pagina's worden geplaatst. Elke basispagina heeft een standaardinhoudsgebied.

Subformulieren
Met subformulieren wordt bepaald hoe objecten door Designer in het formulier worden geplaatst. Door objecten op subformulieren te plaatsen, kunt u met de opties op de tabbladen Subformulier en Binding in het palet Object aangeven hoe vaak objecten moeten worden gerenderd en waar ze op de pagina worden geplaatst.

Inhoudsgebieden in een stroombare indeling

Alle basispagina's hebben een standaardinhoudsgebied dat wordt weergegeven op de gekoppelde pagina's. Het inhoudsgebied geeft het gebied aan waarin u objecten kunt plaatsen op de pagina's, ongeveer zoals marges in een tekstdocument. U kunt geen objecten op de pagina's plaatsen buiten het inhoudsgebied.

Elk formulier moet minimaal één inhoudsgebied bevatten.

Het inhoudsgebied geeft geen grenzen aan voor het plaatsen van objecten op de basispagina's. U kunt in feite overal op de basispagina's bouwsteenobjecten plaatsen, binnen of buiten het inhoudsgebied. Wanneer u objecten met koptekst en voettekst, datum en tijd of paginanummering buiten het inhoudsgebied plaatst, moet u het formulier testen om te controleren of de objecten worden weergegeven zoals bedoeld. Controleer bijvoorbeeld of objecten op de pagina's de objecten op de basispagina's niet overlappen of geheel bedekken wanneer het formulier wordt gerenderd.

Houd er rekening mee dat de indeling van een formulier dat secties bevat die worden aangepast aan de gegevens, door die gegevens wordt bepaald. Als het formulier wordt gegenereerd via Forms of Output, worden de pagina's toegevoegd totdat alle beschikbare gegevens zijn samengevoegd. Bij het plaatsen van nieuwe pagina's lopen de gegevens van de ene pagina door naar de andere pagina binnen het gebied dat is gedefinieerd door het inhoudsgebied op de basispagina's.

Wanneer u dezelfde indeling wilt gebruiken voor elke pagina in het formulier, hebt u alleen het standaardinhoudsgebied nodig. Hebt u echter een complexere indeling, dan kunt u extra inhoudsgebieden aan de basispagina toevoegen. Als u een andere stroomrichting, een andere afdrukstand of tweezijdig afgedrukte pagina's wilt, kunt u extra basispagina's invoegen en de andere basispagina's en inhoudsgebieden aan uw ontwerp aanpassen.

U kunt niet met inhoudsgebieden werken op de pagina's.

Subformulieren in een stroombare indeling

Het plannen van subformulieren is een belangrijk onderdeel van het maken van een formulier met een stroombare indeling. In een formulier met stroombare secties bevatten subformulieren de objecten in elke sectie van het formulieren. Ze handhaven de formulierindeling door de lengte aan te passen aan de hoeveelheid gegevens die erin wordt samengevoegd. Met behulp van subformulieren kunt u er ook voor zorgen dat de objecten als eenheid worden verplaatst en dat hun posities ten opzichte van elkaar ongewijzigd blijven. Door objecten in subformulieren onder te brengen, zorgt u ervoor dat de indeling van alle secties intact blijft en dat de indeling van het formulier als geheel bij elke weergave identiek is, ongeacht de hoeveelheid gegevens die met het formulier wordt samengevoegd.

U kunt subformulieren op net zoveel niveaus nesten als u wilt. Door het nesten van subformulieren kunt u het formulierontwerp afstemmen op het XML-gegevensbestand dat ermee wordt samengevoegd. Wanneer het XML-gegevensbestand twee niveaus heeft, kunt u een hiërarchie in de subformulieren maken door de namen van de subformulieren overeen te laten komen met de namen van de codes in het XML-gegevensbestand. Op deze manier kunnen de gegevens door Designer worden gebonden zonder dat het gegevensbestand hoeft te worden bewerkt.

Een formulier met een stroombare indeling, zoals de inkooporder in ons voorbeeld, bevat vaak een aantal geneste subformulieren met een of meer objecten in elk subformulier. U kunt bijvoorbeeld zien hoe de verschillende objecten in de inkooporder zijn ondergebracht in de subformulieren header, detailHeader, detail en total. U kunt tekst en tekstveldobjecten uitlijnen in rijen en kolommen, en deze in een subformulier insluiten. Door het gebruik van subformulieren voor groepen objecten zoals de diverse tekstveldobjecten in het detailsubformulier, kunt u niet alleen de indeling van de objecten behouden maar ook aangeven hoe vaak het subformulier moet worden herhaald.

U kunt elk subformulier zo configureren dat wanneer het formulier wordt gegenereerd, alleen de subformulieren met objecten die noodzakelijk zijn voor het weergeven van de gegevensinhoud worden geplaatst. U wilt bijvoorbeeld voor elke klant een andere inkooporder maken. In één inkooporderformulier wordt het detailsubformulier twaalf maal geplaatst om de gekochte artikelen aan te geven. In een ander inkooporderformulier wordt hetzelfde subformulier vijftig maal geplaatst en beslaat het subformulier meerdere pagina's.

Het voorbeeldformulier Inkooporder illustreert hoe u subformulieren kunt gebruiken om deze configuratie te bereiken. Open het formulier in Designer en bekijk de structuur van het subformulier op het palet Hiërarchie. Kijk op het palet Object hoe de subformulieren zijn geconfigureerd. Let vooral op de subformulieren purchaseOrder, detailHeader en detail, en op de manier waarop deze zijn geconfigureerd. Het bovenliggende subformulier, purchaseOrder, bepaalt de inhoudsstroom in het formulier en wordt aangepast aan de hoeveelheid gegevens. Het subformulier detailHeader is geconfigureerd met een minimum aantal van 1, wat betekent dat dit subformulier eenmaal wordt weergegeven wanneer het formulier wordt gerenderd. Het detailsubformulier is echter geconfigureerd om bij elk gegevensitem te worden herhaald. Bij het genereren van het formulier wordt dit subformulier dan ook net zo vaak weergegeven als het aantal exemplaren van de gegevens.

U kunt ook een subformulier gebruiken om een rand rondom een groep subformulieren weer te geven. Zo kunt u bijvoorbeeld een of meer dynamische subformulieren maken, deze in een subformulier nesten en vervolgens een rand opgeven voor dit laatste subformulier. Wanneer het formulier wordt gerenderd, wordt er een rand om alle interne subformulieren weergegeven.