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 08/11/2007, 14h38   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 2
Points : 1
Points : 1
Par défaut [Forms9i]ligne suivante block tabulaire

Bonjour,
je souhaite afficher ce select a l'aide d'un trigger.
Requete sur une vue mais qui sera differente selon la valeurs d'un autre block.

Voici mon code:

Citation:
DECLARE
Cursor C_APPRENTIS Is
select view_of_apprentis.nom, view_of_apprentis.prenoms,view_of_apprentis.matricule,
view_of_apprentis.profession, view_of_apprentis.date_debut, view_of_apprentis.diplome
from view_of_apprentis, contact
where contact.matricule = :cb_orgform_of.matricule
and contact.ctc_id = view_of_apprentis.id_of (+)
order by view_of_apprentis.matricule;

BEGIN
open C_APPRENTIS;
fetch C_APPRENTIS into :cb_of_apprentis.nom, :cb_of_apprentis.prenom, :cb_of_apprentis.matricule,
:cb_of_apprentis.profession, :cb_of_apprentis.debut, :cb_of_apprentis.diplome;

close C_APPRENTIS;
END;
Mon probleme est que seulement la 1ere ligne se remplit.
G essaye aussi avec une boucle et "down;" cela passe a l'enregistrement suivant mais ca ne remplit toujours que la 1ere ligne de la table Forms.
rafi_57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 15h26   #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
Pour créer d'autres enregistrements, il faut tout d'abord utiliser la fonction Create_Record.
__________________
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 08/11/2007, 15h54   #3
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 ,

Il te faut une boucle pour afficher tes enregistrements

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE
Cursor C_APPRENTIS Is
select view_of_apprentis.nom, view_of_apprentis.prenoms,view_of_apprentis.matricule,
view_of_apprentis.profession, view_of_apprentis.date_debut, view_of_apprentis.diplome
from view_of_apprentis, contact
where contact.matricule = :cb_orgform_of.matricule
and contact.ctc_id = view_of_apprentis.id_of (+)
order by view_of_apprentis.matricule;

BEGIN
open C_APPRENTIS; 
go_block('cb_of_apprentis');
--first_record;
loop 
exit when C_APPRENTIS%notfound ;
create_record;
fetch C_APPRENTIS into :cb_of_apprentis.nom, :cb_of_apprentis.prenom, :cb_of_apprentis.matricule,
:cb_of_apprentis.profession, :cb_of_apprentis.debut, :cb_of_apprentis.diplome;
end loop;

close C_APPRENTIS;
END;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h07   #4
Invité de passage
 
Inscription : novembre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 2
Points : 1
Points : 1
ah oui parfait salim merci.
Il me manquait le bon ordre et le go_block du debut.
rafi_57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 13h10   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2006
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 55
Points : 10
Points : 10
Bonjour. j'ai aussi le meme prob, mais je dois afficher les enregistrements ds un tabulaire. Quand je clique sur le bouton seulement le dernier enregistrement de lordre select sera affiché.
Alors comme je peux les afficher dans un tabulaire.
Merci davance
jamjam19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 13h57   #6
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Les codes donnés sont pour des tabulaires.

Sinon, rafi_57, pourquoi ne pas baser ton bloc sur une clause FROM que tu modifies en dynamique dans le pre-query.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
TRIGGER Pre_query
BEGIN
 
v_query := '(select c.matricule as mat, v.nom, v.prenoms, v.matricule, v.profession, v.date_debut, v.diplome
FROM view_of_apprentis v, contact c
where c.ctc_id = v.id_of (+))';
 
v_where := 'mat = :cb_orgform_of.matricule';
 
Set_block_Property('cb_of_apprentis', QUERY_DATA_SOURCE_NAME, v_query);
Set_block_Property('cb_of_apprentis', DEFAULT_WHERE, v_where);
Set_block_Property('cb_of_apprentis', ORDER BY, 'matricule');
Attention : Bien penser à entourer la clause FROM (v_query) par ()
2ème chose : le binding à l'intérieur ne marche pas, il faut le faire en amont.
Il faut avoir une colonne dans ton block par colonne ramenée.
Penser à modifier l'option de block DML_DATA_TYPE : NULL

Le code sql lancé par forms sera de la forme :
Code :
1
2
3
4
5
6
SELECT mat, nom, prenoms, matricule, profession, date_debut, diplome
FROM
(select c.matricule as mat, v.nom, v.prenoms, v.matricule, v.profession, v.date_debut, v.diplome FROM view_of_apprentis v, contact c
where c.ctc_id = v.id_of (+))
WHERE mat = :cb_orgform_of.matricule
ORDER BY matricule
__________________
More Code : More Bugs. Less Code : Less Bugs
McM 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 10h45.


 
 
 
 
Partenaires

Hébergement Web