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

QlikView Discussion :

Explication de script


Sujet :

QlikView

  1. #1
    Membre habitué Avatar de Juwan
    Femme Profil pro
    Data manager
    Inscrit en
    Avril 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Data manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 172
    Points : 137
    Points
    137
    Par défaut Explication de script
    Bonjour à tous,

    je cherchais à calculer les nombres d'heures entre deux dates, tout en excluant les week end et les heures non travaillées.... après lourdes reflexions étant débutant avec Qlikview, j'ai décidé de demander de l'aide à google qui m'a sorti le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    =Interval(fabs(
              (RangeMin(frac([Date/time accepted]), MakeTime(17.5))
              - RangeMax(frac([Date/time entered]), MakeTime(8.5)))
              + (NetWorkDays([Date/time entered], [Date/time accepted]-1) * MakeTime(9))) // Only 8 hours per whole day
    )
    Il marche très bien, j'ai effectué toute une série de calcul avec mon petit stylo et ma petite calculette.

    Par contre, ce qui m’embête c'est que j'ai du mal à comprendre ce qui est fait... Ok pour NetWorkDays et fabs mais pour le reste ?

    quelqu'un aurait il la gentillesse de m'éclairer un peu ?

    Merci beaucoup
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Le calcul ressort le nombre d'heures travaillées entre 2 heures, en prenant comme base que l'on ne travaille que 9 heures par jour, de 8h30 à 17h30.
    Pour cela, il faut compter :
    - de l'heure de début jusque 17h30 le premier jour.
    - n fois 9 heures par jour entier
    - de 8h30 à l'heure de fin le dernier jour.

    frac (Date/time accepted) donne la partie décimale de la date/heure, autrement dit uniquement l'heure.

    rangemin(heure acceptée, maketime(17.5)) donne la plus petite des heures. Autrement dit, ça renvoie l'heure acceptée, sauf si celle-ci est supérieure à 17h30. Dans ce cas, la valeur 17h30 sera utilisée.

    rangemax(heure entrée, maketime(8.5)) donne bien évidemment la plus grande des heures. Donc l'heure entrée sauf si celle-ci est inférieure à 8h30. Dans ce cas, la valeur 8h30 sera utilisée.

    Networkdays([Date/time entered], [Date/time accepted]-1) renvoie le nombre de jours ouvrés entre les dates. On retire 1 jour pour ne pas comptabiliser que les jours entiers, et l'on multiplie par 9 heures.

    L'addition donne le temps passé.

    Note : J'ai un doute sur la formule si on saisit du 10/06/2013 10h au 11/06/2013 à 4h (du matin). Avec cette formule, on obtient 4 - 10 + 0 soit -6 heures ! d'où l'utilisation de fabs qui retourne la partie absolue, soit 6 heures.
    Or on devrait obtenir 17h30 - 10h = 7h30.

  3. #3
    Membre habitué Avatar de Juwan
    Femme Profil pro
    Data manager
    Inscrit en
    Avril 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Data manager
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 172
    Points : 137
    Points
    137
    Par défaut
    Merci beaucoup ! C'est bien plus clair désormais. Je vais pouvoir réfléchir a une autre formule plus élaborée. Je vous tiens au courant.
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. explication de script
    Par DARDI dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/02/2009, 14h08
  2. Explication commande script
    Par vallesm77 dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 10/02/2009, 15h59
  3. Explication sur un script
    Par donny dans le forum Linux
    Réponses: 6
    Dernier message: 29/06/2006, 11h33
  4. Explication sur un script
    Par Krispy dans le forum Linux
    Réponses: 1
    Dernier message: 22/03/2006, 12h17
  5. Explication script shell
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 14/06/2004, 13h54

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