I. Aide à la décision▲
En entreprise, on a toujours besoin de trier, comparer, étudier des données selon certains critères. Une bonne gestion impose ce travail parfois fastidieux. Prenons le cas d'une petite société de quatre employés. Chaque employé de l'entreprise gère ses propres envois de courrier. Afin de connaître les dépenses de chacun en la matière, il faut trier les dépenses par employé puis par type d'envoi et enfin calculer les sous-totaux et totaux détaillés. Le stockage de ces éléments dans une base de données permet au programmeur d'extraire les informations voulues. Mais, avec les outils courants, ce travail serait vite compliqué. Chaque requête (demande de renseignement) obligerait à créer différentes vues de ces données. Pour nous faciliter le travail, Borland nous propose les outils d'aide à la décision.
II. Exemple de données▲
Avant d'aller plus loin, créons quelques données exemples pour illustrer notre propos. Dans une base de type standard (Paradox), nous allons créer deux tables, une pour les employés, et l'autre pour les envois.
Numéro |
Nom |
---|---|
1 |
Mickey Mouse |
2 |
Donald Duck |
3 |
Pat Hibulaire |
4 |
Dingo |
Numéro |
Client |
Montant |
Livraison |
---|---|---|---|
1 |
1 |
250.00 F |
Rapide |
2 |
1 |
342.35 F |
Colissimo |
3 |
2 |
542.50 F |
Simple |
4 |
3 |
356.00 F |
Colissimo |
5 |
1 |
210.00 F |
Simple |
6 |
4 |
1234.25 F |
Express |
7 |
4 |
564.00 F |
Simple |
Comment connaître d'un seul coup d'œil les dépenses de chacun pour chaque type d'envoi, le total de tous les envois pour chaque employé, le total des expéditions, etc. ? C'est là qu'interviennent TDecisionCube, TDecisionGrid, etc.
III. Les outils proposés▲
- DecisionCube est une interface permettant de formater l'affichage des données dans un DecisionGrid.
- DecisionGrid présente les données structurées et permet la manipulation par l'utilisateur final.
- DecisionQuery est un équivalent de TQuery, mais amélioré et proposant un éditeur de requête.
- DecisionSource est un équivalent de Tdatasource.
- DecisionPivot permet la modification de la présentation des données.
IV. Rappel sur SQL▲
SQL est le langage de requête qui permet d'extraire les informations d'une base de données selon certains critères de tri ou de sélection (entre autres). SQL inclut des fonctions de type SUM ou COUNT qui permettent respectivement de calculer la somme ou le nombre de plusieurs lignes en fonction d'un critère de regroupement. Prenons un exemple avec nos tables définies précédemment.
2.
3.
4.
5.
SELECT
Env.Livraison, Emp.Nom, SUM
(
Env.Montant)
Total
FROM
"Employes.db"
Emp
INNER
JOIN
"Envois.db"
Env
ON
(
Emp.Numéro =
Env.Employe)
GROUP
BY
Env.Livraison, Emp.Nom
Le résultat de cette requête nous donnerait le résultat suivant :
Livraison |
Nom |
Total |
---|---|---|
colissimo |
Pat Hibulaire |
356.00 f |
colissimo |
Mickey Mouse |
342.35 f |
express |
Dingo |
1254.25 f |
rapide |
Mickey Mouse |
250.00 f |
simple |
Dingo |
564.00 f |
simple |
Mickey Mouse |
210.00 f |
simple |
Donald Duck |
542.50 f |
Pas très visuel tout ça :-( !
V. Mise en pratique▲
Voici la même requête présentée avec les outils d'aide à la décision :
Mieux encore ! Vous pouvez voir à côté des en-têtes Nom et Livraison des petits ronds jaunes avec un signe moins à l'intérieur. Un simple clic à cet emplacement permet d'ouvrir ou de refermer les lignes ou colonnes détails. Voici deux copies d'écran après la manipulation.
Tout cela en un seul clic pour chaque vue ! Et vous remarquerez que le graphique s'adapte automatiquement à la nouvelle présentation des données. Encore plus fort ? Eh bien oui ! C'est possible ! Vous pouvez déplacer avec la souris (toujours à l'exécution) les en-têtes Nom et Livraison pour présenter les données à votre guise. Voici un exemple !
VI. Les étapes ?▲
Mon seul travail a été de construire la requête SQL, poser les différents composants sur ma fenêtre de présentation, et à relier les éléments entre eux par de simples propriétés.
- Création d'un nouveau projet.
- On pose sur la feuille les six éléments différents de l'onglet Decision Cube de la palette de composants.
- Création de la requête dans la propriété SQL du TdecisionQuery.
- Définition des propriétés (simples liens entre les composants).
2.
3.
4.
5.
DecisionPivot1.DecisionSource := DecisionSource1;
DecisionGrid1.DecisionSource := DecisionSource1;
DecisionGraph1.DecisionSource := DecisionSource1;
DecisionCube1.Dataset := DecisionQuery1;
DecisionQuery1.Active := True
;
C'est tout ! Pas mal non ?
Et il existe une foule de paramétrages et possibilités qu'il serait trop long de détailler ici. Mais j'espère que ce petit exposé vous aura donné l'envie d'en savoir plus.
Les heureux possesseurs des versions Pro/Entreprise de Delphi ne devraient manquer ça sous aucun prétexte.