Utiliser les outils d'aide à la décision

Jean-Luc Mellet

La version Entreprise de Delphi propose dans sa palette d'outils les composants d'aide à la décision. Vous allez voir aujourd'hui que cet outil très pratique méritait bien une présentation.

- Titre : Utiliser les outils d'aide à la décision

- Auteur : Jean-Luc Mellet

- Parution : 12 février 2003

- Mise à jour : 25 décembre 2019

- Licence : Copyright ® 2003 Jean-Luc Mellet . Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Aide à la décision

- II. Exemple de données

- III. Les outils proposés

- IV. Rappel sur SQL

- V. Mise en pratique

- VI. Les étapes ?

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.

1. SELECT Env.Livraison, Emp.Nom, SUM(Env.Montant) Total

2. FROM "Employes.db" Emp

3. INNER JOIN "Envois.db" Env

4. ON  (Emp.Numéro = Env.Employe)

5. 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 :

Sans une seule ligne de programme !

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).

1. DecisionPivot1.DecisionSource := DecisionSource1;

2. DecisionGrid1.DecisionSource := DecisionSource1;

3. DecisionGraph1.DecisionSource := DecisionSource1;

4. DecisionCube1.Dataset := DecisionQuery1;

5. 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.

Code source ici