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

WinDev Discussion :

selon cas et Contient [WD17]


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut selon cas et Contient
    Bonjour à tous,

    J'ai un problème avec un selon cas qui ne fonctionne pas comme je le souhaiterai.

    Je voudrais faire un "selon cas" sur une partie de l'expression testée

    Exemple d'expression à tester : mg/kg de MS

    Voila ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELON uniteSaisie
           CAS Contient (uniteSaisie,"mg/kg")
                  RENVOYER 1
           CAS Contient (uniteSaisie,"g/kg")
                  RENVOYER 2
           CAS Contient (uniteSaisie,"µg/kg")
                  RENVOYER 3
            AUTRE CAS 
                   RENVOYER 0
    FIN
    Lorsque j'execute ma fonction je passe directement dans AUTRE CAS et je ne vois pas pourquoi alors qu'avec des SI ça fonctionne.
    Pouvez vous m'aider s'il vous plait ?

    Merci par avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    Tu n'utilises pas la bonne syntaxe du SELON
    Lis bien cette page : http://doc.pcsoft.fr/fr-FR/?1510008

    Dans ton cas il faut utiliser la syntaxe avec test sur condition (ICI)

    Dans ton ça donnerait un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELON Vrai
           CAS Contient (uniteSaisie,"mg/kg")
                  RENVOYER 1
           CAS Contient (uniteSaisie,"g/kg")
                  RENVOYER 2
           CAS Contient (uniteSaisie,"µg/kg")
                  RENVOYER 3
            AUTRE CAS 
                   RENVOYER 0
    FIN

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Citation Envoyé par hpascal Voir le message
    Bonjour

    Tu n'utilises pas la bonne syntaxe du SELON
    Lis bien cette page : http://doc.pcsoft.fr/fr-FR/?1510008

    Dans ton cas il faut utiliser la syntaxe avec test sur condition (ICI)

    Dans ton ça donnerait un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELON Vrai
           CAS Contient (uniteSaisie,"mg/kg")
                  RENVOYER 1
           CAS Contient (uniteSaisie,"g/kg")
                  RENVOYER 2
           CAS Contient (uniteSaisie,"µg/kg")
                  RENVOYER 3
            AUTRE CAS 
                   RENVOYER 0
    FIN
    Exact... mais personnellement je ne comprends pas bien l'intérêt d'un SELON Vrai... dans un pareil cas je trouve qu'un IF est bien plus clair et intelligible !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    bonjour et merci pour vos réponses.

    Merci ça fonctionne nickel.

    Je suis parti sur un SELON CAS parceque j'ai pour le moment 8 cas à traiter, là dans l'exemple j'avais réduit et je pensais qu'un selon cas serai plus simple à gérer et à maintenir que de faire des SI. Surtout que je risque d'avoir au cours de la vie du logiciel d'autre unité à traiter.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    C'est perso mais je trouve que les SWITCH True ne sont pas vraiment clairs (j'en ai plein dans un projet que j'ai repris)... pour en avoir parler avec pas mal de dév (autre que Windev) ce n'est pas vraiment un mode de pensée "standard" et naturel... maintenant c'est une question d'esthétique du code plus qu'autre chose.... le test est le même et si vous trouvez ça plus simple, c'est le principal !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    salut,

    Etant novice dans la profession, c'est ce que l'on m'as appris en cours, qu'il fallait privilégier l'instruction SWITCH lorsqu'on avais plusieurs IF imbriquer. Après je ne suis pas fermer bien au contraire c'est en discutant aussi avec les personnes expérimentées que l'on progresse. La théorie c'est bien mais rien ne remplace l'expérience et la pratique

    Je prends note de votre remarque
    merci beaucoup

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Imbriquer les IF c'est ignorer l''existence du ELSE IF... après ce que j'en dis... mais vraiment "SWITCH True" c'est étrange comme façon de penser car plusieurs tests peuvent renvoyer True et la priorisation des CASE (à la lecture) n'est pas aussi claire qu'avec des ELSE IF (il me semble...)
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

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

Discussions similaires

  1. besoin d'aide pour macro test de cellule et copie selon cas
    Par tibofo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/11/2008, 00h15
  2. [POO] ouverture pdf selon les cas
    Par mussara dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2006, 00h26
  3. [XSLT]Inclure des regles xsl selon des cas
    Par ujoodha dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 09/06/2006, 20h47
  4. Réponses: 2
    Dernier message: 24/01/2006, 12h43

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