Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
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 10/09/2007, 17h29   #1
Futur Membre du Club
 
Inscription : décembre 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 47
Points : 18
Points : 18
Par défaut When New Item Instance

Bonjour,

Je travaille en Forms6i et ne possède pas encore la maîtrise parfaite de l'outil.

Je suis dans un block MULTI-LIGNES et je souhaiterais que certaines de mes lignes soient DÉSACTIVEES.

C'est à dire que sur ma ligne, j'ai par exemple un item CODE qui peut prendre la valeur ('DE', 'TR', 'EC', 'CO'), à côté de cet Item, se trouve un BOUTON qui me permet d'aller sur un autre écran que si mes codes sont (DE, TR).

Je voudrais que sur les lignes contenant EC et CO, que surtout le Bouton ne soit pas ENABLED. Seulement, je n'ai pas cette propriété dans W-N-F-Instance.

Comment pourrais-je résoudre le problème ?

Merci

Paxaranne
Paxaranne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 18h08   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 213
Points : 4 213
Tu ne peux pas désactiver un item sur certaines lignes seulement.
Il faut donc dans le WHEN-NEW-RECORD-INSTANCE
tester ton champ code et faire un SET_ITEM_PROPERTY('BOUTON', ENABLED, PROPERTY_TRUE) ou PROPERTY_FALSE

Attention, lors du clic sur un bouton d'une autre ligne, il se peut que le trigger WNRI ne soit pas encore déclenché (j'ai pas testé, mais j'ai déjà eu des problèmes)

Sinon, tu peux jouer avec les Visual_Attribute (qui peuvent être modifiés au niveau record) et faire ton test sur le clic
Exemple
POST_QUERY
Code :
1
2
3
4
5
IF :bl.code IN ('DE', 'TR')
THEN SET_ITEM_INSTANCE_PROPERTY('BL.BOUTON', CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VA_OK');
ELSE
SET_ITEM_INSTANCE_PROPERTY('BL.BOUTON', CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VA_KO');
END IF;
Avec VA_OK et VA_KO 2 visual attribute (exemple, dans le KO, tu peux mettre la couleur de texte = couleur de fond)
Tu n'es pas obligé d'utiliser un VA_OK (qui serait le defaut, dans ce cas, un set_item_instance_property(...., '') redonne le visuel défini dans le builder.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 18h20   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 213
Points : 4 213
Houla, pas très clair.
J'ai fait un test visuel

Visual Attribute VA_KO
Background_color = gray
Foreground_color = gray

Procédure P_VISUEL_BOUTON
Code :
1
2
3
4
5
6
IF :block2.code IN ('DE','TR')
THEN
  SET_ITEM_INSTANCE_PROPERTY('block2.BOUTON', CURRENT_RECORD, VISUAL_ATTRIBUTE, '');
ELSE
  SET_ITEM_INSTANCE_PROPERTY('block2.BOUTON', CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VA_KO');
END IF;
WHEN_BUTTON_PRESSED (BLOCK2.BOUTON)
Code :
1
2
3
4
 IF :block2.code IN ('DE','TR')
THEN
   OPEN_FORM('blabla');
END IF;
POST_QUERY (BLOCK2)
WHEN_VALIDATE_ITEM (BLOCK2.CODE)
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 21h22   #4
Futur Membre du Club
 
Inscription : décembre 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 47
Points : 18
Points : 18
Par défaut Merci.

Bonjour,

Merci pour la solution. J'étais pris à autre chose, ce pourquoi j'ai tardé.

Désolé.

Paranne,
Paxaranne 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 23h09.


 
 
 
 
Partenaires

Hébergement Web