Bonjour,

J'ai un problème d’affectation d’un visual_attribute avec set_item_instance_property


Voici 2 fonctions qui doivent normalement aboutir au même résultat.
Le but est d’affecter un attribut visuel à un record.
Mon block est de type mutli-record

Cette fonction ne marche pas avec l’utilisation de set_item_instance_property

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
21
22
23
24
25
26
 
PROCEDURE p_highlight (pv_va IN VARCHAR2)
IS
   lv_cur_itm     VARCHAR2 (80);
   lv_cur_block   VARCHAR2 (80) := 'PVR';
BEGIN
   lv_cur_itm := GET_BLOCK_PROPERTY (lv_cur_block, first_item);
 
   WHILE (lv_cur_itm IS NOT NULL)
   LOOP
      lv_cur_itm := lv_cur_block || '.' || lv_cur_itm;
      SET_ITEM_INSTANCE_PROPERTY (lv_cur_itm,
                                  current_record,
                                  visual_attribute,
                                  pv_va
                                 );
      lv_cur_itm := GET_ITEM_PROPERTY (lv_cur_itm, nextitem);
   END LOOP;
EXCEPTION
   WHEN form_trigger_failure
   THEN
      RAISE;
   WHEN OTHERS
   THEN
      qms$errors.unhandled_exception ('p_highlight');
END p_highlight;
Cette fonction marche avec l’utilisation de display_item ? Pourquoi ?

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
21
22
23
24
25
 
PROCEDURE p_highlight (pv_va IN VARCHAR2)
IS
   lv_cur_itm     VARCHAR2 (80);
   lv_cur_block   VARCHAR2 (80) := 'PVR';
BEGIN
   lv_cur_itm := GET_BLOCK_PROPERTY (lv_cur_block, first_item);
 
   WHILE (lv_cur_itm IS NOT NULL)
   LOOP
      lv_cur_itm := lv_cur_block || '.' || lv_cur_itm;
      DISPLAY_ITEM( lv_cur_itm, pv_va );      
      lv_cur_itm := GET_ITEM_PROPERTY (lv_cur_itm, nextitem);
   END LOOP;
EXCEPTION
   WHEN form_trigger_failure
   THEN
      RAISE;
   WHEN OTHERS
   THEN
      qms$errors.unhandled_exception ('p_highlight');
 
END p_highlight;
 
Merci