Bonjour,
j'ai un bloc de données. Parmi les items de ce bloc de données, il y a deux items de type "Élément Liste". Cependant je n'aimerais pas que pour un enregistrement précis du bloc de données les deux items de type liste soit renseignés.
Donc si l'utilisateur veut choisir un élément (when_list_changed) sur l'un des items de type list, je parcours tous les enregistrements du bloc en vérifiant pour chaque enregistrement si les deux items de type élément liste sont renseignés.
S'il rencontre un enregistrement pareil alors il envoie un message à l'utilisateur et le renvoie à cet enregistrement sans toutefois prendre en compte la modification apportée sur le when_list_changed et ceci tant que l'utilisateur ne met pas un des items de type list à null voici le code que j'ai mis dans when_list_changed de chacun des items :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 declare cur_rec number:=get_block_property('CARACTERISTIQUE',CURRENT_RECORD); trouve boolean:=FALSE; LE$Fin exception ; begin go_block('CARACTERISTIQUE'); first_record; loop if (:CARACTERISTIQUE.NOM_COLO is not null and :CARACTERISTIQUE.NOMCOLPO is not null) then AFFICHE_MESSAGE(3117,to_char(3117)); trouve:=TRUE; RAISE LE$Fin; end if; exit when :system.last_record = 'TRUE' or trouve=TRUE; next_record; end loop; go_record(cur_rec); Exception when LE$Fin then null; end;
- Il envoie bien le message d'erreur mais les modifications continuent.
- J'aimerais que ce message soit appelé pas seulement si on essaie de modifier les items de type list mais aussi les autres items du bloc de données mais je sais pas trop dans quel déclencheur placer mon code.
Merci.
Partager