Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > ERP > SAP
SAP Forum d'entraide sur SAP et sur la programmation avec le langage ABAP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/08/2008, 09h23   #1
Membre régulier
 
Avatar de progamer54
 
Inscription : avril 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 242
Points : 83
Points : 83
Par défaut convertir un entier en chaine de caractères pour CONCATENATE



je cherche a faire cela :
Code :
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
progamer54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 09h33   #2
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
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,
@+
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 09h42   #3
Membre régulier
 
Avatar de progamer54
 
Inscription : avril 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 242
Points : 83
Points : 83
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?
progamer54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 09h48   #4
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
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...
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 09h57   #5
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
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
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 10h52   #6
Membre régulier
 
Avatar de progamer54
 
Inscription : avril 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 242
Points : 83
Points : 83
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?
progamer54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h23   #7
Membre régulier
 
Avatar de progamer54
 
Inscription : avril 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 242
Points : 83
Points : 83
en fait c'est gérer un tableau de STRING que je voudrais. ex:
Code :
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...
progamer54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h25   #8
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
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 :
1
2
DATA : t_montableau TYPE i OCCURS 0.
Et pour lire selon l'index, utilise :
Code :
1
2
READ TABLE t_montableau INDEX 1. " ou 2, 3, 4...N
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h33   #9
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
Citation:
Code :
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
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h43   #10
Membre régulier
 
Avatar de progamer54
 
Inscription : avril 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 242
Points : 83
Points : 83
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?
progamer54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 11h50   #11
Membre expérimenté
 
Avatar de Celdrøn
 
Homme Celdrøn Valdersen
Consultant SAP
Inscription : juillet 2007
Messages : 438
Détails du profil
Informations personnelles :
Nom : Homme Celdrøn Valdersen
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Consultant SAP

Informations forums :
Inscription : juillet 2007
Messages : 438
Points : 579
Points : 579
Envoyer un message via MSN à Celdrøn
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.

Citation:
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.
Celdrøn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2008, 10h41   #12
Membre régulier
 
Avatar de progamer54
 
Inscription : avril 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 242
Points : 83
Points : 83
merci . J'ai réussi à obtenir le résultat attendu.
progamer54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h08.


 
 
 
 
Partenaires

Hébergement Web