6
votes

Incrémenter un entier

Parfois, Abap me rend fou de tâches vraiment simples, telles que l'incrémentation d'un entier dans une boucle ...

Voici mon essai: xxx

Il en résulte que cette erreur Message Type de champ "I" ne permet pas l'accès sous-champs.


1 commentaires

Peut-être que cela fonctionne dans la nouvelle syntaxe ABAP: lv_id + = 1.


5 Réponses :


7
votes

euh, je l'ai eu. Ce sont les espaces F ****** ... xxx

fonctionne ...


1 commentaires

... Mais s'il y a un moyen plus élégant, je serais intéressé;)



15
votes

Vous voulez dire comme: xxx

d'ailleurs, lorsque vous bouclez sur une table interne, SY-Tabix a le compteur de boucle.


2 commentaires

Méfiez-vous de boucles dans les boucles. Oh, et si vous bouclez avec un do..times x , alors le compteur de boucle sera sy-index . Oui, Abap est une langue terriblement incohérente.


SY-Tabix ne contient pas le compteur de boucle, il contient l'indice de la table. Ce sont souvent des valeurs différentes. Par exemple, si j'écris en boucle sur des messages en msg dans l'endroit où Type = 'E' , la première fois que la boucle fonctionne réellement peut être de la quatrième rangée et la valeur de SY-Tabix sera 4.



23
votes

Vous avez déjà répondu à la question vous-même, mais pour rendre les choses un peu plus claires: xxx pré>

est une expression arithmétique - ajouter 1 à la valeur de la variable. P>

variable+1


1 commentaires

Merci pour l'explication. Je suis sûr que je ne fais pas de cette erreur à nouveau;)



1
votes

simple

Données: GV_INC Type I.

Placez cette déclaration en boucle

gv_inc = gv_inc + 1.


0 commentaires

0
votes

Si vous allez incrémenter chaque cycle de boucle que vous pouvez obtenir directement la taille de la table. xxx


0 commentaires