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 23/11/2011, 10h36   #1
 
Inscription : août 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 9
Points : -3
Points : -3
Par défaut Comment empêcher modification bloc de données

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 :
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;
  1. Il envoie bien le message d'erreur mais les modifications continuent.
  2. 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.
anafor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h29   #2
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Si ton code est celui du WHEN-LIST-CHANGED il faut faire un 'raise form_tigger_failure' dans le bloc EXCEPTION !
Code :
1
2
3
4
5
6
 
...
 Exception 
   when LE$Fin then
           raise form_trigger_failure;
end;
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h33.


 
 
 
 
Partenaires

Hébergement Web