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.NET Discussion :

mise en place d'un tableau de bord


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut mise en place d'un tableau de bord
    Bonjour à tous. J'espère que vous allez bien^^

    je suis stagiaire et on m'a demandé de mettre en place un tableau de bord qui calcule le MTTR et le MTBF .
    Je travaille avec visual basic 2010 et je suis débutante. Le problème est que je n'arrive pas à les programmer.

    J'ai une table dont les champs sont: ( id demande d'intervention -date demande d'intervention-heure demande d'intervention et heure fin d'intervention).
    J'ai crée une table que j'ai appelé indicateur de performance.

    Pour calculer le MTTR on a besoin des données de la table demande d'intervention( heure demande d'intervention , heure fin travail et id demande d'intervention)
    MTTR= (temps de panne / nombre de panne)
    ps: temps de panne = heure fin de travail - heure demande d'intervention
    Nombre de panne= nombre de id demande d'intervention

    mon problème je savais pas comment faire appel à la table demande d'intervention pour qu'à chaque fois que j'entre le matricule de l'équipement les données s'affichent(le nombre de panne total, et la somme de temps de panne pour l'équipement saisi)

    Voilà le code que j'ai écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            con.Open()
     
            Dim dt As New DataTable
     
            Dim cmd As New OleDbCommand("SELECT [H_DI] FROM [Demande d'intervention]where [MAT_eq] =" & TextBoxX1.Text, con)
     
            TextBoxX2.Text = cmd.ExecuteScalar()
            con.Close()

    Si quelqu'un pourra m'aider je lui serais très reconnaissante et merci d'avance

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    bonjour ;

    une peu de fonctionnel ne fera pas de mal

    donc les "demande d'intervention" pourraient être plusieurs ,non?

    et est ce que tu cherche indicateurs d'une journée et bien pour toutes les durées ?genr je veux MTTR pour le vendredi 10/05/2013 ou bien pour toutes ?-

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    MTTR= (temps de panne / nombre de panne)
    ps: temps de panne = heure fin de travail - heure demande d'intervention
    Nombre de panne= nombre de id demande d'intervention
    MTTR=(Somme des durées de panne)/Nombre de pannes

    Somme des durées de panne= Somme(heure fin de travail-Heure demande intervention)

    EDIT: au passage, calculer la MTTR sur une journée n'a strictement aucun intérêt (même pour un grand échantillon)
    D’ailleurs, cet indicateur doit porter sur un modèle de machine et non pas sur une machine (sauf dans le cas ou le parc est composé d'une seule machine d'un modèle donné évidement).
    On ne peut pas dire qu'il y a une différence de maintenabilité entre deux machines du même modèle.
    Et pour votre problème, tapez "Instructions SQL" dans google^^
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien bio médical
    Inscrit en
    Décembre 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien bio médical
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2012
    Messages : 328
    Points : 768
    Points
    768
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim cmd As New OleDbCommand("SELECT DATEDIFF(hour,D1,D2) FROM [Demande d'intervention] WHERE [MAT_eq] =" & TextBoxX1.Text, con)
    Où D1 est le champ contenant l'heure de fin d'intervention et D2 celui de la demande.

    Le requête devrait renvoyer une ligne pour chaque intervention où MAT_eq=xxxx. Ligne qui ne contient que la différence entre les deux DateTime.


    Ensuite on met le résultat de la requête dans la DataTable en fesant :
    On récupère le nombre d'interventions par la propriété Row.Count de la DataTable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _NBInterventions as Integer=dt.Rows.Count
    Il ne reste plus qu'à parcourir la DataTable pour faire la somme des DateDiff.

    Ou peut être imbriquer une fonction de somme de SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim cmd As New OleDbCommand("SELECT SUM(DATEDIFF(hour,D1,D2)) FROM [Demande d'intervention] WHERE [MAT_eq] =" & TextBoxX1.Text, con)
    Dim _DuarationSum as Integer=cmd.ExecuteScalar()
    mais ça oblige d'exécuter une deuxième requête pour avoir le nombre d'enregistrements à moins de rajouter encore une instruction COUNT(MAT_eq).

    PS: je n'ai pas testé les requêtes mais ça vous donne déjà une idée de solution.
    est ton amis, MSDN est ton maître, pour le reste il y a Developpez.net. Pensez au au et

Discussions similaires

  1. Tableau de bord de suivi et Mise en forme
    Par lilou89 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/09/2014, 09h49
  2. [XL-2010] Condition sur un tableau puis mise en place d'un texte
    Par Blood69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/12/2011, 17h39
  3. [ZF 1.10] Mise en place d'un tableau - Zend_Form
    Par flilou dans le forum Zend_Form
    Réponses: 5
    Dernier message: 10/08/2011, 10h13
  4. [XL-2003] Mise en place d'un tableau récapitulatif
    Par ymcal dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/12/2010, 12h15
  5. Mise en place d'index....??
    Par liv dans le forum Requêtes
    Réponses: 6
    Dernier message: 18/12/2003, 11h04

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