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

Cobol Discussion :

probléme de compilation tableau


Sujet :

Cobol

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 48
    Points : 35
    Points
    35
    Par défaut probléme de compilation tableau
    Bonjour,

    J’ai un tableau déclarer comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    01 WS-CLI-X                              PIC X(198000).
    01 WS-DMN  REDEFINES WS-CLI-X  OCCURS 500.
    Quand je compile il me donne ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    An "OCCURS" clause was found in the definition of a level-1 item.  The
    "OCCURS" clause was discarded.
    Merci pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Comme le texte l'indique tu ne peux pas écrire OCCURS au niveau 01. Tu dois ajouter un sous-niveau pour la clause OCCURS.
    Sinon la doc c'est bien aussi

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 48
    Points : 35
    Points
    35
    Par défaut
    Merci pour pour la réponse

  4. #4
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Certains compilateurs autorisent l"OCCURS" au niveau 01, par exemple ici le Cobol/2 d'IBM.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    000410 01  A           pic X(100).
    000420 01  B REDEFINES A pic X(2) OCCURS 50.
    Mais de toute façon il faut compléter ta clause par la redécomposition de WS-DMN par un 03 ou en en donnant son PIC.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 48
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Dans mon cas je le corrige comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    01 WS-CLI-X                              PIC X(198000).
    01 WS-DMN  REDEFINES WS-CLI-X PIC X(??)  OCCURS 500.
       03 WS-CL                                   PIC X(32).
       03 WS-REF                                 PIC X(80).
       03 WS-ADR                                 PIC 9(4).
       03 WS-CP                                   PIC X(120).
    PIC X (??) c'est le total de toutes les PIC de niveau 03 ?

    Merci

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Points : 266
    Points
    266
    Par défaut
    La picture n'est pas obligatoire sur une "zone groupe" (et si ça se trouve interdite, j'avoue que je n'ai jamais essayé).

    Ensuite, ton compilateur n'accepte pas les OCCURS sur les niveaux 01 (cf, ton premier post) , ton code ne passera donc pas. Tu dois créer une autre ligne en niveau 02 (ou autre, mais cela t'oblige à tout re-niveler) sur laquelle tu pourras mettre la clause OCCURS.

  7. #7
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Bonjour.

    Si ton compilateur l'accepte oui mais sans mettre le pic(??) au niveau du groupe et en veillant à ce que la somme des pic du niveau 03 soit égale à 396 (198000/500).

    Comme on soupçonne ton compilateur de ne pas accepter l'OCCURS au niveau 01, je préfère la décomposition suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    01 WS-CLI-X                              PIC X(198000).
    01 WS-CLI-X2  REDEFINES WS-CLI-X.
         03 WS-DMN  OCCURS 500.
            05 WS-CL                          PIC X(32).
            05 WS-REF                        PIC X(80).
            05 WS-ADR                        PIC 9(4).
            05 WS-CP                          PIC X(120).
    La somme des 05 doit être égale , comme indiqué, à 396.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/10/2011, 15h09
  2. Réponses: 8
    Dernier message: 10/04/2009, 13h42
  3. problème de compilation sur tableau de List générique
    Par Benoit_T dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 25/03/2009, 16h09
  4. Problème compilation tableau multidimensionnel
    Par Marneus dans le forum Débuter
    Réponses: 6
    Dernier message: 23/03/2009, 16h57
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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