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

Deski Discussion :

Faire une affectation en fonction d'une condition [V6]


Sujet :

Deski

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Points : 73
    Points
    73
    Par défaut Faire une affectation en fonction d'une condition
    Bonjour à tous,

    Je travail actuellement sur un univers "Absence".

    Dans mon rapport il faut que j'affiche le nombre d'absence jours ouvrés NB_JOUR_O par personne en fonction d'une date de début d'absence DateD et d'une date de fin d'absence DateF, pour un MOIS précis.

    NB_JOUR_O est un indicateur que j'ai créé sur Designer, il me calcul automatiquement en fonction de la période d'absence le nombre de jour ouvré.
    Ex : DateD = 01/04/2010
    DateF = 09/04/2010
    NB_JOUR_O = 7 (Les weekend ne sont pas comptés)

    Le problème ce complique lorsqu'une période d'absence est sur plusieurs mois.
    Car mon rapport Deski concerne un mois précisement.
    Ex : DateD = 24/03/2010
    DateF = 09/04/2010
    NB_JOUR_O = 13

    Or je voudrais affecter à DateD la valeur 01/04/2010 si le mois de DateD est inférieur à 04 pour ne compter que les jours ouvrés de ce mois.


    = Si (<MoisD> < 04 Et <MoisF> = 4) Alors ( <DateD> = 01/04/2010 )

    Or il y a une erreur de syntaxe.

    Ma question est donc :
    Existe t'il un opérateur d'affectation, ou d'autres solutions à mon problème.

    Je vous remercie d'avance.

    Baptiste

  2. #2
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Bonjour,

    L'erreur de syntaxe vient du fait que tu essaies d'attribuer une valeur à une variable : "<DateD> = 01/04/2010".

    La syntaxe correcte serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = Si (<MoisD> < 04 Et <MoisF> = 4) Alors EnDate("01/04/2010","jj/mm/aaaa") Sinon <DateD>
    Par contre, je ne comprends pas pourquoi tu as également placé un test sur <MoisF>...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Points : 73
    Points
    73
    Par défaut
    Bonjour Tom et merci pour ta rapidité de réponse,

    Alors effectivement tu ma donné une bonne syntaxe, l'affichage change, cependant l'indicateur NB_JOUR_O n'est pas mis à jour.

    Ex :
    DateD = 30/03/2010 ==> est devenu ==> DateD = 01/04/2010
    DateF = 02/04/2010
    NB_JOUR_O = 4 Alors qu'il doit être égale à deux.

    Ceci est du au fait que je change seulement l'affichage ?
    Alors que NB_JOUR_O calcul en fonction des tuples de la base.

    Une affectation pour le rapport (non pour la base) est elle possible?

    Merci d'avance

  4. #4
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Effectivement tu risques d'avoir un problème : La transformation des dates inférieures au 01/04/2010 est faite au niveau du rapport.

    Alors, si NB_JOUR_O est un indicateur calculé au niveau de la base ou de l'univers, ça ne fonctionnera pas. S'il est calculé au niveau du rapport, il faut bien faire porter le calcul sur la formule modifiée et non sur l'objet de base.

    Dans le cas d'un calcul au niveau de la base ou de l'univers, le problème est sans doute gérable, mais ça dépend du cas sur lequel tu es.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Points : 73
    Points
    73
    Par défaut
    Alors j'ai trouvé une solution,

    J'ai créé un nouvel objet sur designer date qui prend pour valeur toutes les dates présentes dans une période :

    Ex :
    DateD : 28/03/2010
    DateF : 02/04/2010

    Jour 1 : 28/03/2010 et NB_J_O: 0 (car dimanche)
    Jour 2 : 29/03/2010 et NB_J_O: 1
    Jour 3 : 30/03/2010 et NB_J_O: 1
    Jour 4 : 31/03/2010 et NB_J_O: 1
    Jour 5 : 01/04/2010 et NB_J_O: 1
    Jour 6 : 02/04/2010 et NB_J_O: 1

    Ensuite il me reste à faire le total (somme).

    Mais j'aimerais maintenant faire une condition qui me permetrait de ne pas afficher les DATES où le mois < 04 .
    Soit :
    Jour 1 : 01/04/2010 et NB_J_O: 1
    Jour 2 : 02/04/2010 et NB_J_O: 1

    Cela est il possible ?

    Merci d'avance

  6. #6
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    2 solutions simples, soit tu crées un objet "Mois" dans le designer que tu filtres dans les conditions de ta requête.

    Soit dans le rapport tu crées une variable (ou une formule) du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NuméroDeJourDuMois(<DateD>)
    Et tu filtres sur la valeur "4".

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2010
    Messages : 57
    Points : 73
    Points
    73
    Par défaut
    Voilà, tout est parfait.
    J'ai fait un petit filtre...
    Penser à des choses compliquer on en oubli les petites choses .
    Je te remercie pour ton aide.
    A bientôt et bonne continuation.

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

Discussions similaires

  1. [MySQL] Faire varier une liste en fonction d'une autre dans un formulaire
    Par lemirandais dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/01/2009, 22h45
  2. Réponses: 5
    Dernier message: 31/01/2008, 17h05
  3. Réponses: 5
    Dernier message: 09/12/2007, 18h17
  4. Réponses: 13
    Dernier message: 05/11/2007, 09h00
  5. couleur d'une police en fonction d'une condition
    Par floune dans le forum Access
    Réponses: 1
    Dernier message: 15/04/2006, 21h43

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