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 Discussion :

convertir un entier en chaine de caractères pour CONCATENATE


Sujet :

SAP

  1. #1
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut convertir un entier en chaine de caractères pour CONCATENATE


    je cherche a faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CONCATENATE  nom ';' level ';' pere  into ligne_inseree.
    level est de type entier (i)

    Du coup j'ai une erreur :
    "level" must be a caractere type data object (data type c, n, d , t or string)

    Pourriez vous m'indiquer comment faire pour ajouter cet entier a la chaine de caractères a concaténer ?

    merci d'avance

  2. #2
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Salut,

    ben tu copie ta valeur dans une donnée de type N (numérique).

    Fait attention, au même titre que le type C, tu doit définir une grandeur...valeut max d'un type i = 2^32, donc une donnée(10) type n et c'est bon.

    Voila,
    @+

  3. #3
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    le problème de faire ça, c'est que ça me rajoute des 0 au début pour faire 10 caractères en tout...
    C'est possible de les enlever?

  4. #4
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Ben tu met dans un type C alors ^_^...et encore, je suis pret à parier qu'avec un type string ce serait nickel car t'aurais pas les espaces en trop...

  5. #5
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Tiens, petite astuce toute bête...

    Quand tes données a concatener doivent être séparé par le même caractère, te casse pas la tête et en fin du CONCATENATE, tu rajoutes SEPARATED BY ';'.

    Voila

  6. #6
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    ok merci.

    avec C j'ai encore les espaces. Et avec String j'ai 2 espaces apres le chiffres.
    c'est bizarre. Mais c'est pas grave.

    merci.



    une petite question: pour faire un tableau d'entier en ABAP. C'est comme pour faire une table? et apres on fait montableau[1] pour accéder au 1er éléments?

  7. #7
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    en fait c'est gérer un tableau de STRING que je voudrais. ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    loop at tab_int.
    
    tab[tab_int-level] = tab_int-nom
    WRITE : / tab_int-nom   'a pour pere'     tab[tab_int-level - 1]
    
    endloop.
    j'espere que c'est compréhensible...

  8. #8
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Alors si t'as des espaces en trop, utilise ce qui suit:
    CONDENSE.


    Sinon, pour faire une table interne d'entier (ou tableau su tu préfère):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DATA : t_montableau TYPE i OCCURS 0.
    Et pour lire selon l'index, utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    READ TABLE t_montableau INDEX 1. " ou 2, 3, 4...N

  9. #9
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    loop at tab_int.
    
    tab[tab_int-level] = tab_int-nom
    WRITE : / tab_int-nom   'a pour pere'     tab[tab_int-level - 1]
    
    endloop.
    Woaaaaa, l'usine à gaz qui tu nous fais !! MDR

    tab[tab_int-level] = tab_int-nom <= ça j'ai pas compris le but que tu voulais atteindre ...j'ai même du mal à déchiffrer LOL XD

    Woé, je pense qu'il y a plus simple que ça

  10. #10
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    ok merci.

    mais le READ comment je lui dis le nom de la variable dans laquelle mettre la valeur lu?

    pour modifier la valeur d'un index, MODIFY marche alors?

  11. #11
    Membre éprouvé Avatar de Celdrøn
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Juillet 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Juillet 2007
    Messages : 614
    Points : 1 008
    Points
    1 008
    Par défaut
    Pour lire une donnée avec un READ, soit tu passes par FROM index, ou soit par comparaison de donnée WITH KEY.

    Le READ va te remplir l'entete de ta table, ou la structure de destination (INTO struct).

    Tu modifie ta valeur : tab-machin = tab_int-bidule.

    pour modifier la valeur d'un index, MODIFY marche alors?
    Yep. ^_^

    MODIFY tab INDEX w_index. "(FROM struct) si les données ne proviennent de l'entête de la table tab

    w_index = sy-tabix, il est conseillé de conserver l'index dans une variable jusqu'au MODIFY. Il peut arriver que le tabix soit modifié suite a l'appel d'une instruction.

  12. #12
    Membre régulier Avatar de progamer54
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 120
    Points
    120
    Par défaut
    merci . J'ai réussi à obtenir le résultat attendu.

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

Discussions similaires

  1. Convertir un entier en chaine de caractères
    Par zuzuu dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2008, 11h12
  2. Réponses: 45
    Dernier message: 27/09/2006, 10h44
  3. Réponses: 4
    Dernier message: 16/05/2006, 21h03
  4. result: chaine de caractère pour une DLL
    Par Sephiroth Lune dans le forum Langage
    Réponses: 7
    Dernier message: 27/07/2004, 23h05

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