Masquage de lignes de la section de détail à l'aide d'un script

Lors de l'impression d'un rapport, vous masquez certaines lignes de détail.

Définissez un script pour masquer la Section détail sous certaines conditions.

Exemple détaillé pour des articles en stock

Une liste d'articles ne peut contenir que des articles dont le stock est inférieur au stock minimal. Le rapport ne peut contenir que des articles pris en considération pour un réapprovisionnement, mais vous pouvez définir un filtre à cet effet.

La Section détail du rapport comprend notamment les champs concernant le code et le libellé de l'article, son stock minimum et actuel.

Vous ajoutez le script suivant à l'événement Layout opmaken de la Section détail :

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

   {Sectie:Detailsectie}.Visible = True

Else

   {Sectie:Detailsectie}.Visible = False

End If

Explication :

La fonction DecComp (nombre A, nombre B) compare des champs décimaux. Si A est plus petit que B, le résultat de la comparaison est -1.

Attention:

  • Le script s'exécute pour chaque ligne de la Section détail. Il n'est donc pas nécessaire de masquer chaque champ de la ligne individuellement.
  • Dans ce cas, vous ne pouvez pas utiliser de couleur d'arrière-plan sur les lignes paires. En effet, puisque certaines lignes sont masquées, il n'est plus possible de déterminer quelles sont les lignes paires et impaires.

Affichage de lignes de détail sans image

Votre rapport présente des articles avec leur photo. Il peut arriver que la photo d'un article soit indisponible. Dans ce cas, vous pouvez masquer l'espace prévu pour cette photo manquante. Dans l'exemple ci-dessous, l'emplacement de la photo est masqué pour l'article 1100.

Prenons le rapport Commande vente à titre d'exemple. Ici, deux possibilités s'offrent à vous :

Premièrement, ajouter un script dans la section de détail :

  1. Cliquez sur : le bouton ‘Script - Gebeurtenissen’.
  2. Allez vers : ‘Opmerkingen / Detailsectie / Lay-out opmaken’.
  3. Ajoutez le script suivant (en supposant que le champ d'image soit intitulé "Afbeelding klein") :

    If Not IsEmpty({Petite image}) Then

     {Element:Image}.Visible = True

    Else

     {Element:Image}.Visible = False

    End If

Explication du script :

  • Not IsEmpty signifie "n'est pas vide". Le script vérifie donc si le champ d'image contient une image. Si oui, il affiche cet élément dans le rapport, sinon il le masque.
  • Le champ {Afbeelding klein} provient du groupe de données.
  • {Element:Image} contient la photo à imprimer (celle que vous avez fait "glisser" dans la section de détail).

Deuxièmement, utiliser un sous-rapport :

Il est également possible d'imprimer une image à l'aide d'un sous-rapport.

  1. Ajoutez un sous-rapport à partir du groupe de données "Articles (Rapport)". Dans le groupe de données, ajoutez les champs Itemtype, Itemcode et Afbeelding klein.
    1. Ajoutez également un filtre pour afficher les enregistrements dans lesquels l'image n'est pas vide. Seules s'affichent dans le groupe de données les articles pour lesquels une photo est disponible.

  2. Liez le sous-rapport au rapport principal en utilisant les champs Itemtype et Itemcode.

  3. Ajoutez l'image dans la section de détail du sous-rapport.

A présent, le sous-rapport ne s'imprime que lorsqu'une photo est disponible pour les articles Dans le cas contraire, il ne s'imprime pas.

Aller directement à

  1. Script de rapport
  2. Attribution d'une valeur à un champ de fonction
  3. Mise en page conditionnelle
  4. Masquage des lignes d'une section détail