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 :

comment écrire au mieux SI /SINON/SINON SI etc


Sujet :

WinDev

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut comment écrire au mieux SI /SINON/SINON SI etc
    Bonjour,

    Comment écrire au mieux ceci :

    champ 1: date1
    champ 2: date2
    champ 3: date3
    champ 4: date4
    Champ 5: calcul de date

    calcul de date =

    SI 1 est vide, voir si 2 est vide (sinon prendre 5 = 1)
    SI 2 est vide, voir si 3 est vide (sinon prendre 5 = 2)
    SI 3 est vide, prendre 5 = 4 (sinon prendre 5 = 3)


    J'hésite avec SINON et SINON SI
    Au peut-être d'une autre façon ?

    BAV

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    SELON CAS
    Il y a plusieurs syntaxes possibles

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    Je me trompe ou SELON CAS c'est pour un champ en particulier ?

    SELON CAS champ 1
    CAS

    et les autres champs ?

    BAT

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    Je pense qu'avec ceci cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // calcul vervangdata 
            SI SAI_PM_implantdatum1 <> "" ALORS SAI_Vervangdata = SAI_PM_implantdatum1..ValeurAffichée SINON 
            SI "SAI_Aelec impl datum3" <> "" ALORS SAI_Vervangdata = "SAI_Aelec impl datum3"..ValeurAffichée SINON
            SI "SAI_Aelec impl datum4" <> "" ALORS SAI_Vervangdata = "SAI_Aelec impl datum4"..ValeurAffichée SINON
            SI "SAI_Aelec impl datum5" <> "" ALORS SAI_Vervangdata = "SAI_Aelec impl datum5"..ValeurAffichée    
            FIN
            FIN
            FIN    
            // fin calcul vervangdata
    Par contre J'ai un souci d'affichage :

    Tout les champs ont comme masque de saisie JJ/MM/AAAA - valeur retournée AAAAMMJJ.

    Tous s'affichent correctement sauf le champ calculé ? Pourquoi ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    tous saisie JJ/MM/AAAA et valeur JJMMAAAA
    et calcul = définit par le projet / tel quel

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    Pour finir ce n'est pas résolu

    Quand il n'y a une valeur dans 4 ou 5, le champs calculé ne se rempli pas ?

    Pourquoi ?

    BAV

  7. #7
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Bonjour

    Citation Envoyé par chapeau_melon Voir le message
    Je me trompe ou SELON CAS c'est pour un champ en particulier ?

    SELON CAS champ 1
    CAS

    et les autres champs ?

    BAT
    EN fait les 2 syntaxes sont possibles :

    SELON CAS n
    CAS 1
    CAS 2
    FIN
    ou

    SELON CAS
    CAS a=b
    CAS c=d
    fin
    J'ajouterai que oui des qu'un test devient un peu compliqué il faut abandonner les IF au profit de SELON, c'est beaucioup plus lisible.

    N'oubliez jamais que le plus difficile n'est pas d'ecrire un programme mais de le modifier un an après quand vous ne vous souvenez plus de la manièfre dont il fonctionne

    Bon Dév
    Patrick Catella

    Je ne réponds pas aux messages privés si ceux ci suivent un sujet. Il est préférable pour tous de poursuivre la discussion dans le sujet d'origine.

    Je suis Concepteur développeur Windev (10 ans) et Windev mobile (4 ans) en recherche d'emploi. J'etudie toute proposition

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 100
    Points : 120
    Points
    120
    Par défaut
    Et un truc du genre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    POUR i = 5 A 1 PAS -1
    SI {"SAI_PM_implantdatum" + i, indChamp} <> "" ALORS SAI_Vervangdata = {"SAI_PM_implantdatum" + i, indChamp}..ValeurAffichée
    FIN
    (je le fais en décroissant pour que tu ais à l'arrivée la première valeur renseignée...)
    Derniers jours avant la fin du concours du Smiley d'Or 2012 ! Dépêchez-vous !
    C'est trop tard !

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 425
    Points : 129
    Points
    129
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELON Vrai
                CAS "SAI_Aelec impl datum3"..Valeur <> "" : SAI_Vervangdata = "SAI_Aelec impl datum3"..ValeurAffichée
                CAS "SAI_Aelec impl datum4"..Valeur <> "" : SAI_Vervangdata = "SAI_Aelec impl datum4"..ValeurAffichée
                CAS "SAI_Aelec impl datum5"..Valeur <> "" : SAI_Vervangdata = "SAI_Aelec impl datum5"..ValeurAffichée        
                AUTRE CAS
                SAI_Vervangdata..Valeur = ""
    Je pense qu'il y avait aussi de souci de syntaxe genre ..valeur

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

Discussions similaires

  1. [VBA Excel] Comment écrire un code dans le ThisWorkBook ?
    Par WebPac dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2005, 15h03
  2. Comment écrire un fichier texte au format MS-DOS ?
    Par fredfred dans le forum Langage
    Réponses: 9
    Dernier message: 20/01/2005, 09h00
  3. [VB.NET] comment écrire du texte avec opengl?
    Par ero_senin dans le forum OpenGL
    Réponses: 2
    Dernier message: 17/01/2005, 13h34
  4. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16
  5. Comment écrire explicitement en sortie d'un job OEM ?
    Par zestrellita dans le forum Entreprise Manager
    Réponses: 11
    Dernier message: 11/03/2004, 09h36

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