Regels Detailsectie verbergen via script

Je verbergt specifieke detailregels bij het afdrukken van een rapport.

Dit doe je door in een script op de Detailsectie vast te leggen, of deze sectie in bepaalde geval wel of niet getoond mag worden.

Uitgebreid voorbeeld op artikelen met voorraad

Een artikellijst mag alleen artikelen bevatten waarvan de voorraad onder de minimumvoorraad ligt. Het rapport mag alleen artikelen bevatten die voor voorraadaanvulling in aanmerking komen, maar hiervoor kun je een filter instellen.

De Detailsectie van het rapport bevat onder andere de velden artikelcode, artikelomschrijving, minimum voorraad en huidige voorraad.

Je voegt het volgende script toe aan de gebeurtenis Lay-out opmaken van de Detailsectie:

If DecComp({Op voorraad},{Minimum voorraad}) = -1 Then

   {Sectie:Detailsectie}.Visible = True

Else

   {Sectie:Detailsectie}.Visible = False

End If

Uitleg:

De functie DecComp(getal A, getal B) vergelijkt twee decimaal velden met elkaar. Als getal A is kleiner dan getal B, levert de vergelijking de waarde -1 op.

Let op:

  • Het script wordt per regel in de Detailsectie toegepast. Je hoeft dus niet voor elk af te drukken veld in de detailregel aan te geven of deze wel of niet visible is.
  • Je kunt geen achtergrondkleur op de even regels gebruiken. Dit omdat de telling van de regels in de detailsectie niet goed verloopt door de regels die niet visible zijn.

Voorbeeld Detailregels zonder afbeelding tonen

Als je een rapport genereert met bijvoorbeeld afbeeldingen van verkoopitems en een item heeft geen voorbeeld, dan kun je de ruimte die gereserveerd zou zijn voor de afbeelding niet laten tonen. Onderstaand voorbeeld rapport laat zien dat de ruimte bij artikelcode 1100 weggelaten wordt.

Als voorbeeld nemen we het rapport Verkooporder. Er zijn twee manieren waarop je dit kunt bereiken:

Methode 1: Scripting in de detailsectie

  1. Klik op: de knop ‘Script - Gebeurtenissen’.
  2. Ga naar: ‘[Naam subrapport] / Detailsectie / Lay-out opmaken’.
  3. Voeg het volgende script toe (ervan uitgegaan dat het veld afbeelding de naam ‘Afbeelding klein’ heeft):

    If Not IsEmpty({Afbeelding klein}) Then

     {Element:Afbeelding}.Visible = True

    Else

     {Element:Afbeelding}.Visible = False

    End If

Uitleg script:

  • Not IsEmpty betekent ‘is niet leeg’. Het script vraagt dus af of de afbeelding niet leeg is. Is de afbeelding niet leeg, dan moet het rapport element wel zichtbaar zijn, anders moet het rapport element niet zichtbaar zijn.
  • {Afbeelding klein} is het veld uit de gegevensverzameling.
  • {Element:Afbeelding} is de afbeelding die afgedrukt wordt (dit is de afbeelding die in de detailsectie ‘gesleept’ is en dus daadwerkelijk afgedrukt wordt).

Methode 2: Via subrapport

Een afbeelding kan ook via een subrapport afgedrukt worden.

  1. Voeg een subrapport toe op basis van de gegevensverzameling Items (Rapport). Voeg in de gegevensverzameling de velden Itemtype, Itemcode en Afbeelding klein toe.
  2. In het filter van de gegevensverzameling, filter op ‘Afbeelding klein’ is niet leeg. Als resultaat binnen de gegevensverzameling worden alleen de items met afbeelding Getoond.

  3. Koppel het subrapport op de velden Itemcode en Itemtype.

  4. Voeg de afbeelding toe aan de detailsectie van het subrapport.

Nu wordt alleen het subrapport afgedrukt bij items waarbij een afbeelding is gekoppeld. Niet bij de items waarbij geen afbeelding is gekoppeld.

Direct naar

  1. Rapportscript
  2. Functieveld vullen
  3. Voorwaardelijke opmaak
  4. Regels Detailsectie verbergen