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

VB 6 et antérieur Discussion :

graph en temps reel


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut graph en temps reel
    Bonjour a tous, je mapprete a developper, dans une appli vb6, un graph qui va monitorer en temps reel certaines donnees dune base de donnees. Ces donnees seront differentes series (representée par differents recordsets ado) comportant chacune une valeur x (temps) et y (valeur) essentiellement.

    Je pensais au debut le faire dans excel (ce que jai deja fait auparavant) avec lajout dun timer qui refresh mon graphdata a chaque x secondes....le probleme est que jai peur davoir une perte de performance en raison de l'exportation effectuée a chaque refresh et aussi de probleme lorsquon ferme le fichier (peut ton detecter cet evenement en passant?)...cest pourquoi jai penser au MSChart (que jai jamais utilisé encore, mais qui na pas trop l'air compliqué) pour avoir des meilleurs resultat de performance...et d'usabilité.

    Jai fait une brieve lecture du tutoriel MSChart de ce site, mais jai crois detecter certaines lacunes qui me feront peut-etre revenir a ma premiere idee, mais jai besoin de vos confirmations:

    1-MSChart n'accepte pas directement un recordset comme source de donnees (Chartdata) ..il ma lair qui faut iterer dans le recordset et lui passer les record une a une. Ai-je raison?

    2-Est-ce que MSchart peut supporter des valeurs de l'axe X differentes pour differentes series..comme dans Excel (et ensuite faire un scale sur l'axe)?

    Merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut mise a jour
    apres quelques recherches...jai trouvé que MSChart a une propriété Datasource:

    http://msdn2.microsoft.com/en-us/lib...43(VS.60).aspx

    ..dapres ce lien, il me semble que si on a plusieurs series...la valeur de x doit etre commune pour chacune...ce qui nest pas le cas pour moi

    au lieu detre 1 seul recordset comprenant toutes les series...jai plusieurs recordsets representant une serie chacun comme ceci:

    serie1 (recordset1)
    x: 100 y :200
    x: 150 y :205
    x: 175 y : 201

    serie2 (recordset2)
    x:50 y:100
    x:85 y: 200
    x: 100 y: 105

    aussi, la premiere colone du recordset (axe x) doit etre string, mais la mienne est Datetime (SQL Server), ya-t-il une facon de convertir le type dun champ recordset?

    suggestions?

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Si tu utilise un Adodc, pour actualiser je supose que tu utilise l'evenement Adodc1_MoveComplete est que tu fait une recuperation du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With MSChart1
     .TitleText = "Fournisseur:  " & Adodc1.Recordset.Fields.Item(9)
     .RowLabel = Adodc1.Recordset.Fields.Item(1)
     .Column = 1
     .ColumnLabel = Adodc1.Recordset.Fields.Item(3)
     .Data = Adodc1.Recordset.Fields(3)
     .Column = 2
     .ColumnLabel = Adodc1.Recordset.Fields.Item(4)
     .Data = Adodc1.Recordset.Fields(4)
     .Column = 3
     .ColumnLabel = Adodc1.Recordset.Fields.Item(5)
     .Data = Adodc1.Recordset.Fields(5)
    End With
    au lieux de faire comme dans l'exemple .Data = Adodc1.Recordset.Fields(5) passe (exemple) .Data = CLng(Adodc1.Recordset.Fields(5)) ,
    pour toi, Clng ne sera peut être pas le bon format, fait un F2 dans ton editeur VB, regarde se qui correspond a la ligne Conversion, tu y trouveras sûrement le bon format pour ta conversion.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Par défaut
    merci de ta reponse..

    Cest ce que je craignait...detre forcé a itérer dans mes recordsets. Ceci sera moins performant que de simplement passer un recordset en datasource, mais a lair detre la seule solution a mon probleme.

Discussions similaires

  1. afichage graph en temps reel
    Par youcef81 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/02/2008, 11h54
  2. Données et graph en temps reel
    Par bergoliv dans le forum Macros et VBA Excel
    Réponses: 98
    Dernier message: 20/12/2007, 18h33
  3. [Info][Debutant(e)]affichage temps reel
    Par nine dans le forum Développement Web en Java
    Réponses: 15
    Dernier message: 26/11/2004, 17h03
  4. Réponses: 5
    Dernier message: 19/07/2004, 17h27
  5. Linux et le temps réel
    Par Shrem dans le forum Administration système
    Réponses: 6
    Dernier message: 11/12/2002, 08h21

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