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 :

Graphe à partir de requête


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Graphe à partir de requête
    Bonjour,


    J'ai une fenêtre graphe, et je veux tracer par programmation des courbes dans cette fenêtre à partir de divers requêtes.

    Voici un exemple de requête (REQ_FICHIER1_RUBRIQUE1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
    	FICHIER1.DATE AS DATE,	
    	FICHIER1.HEURE AS HEURE,	
    	FICHIER1.RUBRIQUE1 AS RUBRIQUE1
    FROM 
    	FICHIER1
    WHERE 
    	FICHIER1.DATE BETWEEN {gdDebutGraphe} AND {gdFinGraphe}
    ORDER BY 
    	DATE ASC,	
    	HEURE ASC
    Il y a juste le nom du fichier et le nom de la rubrique qui change en fonction de mes requêtes.
    gdDebutGraphe et gdFinGraphe sont des variables globales de mon application, dont je récupère la valeur grâce à une calendrier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	gdDebutGraphe = CAL_Calendrier1..DateDébut
    	gdFinGraphe = CAL_Calendrier1..DateFin
    Je récupère ces deux dates, ainsi que la valeur d'un combo dans une variable globale sParamGraphe (qui définit la requête à utiliser pour alimenter le graphe)

    Voici le code d'initialisation de ma fenêtre graphe
    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
    nIndiceGraphe est un entier
    nIndiceGraphe = 0
     
     
    SELON sParamGraphe
    	CAS "Paramètre 1"
    		HExécuteRequête(REQ_FICHIER1_RUBRIQUE1)
    		HLitPremier(REQ_FICHIER1_RUBRIQUE1)
     
    		TANTQUE PAS HEnDehors(REQ_FICHIER1_RUBRIQUE1)
    			nIndiceGraphe++
    			grEtiquetteCatégorie(GRF_Graphe1,nIndiceGraphe,REQ_FICHIER1_RUBRIQUE1)
    			grAjouteDonnée(GRF_Graphe1,1,nIndiceGraphe,REQ_FICHIER1_RUBRIQUE1)
    			HLitSuivant(REQ_FICHIER1_RUBRIQUE1)
    		FIN
    	CAS "Paramètre 2"
    		HExécuteRequête(REQ_FICHIER1_RUBRIQUE2)
                                   [...]
    FIN
    Ce code marche bien, mais je pense avoir un problème au niveau de ma requête.
    En effet, la condition concernant la date (gdDebutGraphe et gdFinGraphe) n'est pas prise en compte. Je trace donc tous les enregistrements sans tenir compte du paramétrage que j'ai fait sur mon calendrier (alors que les variables gdDebutGraphe et gdFinGraphe on enregistrer correctement les valeurs). Ca doit venir de la déclaration de la condition dans le code de ma requête (j'ai utilisé l'assistant).
    Quel est la syntaxe correcte pour intégrer des variables globales dans une condition de requête ?

    J'ai aussi un second problème.
    Ayant une rubrique Heure et une rubrique Date dans chaque fichier, je veux tracer un graphe avec échelle de type Date/Heure avec espacement réel.
    N'ayant pas trouvé de moyen de le faire par programmation, j'ai coché l'option "Echelle des abscisses espacée en fonction du temps" dans mon champ graphe.
    Comment est-ce que je peux faire ensuite pour ajouter des données à la bonne abscisse par programmation ?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : mars 2005
    Messages : 1 683
    Points : 2 575
    Points
    2 575
    Par défaut
    Bonjour,

    Pour la première question réponse ici : http://doc.pcsoft.fr/fr-FR/?2032050&...es-une-requete

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Premier problème réglé, merci
    J'ai choisi la syntaxe <Nom de la requête>.<Nom du paramètre> = <Valeur du paramètre>

    Plus que le deuxième problème

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : mai 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    J'ai partiellement résolu le problème.

    Voici le nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELON sParamGraphe
    	CAS "Paramètre 1"
    		HExécuteRequête(REQ_FICHIER1_RUBRIQUE1)
    		grSourceEtiquetteCatégorie(GRF_Graphe1,grRubrique,"REQ_FICHIER1","DATE")
    		grSourceSérie(GRF_Graphe1,1,grRubrique,"REQ_FICHIER1","RUBRIQUE1")
    Maintenant j'ai les bonnes qui se mettent (avec les "trous" bien respectés).
    Le problème c'est que l'heure n'est pas prise en compte (normal, à aucun moment j'y fais référence dans mon code), ce qui fait que si j'ai plusieurs valeurs à la même date mais à des heures différentes, mes points se placent sur la même ligne verticale.

    Est-ce que je dois créer une nouvelle rubrique au format DATEHEURE qui combine mes deux rubriques DATE et HEURE (si oui, comment on fait l'opération ?), ou bien y a t-il un moyen de le faire sans toucher à ma base de données ?

Discussions similaires

  1. construire un graphe à partir d'une requête Sql
    Par mehdiyou dans le forum VB.NET
    Réponses: 5
    Dernier message: 20/04/2008, 18h27
  2. Réponses: 4
    Dernier message: 06/04/2007, 13h08
  3. Réponses: 4
    Dernier message: 13/04/2006, 17h42

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