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 01/07/2007, 16h53   #1
Invité de passage
 
Inscription : juin 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 3
Points : 1
Points : 1
Par défaut Rafraîchir le contenu d'un bloc après la sortie d'un champ

En Oracle forms 9i

J'ai un bloc maitre - détail. Dans le bloc maitre j'ai un champs de type LOV. Je veux à la sortie de champs LOV rafraichir le contenue du bloc détail. ça marche pas avec le WHEN_VALIDATE_ITEM du champs LOV. Le when validate item n'accepte pas un go bloc.

Merci de m'aider
Bou128 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2007, 18h37   #2
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Tu mets ce code dans le WHEN-BUTTON-PRESSED du bouton qui appelle la LOV

Adaptes ce code à ton besoin.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
declare 
	id BOOLEAN ;
begin 
	id :=show_lov('lov_nom',50,50);
	IF NOT ID  THEN 
		BELL;
	end IF;
IF :nom_bloc_maitre.nom_champ IS NOT NULL then 
  GO_block('block_detail_nom');
  execute_query;
end IF ;
end ;
Dans le cas ou tu n'as pas de LOV, tu peux utiliser un timer.
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 15h12   #3
Invité de passage
 
Inscription : juin 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 3
Points : 1
Points : 1
Par défaut Timer

Merci beaucoup Salim.
Justement mon problème est lorsque l'utilisateur n'utilise pas la LOV. C'est à dire il saisit directement dans le champ et navigue vers un autre champ (en utilisant la souris ou le TAB du clavier). C'est dans ce cas que je veut rafraîchir le block détail. J'ai utilisé le KEY-NEXT-ITEM mais lui ne se déclenche pas lorsque la navigation est faite par la souris.

Mon problème reste posé.
Bou128 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 16h15   #4
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut,
Je te propose cette solution :

mais dans le when-validate-item au niveau de ton item
Code :
1
2
3
4
5
6
7
8
 
 
DECLARE 
timer_id Timer; 
one_minute NUMBER(5) := 60; 
BEGIN 
timer_id := CREATE_TIMER('emp_timer', one_minute, NO_REPEAT);
END;
au niveau de ta forme ( module)tu crées un trigger when-timer-expired
Code :
1
2
3
4
 
 
go_block('nom_block_détail');
execute_query;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 16h26   #5
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Si le canevas qui contient ton bloc détaillé n'est pas affiché au retour de ta LOV (par exemple s'il figure dans un onglet différent de celui du bloc maître) alors tu peux utiliser les procédures restreintes (dont GO_BLOCK) dans les triggers :
- when-new-bloc-instance
- when-new-item-instance
- when-new-...-instance

Sinon, dans les propriétés du bloc détail, tu peux faire référence aux items du bloc maître afin de gérer dynamiquement le contenu du bloc détail.
__________________
Modérateur des forums Oracle et Langage SQL
Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 19h23   #6
Invité de passage
 
Inscription : juin 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 3
Points : 1
Points : 1
Merci Salim. ça fonctionne bien avec le timer. Bravo
Bou128 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 19h57.


 
 
 
 
Partenaires

Hébergement Web