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

SAP Crystal Reports Discussion :

faire des If imbriqué [CR XI]


Sujet :

SAP Crystal Reports

  1. #1
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut faire des If imbriqué
    Bonjour,
    J'ai créé une formule qui me permet de calculer plusieurs valeurs en fonction de certain paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if x = 1 then
        if y = 1 then
            a := bla
        else if y = 2 then
            b = bla
    else if x = 2 then
        if y = 1 then
            c = bla
    mon probleme est que il faudrait une délimitation comme dans n'importe quel langage du type begin end pour structurer ces if/else...
    Je n'ai trouvé nul part une explication sur ce problème... Est-ce au moins possible ?

  2. #2
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    bonjour
    je pense que tu peux mettre des ; et des ( ) pour séparer tes instructions.

    dans l'aide, il y a un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    //Expression If - Exemple 5
     
    Local CurrencyVar impôt := 0;
     
    Local CurrencyVar revenu := {Employés.Salaire};
     
    Local StringVar message := "";
     
    If revenu < 8000 Then
     
    (
     
       message := "non imposable";
     
       impôt := 0
     
    )
     
    Else If revenu >= 8000 And revenu < 20000 Then
     
    (
     
       message := "imposable la plus faible";
     
       impôt := (revenu - 8000)*0.20
     
    )
     
    Else If revenu >= 20000 And revenu < 35000 Then
     
    (
     
       message := "imposable moyenne";
     
       impôt := (20000 - 8000)*0.20 + (revenu - 20000)*0.29
     
    )
     
    Else
     
    (
     
       message := "imposable la plus élevée";
     
       impôt := (20000 - 8000)*0.20 + (35000 - 20000)*0.29 +
     
              (revenu - 35000)*0,40
     
    );
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  3. #3
    Membre averti

    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 379
    Points
    379
    Par défaut
    Dans ton exemple sa donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IF x = 1 then (
        IF y = 1 then
            a := bla
        else IF y = 2 then
            b := bla
    ) else IF x = 2 then (
        IF y = 1 then
            c := bla
    );
    Tu peux toujours utilisé la fonction SELECT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT x
      CASE 1 : (
        SELECT y
          CASE 1 : (
            a := "bla"
          ) CASE 2 : (
            b := "bla"
          ) DEFAULT : (
            d := "bla"
          )
      ) CASE 2 : (
         IF y = 1 THEN
           c := "bla"
      )
    Certe la syntaxe SELECT peut être un peu plus lourde lorsqu'il n'y a pas beaucoup de "CASE", mais il permet d'ajouter des éléments beaucoup plus facilement qu'avec une série de ELSE IF, à mon humble avis!!!
    ______________
    Never underestimated the browser
    Ne jamais sous-estimé le navigateur
    Vic Gundotra, Google IO 2009

  4. #4
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut
    Ok merci !

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

Discussions similaires

  1. Comment faire des matrices imbriquées
    Par TanEk dans le forum Débuter
    Réponses: 2
    Dernier message: 19/12/2008, 14h49
  2. [RegEx] Un bbcode maison - faire des listes imbriquées
    Par Fido166 dans le forum Langage
    Réponses: 2
    Dernier message: 19/09/2008, 13h19
  3. Faire "remonter" les données dans des requetes imbriquées
    Par Earthwormjim dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/08/2006, 17h37
  4. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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