Regroupements, graphiques et sous-rapports
Regrouper par un champ avec son en-tête et son pied, totaliser avec des agrégats, dessiner des graphiques sur le papier et intégrer un rapport dans un autre.
Une bande de détail toute seule ne sait qu'imprimer une ligne par enregistrement. Ce qui transforme une liste en document, ce sont trois pièces : les regroupements, qui découpent la liste en blocs avec titre et total ; les graphiques, qui résument ce que la liste dit ; et les sous-rapports, qui font entrer dans le document un jeu de données complètement différent.
Nous restons dans le rapport Oportunidades por conta de l'app Gestion des Clients.
Regroupements
Un regroupement découpe la liste chaque fois que la valeur d'un champ change. Chaque niveau apporte deux bandes qui lui sont propres : un en-tête, qui sort quand la valeur change, et un pied, qui sort quand la valeur se termine.
C'est cela qui donne le document « chaque compte, avec ses opportunités en dessous et le total à la fin ».
Créer un regroupement
- Dans la colonne de gauche, cliquez sur le + de la section Regroupements.
- Sélectionnez la bande En-tête : … qui est apparue sur la surface de conception.
- Dans le panneau de droite, dans la section Regroupement, choisissez le Champ.

| Propriété | Ce qu'elle fait |
|---|---|
| Champ | « Champ du jeu de données principal dont la valeur définit le groupe. Les lignes sont triées par lui. » Accepte les chemins avec un point pour parcourir les relations : conta.nome. |
| Ordre | Croissant ou Décroissant. |
| Répéter l'en-tête | « Quand le groupe continue sur la page suivante, son en-tête ressort en haut. » |
| Nouvelle page par groupe | « Chaque groupe commence sur une page qui lui est propre. » C'est ce qu'on active pour imprimer une facture par feuille. |
Les bandes de groupe apparaissent sur la surface de conception emboîtées autour du détail, avec un retrait qui montre à quel niveau elles appartiennent. Vous pouvez avoir autant de niveaux que vous voulez — par année, puis par client, puis par facture.
Dica
Un champ placé dans un en-tête de groupe lit la première ligne du groupe. C'est ce qui fait apparaître le nom du compte au-dessus de ses opportunités. En dehors des bandes de groupe (dans l'en-tête du rapport, par exemple) il n'y a aucune ligne et le champ sort vide.
Les totaux avec l'Agrégat
L'élément Agrégat est un calcul fait par le moteur : Somme, Moyenne, Comptage, Minimum ou Maximum sur un champ d'un jeu de données.
L'endroit où vous le posez décide de ce qu'il compte :
| Où il se trouve | Ce qu'il additionne |
|---|---|
| Dans le pied d'un groupe | Seulement les lignes de ce groupe — le total de ce compte. |
| Dans le pied du rapport | Toutes les lignes — le total général. |
| Dans la bande de détail, sur un jeu de données lié | Seulement les lignes rattachées à cette ligne-là — le total de cette facture. |
Pour le Comptage, le champ peut rester vide : il compte des lignes, pas des valeurs.
Graphiques
Un graphique sur le papier utilise le même moteur et les mêmes options que le widget de graphique des écrans. Dans le PDF, il est dessiné sur le serveur et entre en vectoriel, pas comme une image — un graphique rastérisé serait flou à l'impression ou à l'agrandissement.

Faites glisser Graphique de la palette vers une bande et configurez-le :
| Propriété | Notes |
|---|---|
| Type de graphique | Barres, Ligne, Aire, Camembert / Donut, Dispersion, Radar, Entonnoir, Jauge ou Carte de chaleur. |
| Jeu de données | D'où viennent les lignes. Vide utilise le jeu de données principal. |
| Champ de catégorie (axe X / parts) | « Champ qui définit l'axe horizontal (ou les parts). » |
| Champs de valeur | « Champs numériques à tracer. Sans champ de série, chacun est une série. » On les ajoute avec Ajouter une valeur. |
| Champ de série (regroupement) | « Champ qui sépare les séries. Avec lui, le pivot se fait sur le premier champ de valeur. » |
| Légende et Position de la légende | Haut, Bas, Gauche ou Droite. |
| Valeurs sur les points | Écrit le nombre au-dessus de chaque barre ou de chaque point. |
Selon le type, d'autres options apparaissent : Empilé, Lignes lissées, Horizontal et Rayon intérieur du donut (%).
Dans l'exemple, le graphique du Pied du rapport a pour catégorie fase et
pour valeur valor : une barre par phase du pipeline, avec la somme des
affaires de chacune.
Nota
Un graphique dans une bande de groupe dessine les données de ce groupe — un graphique par compte. Dans une bande de détail, il dessinerait un graphique par ligne imprimée, ce qui n'est presque jamais ce qu'on veut.
Sous-rapports
Un sous-rapport est un autre rapport dessiné à l'intérieur de celui-ci. Il sert à ce que le regroupement ne fait pas : le regroupement découpe un jeu de données ; le sous-rapport en apporte un autre en entier.
Le cas classique : sur un relevé de compte, les factures ouvertes et les paiements — deux listes de tables différentes sur la même feuille. Dans notre exemple, l'en-tête de chaque compte apporte la liste de ses contactos, avant les opportunités.

Concevoir l'enfant
Le rapport intégré est un rapport normal, avec sa vie propre — il s'ouvre, se conçoit et se prévisualise comme n'importe quel autre. La différence, c'est qu'il déclare des paramètres pour recevoir le contexte de celui qui l'intègre.

Dans l'exemple, Contactos da conta a un paramètre conta (Nombre,
obligatoire) et son jeu de données filtre conta_id par ce paramètre. Les
bandes qui n'ont pas d'intérêt dans un document intégré — en-tête de page,
pieds — restent désactivées.
Intégrer
- Faites glisser Sous-rapport de la palette vers un en-tête, un pied ou une bande de groupe.
- Dans Choisissez le rapport, choisissez l'enfant.
- Pour chacun de ses paramètres, dites la Provenance : Champ de la ligne (il lit le champ de la ligne où se trouve le sous-rapport) ou Valeur fixe.
Atenção
Un sous-rapport ne peut pas se trouver dans la bande de détail, et c'est empêché, pas signalé : « il ferait une requête par ligne imprimée » — mille factures, mille allers à la base. Placez-le dans un en-tête, un pied ou une bande de groupe, où les occurrences sont peu nombreuses.
Les répétitions avec les mêmes paramètres partagent la lecture : un sous-rapport dans l'en-tête de groupe coûte donc une requête par groupe, pas par ligne.
Codes-barres et images
Deux éléments qui complètent un document commercial :
Code-barres — la valeur peut venir d'un champ (le cas normal sur une facture) ou être fixe :
| Champ | Notes |
|---|---|
| Type | Code 128 accepte du texte et des nombres. EAN-13 fait 12 ou 13 chiffres et vérifie le chiffre de contrôle. QR accepte n'importe quel texte — c'est celui des factures. |
| Champ | « Champ contenant la valeur à coder. Vide utilise la valeur fixe ci-dessous. » |
| Valeur fixe | Utilisée uniquement quand aucun champ n'est choisi. |
| Afficher la valeur | Imprime la valeur sous les barres (ne s'applique pas au QR). |
Image — la Source choisit d'où elle vient :
| Source | Ce qu'on remplit |
|---|---|
| Fichier de l'app | Un fichier téléversé dans l'app (par exemple icons/logo.svg). |
| Adresse | Une URL. |
| Champ de données | « Champ contenant l'image : URL, chemin dans assets, ou le binaire en base64. » |
L'Ajustement décide de ce qui arrive quand l'image n'a pas la forme de la boîte : Contenir, Couvrir ou Étirer.
Questions fréquentes
Le groupe ne regroupe rien — tout sort à la suite. Le champ du regroupement doit venir du jeu de données principal, et les lignes sont triées par lui. Si le champ est vide dans beaucoup de lignes, elles tombent toutes dans le même groupe.
Le total du groupe additionne tout. L'agrégat est en dehors de la bande du groupe. Placez-le dans le pied de ce groupe — c'est la position qui définit la portée du calcul.
Le graphique sort blanc dans le PDF mais se voit dans la conception. Sur la surface de conception, un graphique sans données montre un échantillon d'exemple. Dans le PDF, il n'y a que ce que les données donnent : vérifiez le Jeu de données, le Champ de catégorie et qu'au moins un Champ de valeur est choisi.
Puis-je mettre un sous-rapport dans un autre sous-rapport ? Oui, avec la même règle : jamais dans la bande de détail. Mais réfléchissez à deux fois — deux niveaux d'intégration rendent le document difficile à prévoir, et bien souvent ce qu'on voulait était un niveau de regroupement de plus.
