IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Réaliser un graphe de type courbe ou nuage en fonction du temps


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut Réaliser un graphe de type courbe ou nuage en fonction du temps
    but : l'utilisateur sélectionne un article et une plage de temps, la je dois aller chercher dans ma base de donnée les dates et les prix de l'article. Puis je les affiche dans une table et dans une courbe.

    Méthode 1 : graphe de type courbe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    POUR nIndice = 1 A nNbreTarifACh
    	SELON LST_SOURCE..ValeurMémorisée
    		CAS "PAB"
    			grAjouteDonnée(CST_NOMGRAPHE, 1, nIndice, gfclTarifs:csTarifAch_Tab[nIndice]:mPab)
    		CAS "PAF"
    			grAjouteDonnée(CST_NOMGRAPHE, 1 , nIndice, gfclTarifs:csTarifAch_Tab[nIndice]:mPaf)
    		CAS "PAN"	 
                                           grAjouteDonnée(CST_NOMGRAPHE, 1, nIndice, gfclTarifs:csTarifAch_Tab[nIndice]:mPan)
    		CAS "PAN"
    			grAjouteDonnée(CST_NOMGRAPHE, 1, nIndice, gfclTarifs:csTarifAch_Tab[nIndice]:mPan)
    		CAS "PANNN"
    			grAjouteDonnée(CST_NOMGRAPHE, 1, nIndice, gfclTarifs:csTarifAch_Tab[nIndice]:mPannn)
     
    		AUTRE CAS
     
    	FIN
    	grEtiquetteCatégorie(CST_NOMGRAPHE, nIndice, DateVersChaîne(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb,"JJ/MM/AAAA"))
    FIN
    Donc la j’ai bien la courbe avec les dates affichées en légende mais c’est pas proportionnel au temps. Si j’ai 4 dates exemples 01/01/2011, 06/01/2011, 01/04/2011, 10/11/2011. l’espace entre 01/01/2011, 06/01/201 est le même que 06/01/2011, 01/04/2011.


    Méthode 2 : graphe de type courbe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    POUR nIndice = 1 A nNbreTarifACh
    	SELON LST_SOURCE..ValeurMémorisée
    		CAS "PAB"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPab
    		CAS "PAF"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPaf
    		CAS "PAN"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPan
    		CAS "PANN"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPann
    		CAS "PANNN"
    			nValY=gfclTarifs:csTarifAch_Ta[nIndice]:mPannn
    		AUTRE CAS
     
    	FIN
    	grAjouteDonnée(CST_NOMGRAPHE, 1, DateVersEntie(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb), nValY)
    	grEtiquetteCatégorie(CST_NOMGRAPHE, DateVersEntier(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb), DateVersChaîne(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb,"JJ/MM/AAAA"))
    FIN
    Je construis ma courbe selon la valeur de la date. La j’ai bien l’espacement entre mes points mais ne trace pas la courbe car entre les points j’ai pas de valeur.


    Méthode 3 : graphe de type nuage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    POUR nIndice = 1 A nNbreTarifACh
    	SELON LST_SOURCE..ValeurMémorisée
    		CAS "PAB"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPab
    		CAS "PAF"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPaf
    		CAS "PAN"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPan
    		CAS "PANN"
    			nValY=gfclTarifs:csTarifAch_Tab[nIndice]:mPann
    		CAS "PANNN"
    			nValY=gfclTarifs:csTarifAch_Ta[nIndice]:mPannn		
    		AUTRE CAS
     
    	FIN
    	nValx=DateVersEntier(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb)
     
    	grNuageReliePoint(CST_NOMGRAPHE,Vrai)
    	grNuageAjouteDonnéeXY(CST_NOMGRAPHE, 1, nValx, nValY)
     
    	//grEtiquetteCatégorie(CST_NOMGRAPHE, nIndice , DateVersChaîne(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb,"JJ/MM/AAAA"))
    FIN
    Alors ici, j’ai bien mes points, l’espacement qu’il faut et le reliment des points par contre je ne peux pas agir sur les étiquettes de mon axe abscisse il mets la valeur numérique de ma date DateVersEntier et moi je fvoudrais DateVersChaîne(gfclTarifs:csTarifAch_Tab[nIndice]:sDatedeb,"JJ/MM/AAAA")



    Dans la description du graphe , onglet général, j’ai l’option « dessin des valeurs nulles : » j’ai sélectionné ignorées. Cette option est utilisable pour les graphe de type courbe ? si oui je ne trouve pas dans l’aide pour faire cette commande par programmation. Est ce que cette option n’est pas seulement pour les graphes de type nuage ?

    Dans la description du graphe, onglet général, partie « Axe des X » on peux coché échelle des abscisses espacée en fonction du temps. On peut l’utilisé pour les graphe de type courbe ou nuage ? Par programmation il y a une instruction pour cela ? et je fais comment pour qu’il sache la date qu’il faut? Je dois mettre la date dans nValx (grNuageAjouteDonnéeXY(CST_NOMGRAPHE, 1, nValx, nValY).

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 325
    Points : 3 838
    Points
    3 838
    Par défaut
    Bonjour,

    A mon avis, la méthode 2 devrait aller.
    Pour remplir tes espaces vides, lors du traitement de récupération des données, il faudrait que tu remplisses ces espaces par la dernière valeur réelle, comme cela, toutes dates auront des valeurs.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 325
    Points : 150
    Points
    150
    Par défaut
    si je fais cela, je vais obtenir un signal caré et non une courbe. après je peux calculer la valeur de chaque point entre 2 dates mais si je fais cela lorsque je me deplace sur le courbe il va affiché un prix et une date dans mon info bulle et cette date ne va pas existé ni ce prix. je préfère encore avoir que des points ou j'ai un prix a une date.

    ce que j'avais fait c'était de mettre tous les points avec une valeur à 0 puis pour mes dates mettre le prix. et la j'avais une ligne sur le 0 et un pique quand j'avais un prix. et je pensais qu'en mettant l'option dans la description du graphe , onglet général "Dessin des valeurs nulles" = ignorées. cela aurais marché mais je pense pas que cette option soit pour les graphes de type courbe.

Discussions similaires

  1. [WD16] graphe de type courbe.
    Par law56100 dans le forum WinDev
    Réponses: 0
    Dernier message: 22/09/2011, 15h52
  2. [WD14] afficher format dateheure en abcisse d'un graphe de type courbe
    Par law56100 dans le forum WinDev
    Réponses: 1
    Dernier message: 25/02/2011, 22h34
  3. Réponses: 2
    Dernier message: 15/03/2009, 23h52
  4. probleme graphe type courbe windev
    Par law56100 dans le forum WinDev
    Réponses: 0
    Dernier message: 10/04/2008, 16h35
  5. Graph avec plusieurs courbes - GD
    Par vargasvan dans le forum Modules
    Réponses: 4
    Dernier message: 11/05/2006, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo