- Introduction
- Objectif
- Bonnes pratiques pour les Designers
- Résumé
Introduction #
Cette page explique comment fonctionnent les liens entre composants dans BiBOARD.
Les liens permettent à un composant source de piloter un composant cible dans un tableau de bord.
Exemples :
- une liste déroulante filtre un tableau ;
- une tuile filtre un graphique ;
- un tableau filtre un autre tableau ;
- un composant déclenche le rafraîchissement d’un autre composant ;
- une sélection alimente un paramètre de requête SQL.
Les liens entre composants sont très puissants, mais il est important de bien distinguer les différents types de liens pour obtenir le comportement attendu.

Objectif #
Dans un tableau de bord BiBOARD, les composants ne sont pas forcément indépendants.
Un composant peut transmettre une valeur à un autre composant afin de :
- filtrer ses données ;
- alimenter un paramètre de requête ;
- déclencher son rafraîchissement ;
- transmettre une valeur à une action SQL ;
- ouvrir un autre tableau de bord avec des paramètres.
Le cas le plus courant est simple :
L’utilisateur sélectionne une valeur dans une liste, puis un tableau affiche uniquement les lignes correspondant à cette sélection.
Mais BiBOARD permet aussi des scénarios plus avancés, comme un tableau qui filtre un autre tableau, ou un bouton SQL qui récupère la valeur sélectionnée dans un composant.
Principe général #
Un lien entre composants repose toujours sur trois éléments :
| Élément | Rôle |
| Composant source | Composant qui fournit la valeur ou déclenche l’action |
| Composant cible | Composant qui reçoit le filtre, le paramètre ou le rafraîchissement |
| Champ ou paramètre cible | Champ de données ou paramètre qui reçoit la valeur |
Exemple simple :
| Élément | Exemple |
| Source | Liste déroulante Région |
| Cible | Tableau des ventes |
| Champ cible | Région |
| Résultat | Le tableau affiche uniquement les ventes de la région sélectionnée |
Les principaux types de liens #
Dans BiBOARD, il existe plusieurs types de liens.
| Type de lien | Utilisation principale | Exemple |
| Lien filtre de données | Filtrer les lignes déjà chargées par le composant cible | Une liste filtre un tableau sur le champ Région |
| Lien paramètre de requête | Alimenter un paramètre SQL avant l’exécution de la requête | Une liste alimente le paramètre :p_Region |
| Lien de rafraîchissement | Recharger un composant sans transmettre de valeur métier | Un bouton rafraîchit un tableau |
| Lien Action source | Transmettre une valeur à une action, notamment un bouton SQL | Une ligne sélectionnée alimente un UPDATE SQL |
| Hyperlien vers un autre TDB | Ouvrir un autre tableau de bord avec des paramètres | Clic sur une ligne client pour ouvrir le détail client |
Lien filtre de données #
Le lien filtre de données est le lien le plus simple à comprendre.
Il filtre les données du composant cible à partir de la valeur sélectionnée dans le composant source.
Exemple :
- source : liste déroulante Région ;
- cible : tableau Ventes ;
- champ cible : Région ;
- opérateur : =.
Résultat :
| Action utilisateur | Résultat |
| Aucune région sélectionnée | Le tableau affiche toutes les données selon sa configuration |
| Région “Sud” sélectionnée | Le tableau affiche uniquement les lignes de la région Sud |
| Sélection supprimée | Le tableau revient à son état initial |
Ce type de lien est pratique car il ne nécessite pas forcément de modifier la requête SQL.
En revanche, sur de gros volumes de données, il peut être moins performant qu’un lien paramètre, car les données peuvent être chargées avant d’être filtrées.
Lien paramètre de requête #
Le lien paramètre alimente un paramètre utilisé dans la requête du composant cible.
C’est souvent le meilleur choix lorsque le filtre doit être appliqué directement en SQL.
Exemple :
Une liste Région alimente le paramètre :p_Region dans la requête du tableau des ventes.
Select
Region,
Client,
Montant
From
Ventes
Where
(
Region = :p_Region
Or :p_Region = '#NULL'
)
Dans ce cas, le filtre est appliqué au moment de l’exécution SQL.
Cela permet de limiter le nombre de lignes récupérées par BiBOARD.
Différence entre filtre de données et paramètre de requête #
Il ne faut pas confondre ces deux comportements.
| Type de lien | Moment d’application | Avantage | Limite |
| Filtre de données | Après récupération des données | Simple à mettre en place | Peut être moins performant sur gros volume |
| Paramètre de requête | Avant exécution SQL | Plus performant sur gros volume | Nécessite une requête paramétrée |
En règle générale :
- pour un petit volume, un filtre de données peut suffire ;
- pour un gros volume, il vaut mieux utiliser un paramètre de requête ;
- si le tableau cible est lent à charger, il faut privilégier le filtrage SQL.
Exemple 1 — Une liste qui filtre un tableau #
Besoin fonctionnel #
On souhaite qu’une liste déroulante Région filtre un tableau des ventes.
Paramétrage #
| Élément | Valeur |
| Source | Liste Région |
| Cible | Tableau Ventes |
| Champ source | Région |
| Champ cible | Région |
| Opérateur | = |
Résultat attendu #
| Action utilisateur | Résultat |
| Ouverture du tableau de bord | Le tableau affiche les ventes selon sa configuration initiale |
| Sélection de “Nord” | Le tableau affiche uniquement les ventes de la région Nord |
| Sélection de “Sud” | Le tableau affiche uniquement les ventes de la région Sud |
| Suppression de la sélection | Le tableau revient à son état initial |
Exemple 2 — Une liste qui alimente un paramètre SQL #
Besoin fonctionnel #
On souhaite filtrer les ventes directement dans la requête SQL.
Paramètre BiBOARD #
:p_Region
Requête SQL #
Select
Region,
Client,
DateCommande,
Montant
From
Ventes
Where
(
Region = :p_Region
Or :p_Region = '#NULL'
)
Explication #
Si l’utilisateur sélectionne la région Nord, la requête filtre les ventes sur Nord.
Si l’utilisateur ne sélectionne rien, le paramètre vaut #NULL.
La condition suivante devient vraie :
:p_Region = '#NULL'
Le tableau affiche alors toutes les régions.
Exemple 3 — Rafraîchir un composant sans le filtrer #
Un lien peut aussi servir uniquement à rafraîchir un composant cible.
Dans ce cas, le lien ne transmet pas forcément une valeur métier.
Exemple :
- un bouton déclenche le recalcul d’un tableau ;
- une liste déclenche le rechargement d’un graphique ;
- un composant provoque la mise à jour d’un indicateur.
Ce type de lien est utile lorsque le composant cible doit simplement être recalculé après une action utilisateur.
Exemple 4 — Alimenter un bouton ACTION SQL
Un lien peut transmettre une valeur à un bouton ACTION SQL.
Exemple :
- l’utilisateur sélectionne une ligne dans un tableau ;
- le tableau transmet l’identifiant de la ligne au bouton ACTION SQL ;
- le bouton ACTION SQL exécute une requête sur cette ligne.
Exemple de requête :
Update
Commandes
Set
Statut = 'Validée'
Where
IdCommande = @[IdCommande]
Dans ce scénario, il faut vérifier que la valeur transmise au bouton SQL correspond bien à la ligne sélectionnée.
Il faut aussi tester les cas suivants :
- aucune ligne sélectionnée ;
- valeur vide ;
- caractères spéciaux ;
- sélection multiple, si elle est autorisée.
Les hyperliens vers un autre tableau de bord #
Les hyperliens vers un autre TDB sont différents des liens classiques entre composants.
Ils permettent d’ouvrir un autre tableau de bord en transmettant des paramètres.
Exemple :
- un tableau affiche une liste de clients ;
- l’utilisateur clique sur un client ;
- BiBOARD ouvre un TDB détail client ;
- l’identifiant du client est transmis au TDB destination.
Exemple de comportement attendu
| Action utilisateur | Résultat |
| Clic sur le client 1001 | Ouverture du TDB détail avec le client 1001 |
| Clic sur le client 1002 | Ouverture du TDB détail avec le client 1002 |
Ce mécanisme est particulièrement utile pour créer une navigation entre tableaux de bord.
AutoPostBack et rafraîchissement automatique #
Pour qu’un lien déclenche automatiquement un recalcul, il faut vérifier le comportement du composant source.
Dans certains cas, le composant source doit avoir un comportement de type AutoPostBack – Rafraichissement automatique.
Cela signifie que le tableau de bord réagit automatiquement lorsque l’utilisateur modifie la sélection.
Exemples :
| Situation | Point à vérifier |
| La cible ne se met pas à jour | Vérifier le lien et l’AutoPostBack |
| La cible se met à jour uniquement après une autre action | Vérifier le déclenchement automatique |
| Plusieurs composants dépendent les uns des autres | Vérifier les dépendances entre composants |
Il est recommandé d’éviter les boucles de liens.
Exemple à éviter :
- la liste A filtre la liste B ;
- la liste B filtre la liste A.
Même si BiBOARD protège contre les boucles infinies, ce type de configuration peut rendre le tableau de bord difficile à comprendre.
Cas particulier : les valeurs vides #
Lorsqu’un composant source n’a aucune sélection, il faut prévoir le comportement attendu.
Question à se poser :
Que doit afficher le composant cible si l’utilisateur n’a encore rien sélectionné ?
Dans la plupart des cas, le comportement attendu est :
- afficher toutes les données ;
- puis filtrer uniquement lorsqu’une valeur est sélectionnée.
Pour un lien paramètre, il faut donc gérer la valeur vide dans la requête SQL.
Exemple pour un paramètre texte :
Where
(
Region = :p_Region
Or :p_Region = '#NULL'
)
Pour plus de détails, voir aussi la page dédiée aux paramètres vides dans les requêtes BiBOARD.
Bonnes pratiques pour les Designers #
Privilégier les liens paramètres pour les gros volumes #
Si le composant cible affiche beaucoup de lignes, il est préférable d’utiliser un paramètre de requête.
Cela permet de filtrer directement en SQL et d’éviter de charger trop de données dans le tableau de bord.
Toujours tester le cas “aucune sélection” #
Un tableau de bord doit être cohérent dès son ouverture.
Il faut donc vérifier ce que le composant cible affiche lorsque l’utilisateur n’a encore rien sélectionné.
Vérifier le champ source et le champ cible #
Un lien ne fonctionne correctement que si la valeur transmise correspond bien au champ attendu.
Exemple :
| Mauvais paramétrage | Risque |
| Source = Libellé région | Cible = Code région |
| Source = Nom client | Cible = Id client |
| Source = Année texte | Cible = Année numérique |
Éviter les cycles de rafraîchissement #
Il faut éviter de créer des dépendances circulaires entre composants.
Exemple :
- composant A filtre composant B ;
- composant B filtre composant C ;
- composant C filtre composant A.
Ce type de configuration peut provoquer un comportement difficile à diagnostiquer.
Documenter les liens importants #
Sur un tableau de bord complexe, il est conseillé de documenter les liens principaux.
Exemple :
| Source | Cible | Type de lien | Rôle |
| Liste Région | Tableau Ventes | Paramètre | Filtre SQL sur la région |
| Tableau Clients | TDB Détail Client | Hyperlien | Ouvre la fiche client |
| Bouton Recalcul | Graphique CA | Rafraîchissement | Recharge le graphique |
Cela facilite la maintenance du tableau de bord.
Méthode de diagnostic #
Si un lien ne fonctionne pas comme prévu, voici les principaux contrôles à effectuer.
| Symptôme | Contrôles recommandés |
| Le composant cible ne se rafraîchit pas | Vérifier le lien, l’AutoPostBack et les dépendances |
| Le filtre ne s’applique pas | Vérifier la sélection source, le champ cible et l’opérateur |
| Le tableau cible est lent | Vérifier si le filtre est appliqué en SQL ou après chargement |
| Le paramètre SQL n’est pas remplacé | Vérifier que le paramètre est bien déclaré et utilisé au bon niveau |
| Le lien renvoie une mauvaise valeur | Vérifier le champ source et le champ cible |
| L’hyperlien ouvre le mauvais TDB | Vérifier le TDB destination et les paramètres transmis |
| Le comportement change avec une vue sauvegardée | Vérifier les valeurs par défaut, la sélection visible et l’état sauvegardé |
Résumé #
Les liens entre composants permettent de rendre un tableau de bord BiBOARD interactif.
Ils peuvent servir à :
- filtrer un composant ;
- alimenter un paramètre de requête ;
- rafraîchir un composant ;
- transmettre une valeur à une action SQL ;
- ouvrir un autre tableau de bord avec des paramètres.
À retenir :
| Besoin | Type de lien conseillé |
| Filtrer simplement un petit volume | Filtre de données |
| Filtrer un gros volume | Paramètre de requête |
| Recharger un composant | Rafraîchissement |
| Transmettre une valeur à un bouton SQL | Action source |
| Naviguer vers un TDB détail | Hyperlien |
La bonne pratique principale est de privilégier les liens paramètres lorsque le volume de données est important, car le filtre est alors appliqué directement dans la requête SQL.
