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 14/04/2007, 14h20   #1
Invité de passage
 
Inscription : avril 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 2
Points : 1
Points : 1
Par défaut [Forms]Couleur d'une ligne sur Forms builder

Bonjour,
Voici mon problème sur forme builder d'oracle 9i :
Je veux afficher une ligne d'un block multiligne en couleur selon une condition.
Donc j'ai mon 'IF' qui fonctionne, mais je n'arrive pas à changer la couleur.
Le truc c'est que ca me change la couleur de mon champ donc de la colonne, je suis passé par un attribut visuel, j'ai cherché dans tous les forums, il y a quelque sujet qui en parle, mais qui ne résolve pas mon problème, même sur le tuto d'oracle il y a une explication de la manipe à faire mais 'nada' rien pas j'ai pas réussi a changer la couleur d’ une seul ligne. Donc est ce que il y a une option ou un truc que j'ai zapé ???? je sais pas.

alors voici mon bou de code :
set_item_instance_property('Lecteur.num', CURRENT_RECORD, VISUAL_ATTRIBUTE, 'Couleur_ligne_vert');

Merci

Je rajoute tout mon code que j'ai mis dans un post_query :
Code :
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
27
28
29
30
31
32
33
DECLARE
/* Declaration des variables*/
VNum VARCHAR(6) := :LECTEUR.Num;
VNbrs_Emprunt number ;
 
/* Selection et chargement de toutes les lignes identifient les lecteurs (Num) dans un curseur*/
CURSOR C1 IS SELECT DISTINCT Num FROM LECTEUR;
 
BEGIN
/* ouverture du curseur C1*/
	OPEN C1;
/* chargement des valeurs de la première ligne dans une variable*/
FETCH C1  INTO VNum;
 
/* ouvre une boucle qui scrute toutes les lignes du curseur*/
WHILE C1%FOUND LOOP
 
/*Compte le nombre de livre emprunte*/
SELECT count(EMPRUNT.Num) INTO VNbrs_Emprunt FROM EMPRUNT 	WHERE EMPRUNT.Num = VNum AND Date_Pret_r IS NULL;
 
IF VNbrs_Emprunt = 0 THEN
/*Pas d emprunt BLANC*/
SET_ITEM_instance_PROPERTY( 'lecteur.num', current_record, VISUAL_ATTRIBUTE,'COULEUR_blanc');
ELSE
/*Au moins un emprunt VERT*/
SET_ITEM_instance_PROPERTY( 'lecteur.num', current_record, VISUAL_ATTRIBUTE,'COULEUR_vert');
 
END IF;
FETCH C1  INTO VNum;
END LOOP;
/*Ferme le curseur*/
CLOSE C1;
END;
eddyditdidi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2007, 20h20   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
C'est pourtant bien la technique a utiliser.
Etes-vous sûr du résultat du traitement de votre curseur ?
Essayez simplement de changer d'attribut visuel, en dehors de tout curseur.
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2007, 14h01   #3
Invité de passage
 
Inscription : avril 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 2
Points : 1
Points : 1
Ok, merci pour ton idée, maintenant tout fonctionne correctement, effectivement j'ai recherché trop loin car en gros le curseur c'est l'appli qui le gère. Donc je mets mon code pour les prochains qui chercheraient à faire la même chose ;-)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DECLARE
/* Declaration des variables*/
VNum VARCHAR(6) := :LECTEUR.Num;
VNbrs_Emprunt number ;
 
 
/*Compte le nombre de livre emprunte*/
SELECT count(EMPRUNT.Num) INTO VNbrs_Emprunt FROM EMPRUNT WHERE EMPRUNT.Num = VNum AND Date_Pret_r IS NULL;
 
IF VNbrs_Emprunt = 0 THEN
/*Pas d emprunt BLANC*/
SET_ITEM_instance_PROPERTY( 'lecteur.num', current_record, VISUAL_ATTRIBUTE,'COULEUR_blanc');
ELSE
/*Au moins un emprunt VERT*/
SET_ITEM_instance_PROPERTY( 'lecteur.num', current_record, VISUAL_ATTRIBUTE,'COULEUR_vert');
 
END IF;
 
END;
Génial et encor MERCI.
eddyditdidi 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 02h36.


 
 
 
 
Partenaires

Hébergement Web