ADELIA |
VADELIA |
SADELIA |
WADELIA |
MADELIA |
(I/B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(I) (C/S) |
Attention : dans le cas des programmes de type ADELIA, cet ordre n'est pas compatible avec le générateur C.
Paragraphe d'utilisation
Tous
Syntaxe
MODIFIER_ELT NomListe Option
Option |
→ |
*SELECT | *DESELECT | Rien |
Description
Cet ordre modifie l'élément courant de la liste NomListe, en prenant les nouvelles valeurs des variables qui la composent.
L'option Option permet de sélectionner (*SELECT) ou de ne pas sélectionner (*DESELECT) l'élément courant. Il positionne l'état "Modifié" à VRAI pour l'élément modifié.
Attention : cette option (*SELECT ou *DESELECT) n'est pas possible pour les programmes de type ADELIA.
Après l'exécution de cet ordre, l'élément courant est l'élément modifié.
La fonction prédéfinie &CODE_LST sur la liste permet de savoir si la modification a abouti.
Voici les valeurs possibles :
Valeur |
|
*OP_INVALIDE |
La modification n'a pas abouti (élément courant invalide) |
*NORMAL |
La modification a abouti |
Par exemple
Contexte Adélia :
DECL LISTE LST_ART WARTICLE WPRIX_ARTICLE
LIRE_P_ELT LST_ART
TANT_QUE &CODE_LST (LST_ART) = *NORMAL
WPRIX_ARTICLE = WPRIX_ARTICLE*1,1
MODIFIER_ELT LST_ART
LIRE_AV_ELT LST_ART
REFAIRE
Contexte Visual Adélia :
MODIFIER_ELT Liste
MODIFIER_ELT Liste *SELECT
MODIFIER_ELT Liste *DESELECT
* Le programme suivant parcourt la liste graphique LST_ARTICLES, modifie la valeur
* du prix unitaire, dans le cas où celui-ci est supérieur à 1500, et sélectionne
* les lignes modifiées de la liste
LECTURE_LST LST_ARTICLES:LISTE
SI ZAPRIX_UNITAIRE > 1500
ZAPRIX_UNITAIRE = ZAPRIX_UNITAIRE * 0,8
MODIFIER_ELT LST_ARTICLES:LISTE *SELECT
FIN
FIN_LECTURE_LST
Autre exemple d'utilisation
* boucle de lecture sur une liste graphique (programme VADELIA ou WADELIA) pour prendre toutes les lignes sélectionnées pour modification
LECTURE_LST LST_PERSO:LISTE *SELECT
*
P_COD_ACTION = 'MO'
P_COD_MATRICUL = *BLANK
P_COD_MATRICUL = ZZ_COD_MATRICUL
*
APPELER CMJ_PERSONNEL P_COD_MATRICUL P_COD_ACTION
SI P_COD_ACTION = 'OK'
LIRE_SQL PERSONNEL *COND(PE_COD_MATRICUL = :P_COD_MATRICUL)
PRESENTER PERSONNEL
MODIFIER_ELT LST_PERSO:LISTE *DESELECT
FIN
*
FIN_LECTURE_LST