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 :

Syntaxe Crystal report


Sujet :

SAP Crystal Reports

  1. #1
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut Syntaxe Crystal report
    salut,

    j'ai un problème avec ce code :

    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
     
    local stringvar machaine := "";
     
        if ({Mouvement.FP_SIEGE} = true and ({Mouvement.FP_UNITE} = true or {Mouvement.FP_ENTREPOT} = true))
        then (machaine := ", mixtes";)
        else 
            (        
            if{Mouvement.FP_SIEGE} = true
                then machaine := ", siège";
     
            if{Mouvement.FP_UNITE} = true
                then machaine := machaine & ", unité";
     
            if{Mouvement.FP_ENTREPOT} = true
                then machaine := machaine & ", entrepôts";
            )
     
        if{Mouvement.FP_COMMERCE} = true
        then (machaine := machaine & ", commerce";)
     
    machaine;
    A partir de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if{Mouvement.FP_COMMERCE} = true
        then (machaine := machaine & ", commerce";)
    j'ai le message d'erreur suivant :

    Le texte restant ne semble pas faire partie de la formule.

    Merci d'avance pour votre aide

  2. #2
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Citation Envoyé par anto Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    then (machaine := ", mixtes";)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     then (machaine := machaine & ", commerce";)
    Salut,

    Essaie en enlevant le ;

  3. #3
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Tu a un if suivi d'un else (ok) mais tu ne peux pas avoir d'autre condition après c'est pas logique, d'où l'erreur.

    C'est soit if,esle if, else, ou alors tu met une condition and ou or entre les deux.

  4. #4
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Merci de ta réponse cela venait effectivement des ;

    En fait il fallait en rajouter apres les parentheses : super syntaxe

    Pour ceux que ça pourrait aider :

    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
    LOCAL stringvar machaine := "";
     
        IF ({Mouvement.FP_SIEGE} = true AND ({Mouvement.FP_UNITE} = true OR {Mouvement.FP_ENTREPOT} = true))
        then machaine := ", mixtes"
        else 
            (        
            IF{Mouvement.FP_SIEGE} = true
                then machaine := ", siège";
     
            IF{Mouvement.FP_UNITE} = true
                then machaine := machaine & ", unité";
     
            IF{Mouvement.FP_ENTREPOT} = true
                then machaine := machaine & ", entrepôts";
            );
     
        IF{Mouvement.FP_COMMERCE} = true
        then (machaine := machaine & ", commerce");
     
    machaine;

  5. #5
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Coocky10 Voir le message
    Bonjour,

    Tu a un if suivi d'un else (ok) mais tu ne peux pas avoir d'autre condition après c'est pas logique, d'où l'erreur.

    C'est soit if,esle if, else, ou alors tu met une condition and ou or entre les deux.
    Ce qui ne serait pas logique c'est de pouvoir faire seulement une seule instruction. C'est possible en utilisant les ; .

    Cependant la syntaxe est peu ordinaire ...

    merci à vous

  6. #6
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Citation Envoyé par anto Voir le message
    En fait il fallait en rajouter apres les parentheses :
    c'est tout à fait normal. Le ; indique un changement de conditions. Si tu le mets pas, CR croit que tu es toujours dans la première condition, d'où le bug

  7. #7
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    J'ai jamais dis que tu devais avoir qu'une seule instruction obligatoirement, mais que soit tu en avait qu'une (et c'était : if, else if, else) et que si t'en avait deux, il fallait les séparer par une condition AND ou OR.

    La tu a fait la séparation par un ; j'imagine qu'il se comporte comme un AND....

  8. #8
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Citation Envoyé par Coocky10 Voir le message
    La tu a fait la séparation par un ; j'imagine qu'il se comporte comme un AND....
    Il ne la prend ni comme un OR ni comme un AND, juste comme une autre instruction.
    Ceci évite d'avoir à créer plusieurs formules.

  9. #9
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Je ne touche à ce langage que depuis ce matin mais je ne pense pas qu'un "AND" m'aurait aidé dans ce que je veux faire ... je me trompe peut être cela dit

  10. #10
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par Aitone le chien Voir le message
    Il ne la prend ni comme un OR ni comme un AND, juste comme une autre instruction.
    Ceci évite d'avoir à créer plusieurs formules.
    J'ai ma réponse. En tout cas merci

  11. #11
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    et si le deux instructions sont vrais, ca fait quoi ?, il prend la valeur de la dernière condition ?

  12. #12
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Citation Envoyé par Coocky10 Voir le message
    et si le deux instructions sont vrais, ca fait quoi ?, il prend la valeur de la dernière condition ?
    Je pense que oui. Mettre un ; équivaut à remplacer le else

  13. #13
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Je vois absolument pas où vous voulez en venir

    Si vous arrivez à remplacer un ; par un else sans affecter le fonctionnement du code, vous êtes trop fort

  14. #14
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Pour moi ton code équivaut à celui là :

    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
    LOCAL stringvar machaine := "";
     
        IF{Mouvement.FP_COMMERCE} = true
        then (machaine := machaine & ", commerce")
        ELSE(
    	IF ({Mouvement.FP_SIEGE} = true AND ({Mouvement.FP_UNITE} = true OR {Mouvement.FP_ENTREPOT} = true))
        	then machaine := ", mixtes"
        	ELSE 
            	(        
            	IF{Mouvement.FP_SIEGE} = true
                	then machaine := ", siège"
     
            	ELSE IF{Mouvement.FP_UNITE} = true
                	then machaine := machaine & ", unité"
     
            	ELSE IF{Mouvement.FP_ENTREPOT} = true
                	then machaine := machaine & ", entrepôts"
            	)
    	);
     
    machaine;

  15. #15
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Fais le test et tu verras que non

  16. #16
    Inactif  
    Avatar de Aitone
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    3 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 3 562
    Points : 4 493
    Points
    4 493
    Par défaut
    Personne ne peut faire le test sur ta base.

    Testes et dis nous le résultat.

  17. #17
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Bon j'ai pas les données de ta base mais j'ai fait un test, avec les 5 conditions possibles et les 5 différentes valeurs que la variable machaine peut prendre et j'obtiens les mêmes résultats entre ton code et le mien.

  18. #18
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    C'est pas dur de s'apercevoir que ceci est faux!

    si FP_COMMERCE = true et FP_UNITE = true je veux que machaine = ", commerce, unité"

    or avec ce que vous proposez machaine=", commerce"



  19. #19
    Membre régulier Avatar de anto
    Inscrit en
    Juin 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 86
    Points : 84
    Points
    84
    Par défaut
    Autant pour moi ce que tu proposes est juste dans le cas que j'ai donné seulement moi j'ai d'autres test ensuite


    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
    LOCAL stringvar machaine := "";
     
        IF ({Mouvement.FP_SIEGE} = true AND ({Mouvement.FP_UNITE} = true OR {Mouvement.FP_ENTREPOT} = true))
        then (machaine := ", mixtes";)
        else 
            (        
            IF{Mouvement.FP_SIEGE} = true
                then machaine := ", siège";
     
            IF{Mouvement.FP_UNITE} = true
                then machaine := machaine & ", unité";
     
            IF{Mouvement.FP_ENTREPOT} = true
                then machaine := machaine & ", entrepôts";
            )
     
        IF{Mouvement.FP_COMMERCE} = true
        then (machaine := machaine & ", commerce";)
     
     IF{Mouvement.FP_truc1} = true
        then (machaine := machaine & ", truc1";)
     
     IF{Mouvement.FP_truc2} = true
        then (machaine := machaine & ", truc2";)
     
    machaine;

  20. #20
    Membre habitué

    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 162
    Points : 179
    Points
    179
    Par défaut
    Ba en fait peu importe si ca marche avec ; continu comme ça, d'ailleur ca évite surement une imbrication un peu lourde de condition.

    En plus j'avais un peu zapper la concaténation de chaine, du coup effectivement ton code me parais plus judicieux que le mien.

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

Discussions similaires

  1. [CR XI] Crystal Report Viewer : syntaxe
    Par naif02fr dans le forum Formules
    Réponses: 0
    Dernier message: 06/12/2011, 15h52
  2. Syntaxe Crystal Report
    Par AIDExpress dans le forum Formules
    Réponses: 2
    Dernier message: 22/09/2010, 17h50
  3. syntaxe de formules de crystal report
    Par kroukse dans le forum Formules
    Réponses: 9
    Dernier message: 11/01/2008, 15h30
  4. Utilisation de la syntaxe Basic en Crystal Reports
    Par GodGives dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/12/2007, 12h20
  5. [Crystal Report][VB6] instruction PrintReport
    Par yyyeeeaaahhh dans le forum SDK
    Réponses: 4
    Dernier message: 29/07/2002, 14h58

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