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

Discussion :

[BO6.5] Fabrication d'un indicateur d'âge en fonction d'une date passée en invite

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 31
    Points : 21
    Points
    21
    Par défaut [BO6.5] Fabrication d'un indicateur d'âge en fonction d'une date passée en invite
    Bonjour à tous

    Je début complètement et j'ai beaucoup de mal...
    Je bloque sur un point qui m'agace prodigieusement.
    Je cherche en effet à calculer l'âge des personnes en fonction d'une date passée en invite.
    Malgré des recherches dans tous les sens, je n'y avoir pas!

    Je pense que je ne peux traiter ce probleme que dans le reporter et pas le designer, dans la mesure ou je veux utiliser une date passée en invite, spécifique au rapport donc.

    Dans ma table des personnes, je dispose de la date de naissance.

    Je cherche donc à faire une fonction qui serait proche de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Plancher((date_naissance-ReponseUtilisateur)/12)
    Malgré tous mes efforts, impossible d'exploiter cette fichue date passée en invite!

    Voyez-vous mon problème?

    PS : considérez le fait que je débute hein...

  2. #2
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par kalaghan Voir le message
    Je pense que je ne peux traiter ce probleme que dans le reporter et pas le designer, dans la mesure ou je veux utiliser une date passée en invite, spécifique au rapport donc
    pas du tout.
    Je vois même plutôt une solution qui consiste à créer dans l'Univers un objet intégrant une invite (fonction @prompt). libre à toi après d'utiliser cet objet dans un seul rapport.

    La question est : as-tu accès à Designer ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Bonjour schkrumble

    Oui oui j'ai accès au designer, je conçois l'univers (ou plutôt je le complète) et les états dans le même temps.
    Quand j'ai besoin d'objets, de tables, etc je mets à jour mon univers...

    J'ai bien pensé à @prompt, mais je ne vois pas du tout comment l'exploiter...

    Merci en tout cas de t'intéresser à mon cas

  4. #4
    Membre habitué Avatar de schkrumble
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Points : 130
    Points
    130
    Par défaut
    Solution 1 (bof)
    tu créer dans l'univers un objet DATE_REF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     = @Prompt('date de référence pour le calcul des âges','D',,,)
    qui te ramenera une valeur unique, puis tu te débrouille dans le rapport avec une formule du type de celle que tuas proposée dans ton premier message

    Solution 2 (mieux)
    Tu crée directement dans l'univers un objet AGE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     = floor(months_between(PERSONNES.DATE_NAISSANCE, @Prompt('Date de référence pour le calcul des âges','D',,,)) /12)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Solution 1 (bof)

    Je n'ai pas réussi à créér l'objet, BO me dit toujours 'nom de table inexistant' et effectivement dans le code on en référence aucune table...


    Solution 2 (mieux)

    Good, j'ai réussi à calculer l'âge de mes gugusses!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    floor(months_between(@Prompt('Date de référence pour le calcul des âges','D',,,),@Select(Personnes\Date naissance)) /12)
    Cela fonctionne bien, mais... oui il faut toujours un mais.

    La date passée dans le prompt est une date que je dois utiliser pour : calculer les âges des personnes, ce qui marche, mais aussi faire une sélection sur une autre table "jointurée" (DEMANDE) avec celles des personnes (PERSONNE). Comment réexploiter la date passée dans le prompt dans ce cas? Je pense qu'une fois cet obstacle passé, cela ira mieux

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Bon j'ai fait dans le Reporter, l'objet avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(<Année de Date naissance>-EnNombre(Droite(RéponseUtilisateur ("Requête 1 avec 09_A_6_7" , "date") ,4)))
    Avec :
    * <Année de Date naissance> étant une donnée sous-jacente de la colonne <Date naissance> (c'est le Designer qui m'a permis de gérer cette donnée)
    * "date" une invite créée pour faire un critère de sélection sur d'autres données...

    Cela me ressort ce que j'attendais.
    Si "date" est une date en 2000, les gens nés en 2000 affichent un age de 0 an, les gens de 2003 un age de 3 ans, etc etc

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Je ne suis pas designer, mais du côté "reporter", n'y avait-il pas plus simple et plus précis ?

    - d'abord créer la variable suivante : =EnDate(RéponseUtilisateur("ton invite");"dd/mm/yyyy"))
    (au feeling, je la mettrais plutôt de type information que dimension, mais ça doit fonctionner dans les 2 cas ...)

    - ensuite un calcul de type : =JoursEntre(<ta_nouvelle_variable>;<Date de naissance>)/365 (ou 365,25)

    Avantage de cette façon de faire : tenir compte du jour de naissance, pas uniquement de l'année ... (à quelques jours près à cause des années bisextiles ...)

    (attention, je suis sur WebI XI 3.1, et je n'ai pas testé, mais "à priori" ça doit fonctionner ...)

    Manuel

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Merci de ta contribution Manuel
    Mais je ne voulais PAS prendre en compte la date de naissance précise justement
    Pour que les personnes nées la même année soit associées au même âge.
    ex on est en 2009, je veux que toutes les personnes nées entre le 01/01/2000 et le 31/12/2000 soient associées au même âge, c'est a dire 9 ans (différence entre les années)
    Sinon je me retrouve avec des personnes de la même année qui ont des âges différents (ou je sais ce n'est pas complètement correct et ça me gêne un peu, mais c'est mon client qui veut cela )

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    OK ... je n'avais pas capté ça ...

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

Discussions similaires

  1. indicateur de progression du cassage de mot de passe
    Par mapmip dans le forum Sécurité
    Réponses: 3
    Dernier message: 10/04/2014, 16h04
  2. [V6] Indicateur calculé (division) et fonction d'agrégation
    Par jalied dans le forum Designer
    Réponses: 3
    Dernier message: 17/06/2011, 14h07
  3. [VxiR2] Indicateur conditionné par la présence d'une date dans la sélection
    Par ouistitis dans le forum Designer
    Réponses: 5
    Dernier message: 09/06/2009, 17h43
  4. Réponses: 2
    Dernier message: 11/02/2009, 16h00
  5. Mauvais indicateur de connection
    Par calvin dans le forum Hibernate
    Réponses: 15
    Dernier message: 24/05/2004, 12h03

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