Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


4D Chart

Date de publication : Novembre 2004

Par Jean-Yves FOCK-HOON (4D Inc.)
 

Faire des graphes est très aisé mais comment faire des graphiques par programmation ? Trois commandes vous permettent cela : ch_Tableaux vers graphe, ch_Donnees vers graphe, ch_Selection vers graphe. Le choix de la commande est lié au type de données à manipuler. Quelle commande choisir ?

I. Résumé
II. Introduction
III. ch_Tableaux vers graphe
IV. ch_donnees vers graphe
V. ch_Selection vers graphe
VI. La base de démonstration
VII. Conclusion


I. Résumé

Le plugin 4D Chart n'en est plus vraiment un ! Ce qu'il fallait acheter séparément est désormais intégré depuis 4D 6.0. 4D Chart est un outil pour présenter graphiquement vos données sous forme de graphes. Cette Note technique vous montre comment générer vos graphes au sein même de 4D.


II. Introduction

A priori, vous savez déjà tous comment utiliser 4D Chart en mode utilisation ou dans une zone de plugin sur un formulaire. Tout ce que vous avez à faire est de sélectionner le type de graphe, les champs ou les formules à utiliser. Mais comment faire des graphiques par programmation ? Quatre commandes vous permettent cela : ch_Tableaux vers graphe, ch_Donnees vers graphe, ch_Selection vers graphe (http://4d.developpez.com/documentation/4DDoc2004/), et la commande GRAPHE, qui est une commande devenue obsolète et donc nous ne traiterons pas ici.

Si donc trois commandes peuvent être utilisées pour créer un graphe, elles n'en sont évidemment pas pour autant identiques. Voyons comment déterminer nos choix.


III. ch_Tableaux vers graphe

Pour générer un graphe à partir d'un tableau, vous aurez recours à ch_Tableaux vers graphe.

http://4d.developpez.com/documentation/4DDoc2004/CMF/CMF14526.HTM

L'idée est simple : si vous avez X valeurs en abscisse et Y valeurs en ordonnées vous devez générer une matrice à Z valeurs (où Z = X*Y) pour avoir votre graphe. Mais parfois les commandes les plus évidentes peuvent devenir les plus difficiles à comprendre.

Prenons un exemple : un commercial a vendu un certain nombre de voitures dans l'année. Nous voulons voir ses ventes mensuelles. Supposons que nous ayons 55 factures, nous devons les éclater dans douze éléments d'un tableau 4D où chaque élément figure un mois de l'année. Le tableau construit, nous connaissons le nombre de véhicules vendus par mois et nous pouvons dessiner le graphe. Nous avons le nom du vendeur, les douze mois et le contenu de chacun de ces mois. Dans la mesure où nous avons déjà calculé notre résultat mois par mois, la façon la plus directe de générer le graphe est la commande ch_Tableaux vers graphe.

ch_Tableaux vers graphe a besoin de trois tableaux :

   · Valeur en X (catégories)  : un tableau à 1 élément soit ici le nom du commercial

   · Valeur en Y (séries)  : un tableau de douze éléments figurant les mois

   · Valeur en Z (valeurs) : un tableau de douze éléments contenant les résultats

Vous n'aurez pas manqué de noter que le tableau Z contient douze valeurs numériques soit la taille du tableau X multipliée par celle du tableau Y.

Passons à une hypothèse un peu plus compliquée. Imaginons que notre garage ait eu non pas un, mais cinq vendeurs. Sur la base de toutes les factures, nous devons les ventiler par vendeur et par mois.

Alors que dans notre premier exemple nous avons utilisé un tableau de douze éléments, ici nous emploierons un tableau à deux dimensions : 5*12. Cinq éléments pour les vendeurs et douze pour les mois.

Tout comme dans le premier exemple, trois tableaux :

   · Valeur en X : un tableau de cinq éléments pour y mettre les commerciaux

   · Valeur en Y : un tableau de douze éléments figurant les mois

   · Valeur en Z : un tableau à deux dimensions 5*12 contenant les résultats

Remarquez que le tableau à deux dimensions contient 60 valeurs, soit le produit du nombre de commercial par le nombre de mois. Et là encore, ch_Tableaux vers graphe est la commande idéale pour ce que nous voulons faire.

En clair, si vous êtes dans la situation où vous avez à calculer votre résultat, par exemple une somme, un calcul ou ce que vous voulez, alors stockez-les dans un tableau et tirez parti de ch_Tableaux vers graphe. Facile non ? Pensez juste à faire correspondre le tableau des valeurs en Z soit X*Y = Z.

Dans la base exemple, sélectionnez le menu ch_Tableaux vers graphe pour voir un graphe en 3D.

info Note : Remarquez que le tableau Z ne pas doit être à deux dimensions. Vous devez le convertir en un seul tableau à une dimension contenant tous les résultats. Les premiers éléments de ce tableau converti contiendront les valeurs de la première colonne du tableau à deux dimension alors que les éléments suivants contiendront les colonnes suivantes.

Voici un exemple :


notre tableau à deux dimensions « tableau (3 ; 4) » et le tableau converti correspondant « rValeur » avec nos douze éléments :

tableau{1}{1} -> rValeur {1}

tableau{1}{2} -> rValeur {2}

tableau{1}{3} -> rValeur {3}

tableau{1}{4} -> rValeur {4}

tableau{2}{1} -> rValeur {5}

tableau{2}{2} -> rValeur {6}

tableau{2}{3} -> rValeur {7}

tableau{2}{4} -> rValeur {8}

tableau{3}{1} -> rValeur {9}

tableau{3}{2} -> rValeur {10}

tableau{3}{3} -> rValeur {11}

tableau{3}{4} -> rValeur {12}


IV. ch_donnees vers graphe

Parfois vos données sont déjà toutes prêtes dans vos enregistrements et il n'y a rien à calculer. Vous avez deux champs et vous aimeriez générer un graphe sur ces deux champs. La commande qui convient alors est ch_donnees vers graphe.

http://4d.developpez.com/documentation/4DDoc2004/CMF/CMF14527.HTM

Pour revenir à notre exemple précédent, considérons que nous voulions détailler le nombre de véhicules par marque et par vendeur. Marques et quantités sont des données présentes dans la table [Ventes]. Comme nous l'avons déjà vu, nous pourrions aussi mettre ces données dans un tableau. Mais dupliquer les données dans des tableaux peut inutilement, si ces tableaux sont de taille importante, consommer de la mémoire vive en grande quantité.

ch_Donnees vers graphe a besoin de trois types d'informations :

   · Valeur en X : l'ID du champ pour la catégorie

   · Valeur en Y : l'ID du champ pour la série

   · Valeur en Z : l'ID du champ pour la valeur

Dans notre cas, la marque du véhicule sera la catégorie, les noms des vendeurs seront la série et les quantités seront les valeurs.

Ainsi sur la sélection courante, il est aisé de construire le graphe sans avoir recours aux tableaux.

ch_Donnees vers graphe a un autre intérêt. Nous l'avons vu avec ch_Tableaux vers graphe, il fallait ventiler nos valeurs dans des tableaux, ce qui signifie que, techniquement, nous devions créer un nouvel élément pour chaque enregistrement.

Dans la mesure où certains éléments peuvent être la réplique d'autres, nous les groupons et réduisons le nombre de colonnes. Voilà pourquoi nous bouclons sur la sélection pour déterminer où cumuler les valeurs. Avec ch_Donnees vers graphe nous pouvons passer un paramètre qui dira à 4D s'il doit ou non grouper nos valeurs. Avec cent enregistrements, nous pouvons nous attendre à avoir un graphe de cent colonnes (1 colonne égale 1 enregistrement) ou alors de quelques colonnes si nous demandons à grouper certaines catégories.

Dans la base exemple, sélectionnez le menu ch_Donnees vers graphe pour voir un graphe en colonnes avec des valeurs groupées.


V. ch_Selection vers graphe

Parfois vos graphes sont le fruit de valeurs issues de divers champs. Dans ce cas-là, vous gagnerez à utiliser la commande ch_Selection vers graphe.

http://4d.developpez.com/documentation/4DDoc2004/CMF/CMF14525.HTM

Dans notre nouvel exemple, la table des commerciaux a six autres champs qui contiennent une répartition des véhicules vendus par catégorie. Affichons un graphe de ces valeurs. ch_Tableaux vers graphe est encore possible. Nous pouvons analyser la sélection, récupérer les valeurs et les cumuler dans des tableaux pour finir par notre graphe… Ou bien utiliser ch_Selection vers graphe !

ch_Selection vers graphe a besoin de deux types d'informations :

   · Valeur en X : l'ID du champ pour la catégorie (dans notre exemple : Employés)

   · Valeur en Z : un tableau qui contient les ID des champs sera utilisé pour les séries (les champs 3, 4, 5, 6 et 7 de la table 2).

Les valeurs en Y peuvent être définies si plusieurs valeurs ont été définies pour Z.

Cela signifie que cette commande est parfaite pour des graphiques en 2D. Cependant dans ce cas le tableau fourni pour Z ne contiendra qu'un élément, le n° du champ à utiliser.

Cette commande comporte un paramètre qui permet, tout comme ch_Donnees vers graphe, de grouper par catégories. Alors même si elles se ressemblent, ces deux commandes ont tout de même leurs différences.

Nous l'avons vu plus avant, ch_Donnees vers graphe requiert trois champs pour X, Y et Z. Les valeurs définies en Y seront utilisées pour définir les séries. Si votre sélection d'enregistrements comporte jusqu'à huit valeurs différentes, votre graphe aura huit valeurs pour les séries. Avec ch_Selection vers graphe Y peut seulement être défini par le nombre de champs Z que vous donnez. Les valeurs définies pour Y seront le nom des champs définis pour Z.

Dans la base exemple, sélectionnez le menu ch_Donnees vers graphe pour voir un graphe en colonne avec des valeurs groupées.


VI. La base de démonstration

Le menu démonstration affiche un dialogue dans lequel vous demandez un graphique créé à partir d'une de ces trois commandes.


Téléchargez la base :

Base pour Windows

Base pour Mac OS


VII. Conclusion

Faire des graphes est très aisé mais peut être ne savez-vous pas comment vous y prendre. Le choix de la commande est lié au type de données à manipuler.

ch_Donnees vers graphe est une manière très rapide pour afficher vos données. La plupart du temps vous l'utiliserez pour des données stockées dans trois champs de la table courante.

Par exemple si une table [Clients] contient, en plus des coordonnées du client, un champ récapitulant la totalité de ses achats, vous pouvez utilisez ch_Donnees vers graphe pour générer un graphe montrant le total des ventes par ville ou par pays.

ch_Selection vers graphe sera utilisée pour des données stockées dans différents champs. Par exemple la table [Clients] contient dans trois champs la somme de ses factures acquittées, la somme de celles non encore payées et la somme des factures payables par un tiers payeur. Vous pouvez utiliser cette commande pour afficher ces montants par client.

Si vous avez besoin de plus de calcul, si vous avez besoin de travailler sur des tables liées, votre choix sera la construction de tableaux et donc d'utiliser la commande ch_Tableaux vers graphe.

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Contacter le responsable de la rubrique 4D