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 13/09/2006, 12h15   #1
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 85
Points : 25
Points : 25
Par défaut [forms] Data Block Lov Plusieurs tables jointure

Bonjour,

je developpe une application forms. J'utilise les lov et les data block pour afficher les champs que je veux de mes tables. Mon probleme est que je ne peux afficher avec les lov et les data block, des requetes contenant une jointure.

Par exemple, j ai une table produit :
Code :
1
2
3
4
5
6
7
8
9
10
11
TABLE produit
{
id_produit     integer;
id_categorie  integer;
}
 
TABLE categorie
{
id_categorie   integer;
libelle            varchar2;
}
Donc je souhaiterais afficher les infos de mon produit mais remplacer l'id de la categorie par son libelle. Avec les lov, on ma dit que c'était impossible de l'utiliser avec plusieurs tables.

Je ne sais pa comment faire.
Avez vous des idées ?? Comment puis-je faire ?
loupin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 12h20   #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
Il suffit de faire une jointure entre les 2 tables....

Code :
1
2
3
SELECT a.nom, b.libelle
FROM tableA a, tableB b
WHERE a.code = b.code
__________________
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 13/09/2006, 12h40   #3
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 85
Points : 25
Points : 25
Cela fonctionne pour la lov mais le souci, c'est que pour les data block (permettant l'affichage des donnees de la lov), on ne peut pas selectionner plusieurs tables, et donc la jointure est impossible .
loupin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 13h17   #4
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
Il faut utiliser des items non basés et les renseigner dans un trigger POST-QUERY. (lookup items)
__________________
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 13/09/2006, 20h43   #5
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 85
Points : 25
Points : 25
Bonsoir,

merci pour ta reponse. Je fais des recherches, mais je ne trouve pas d'infos bien precise sur les items non bases.

As-tu des infos plus precise sur cet element ?

Merci d'avance.
loupin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 21h39   #6
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 un item comme un autre. La seule différence est qu'il ne pointe sur aucune colonne de table. C'est pourquoi on dit qu'il n'est pas basé (sur une table).

Donc il suffit d'ajouter un text ou display item, de laisser vide les propriétés relatives au nom de table et nom de colonne, puis de créer un trigger POST-QUERY sur ce block. Le POST-QUERY se déclenche à chaque enregistrement ramené de la base.
Il suffit d'ajouter un select pour alimenter le champs non basé

Code :
1
2
3
4
SELECT libelle
INTO   :block.item_non_base
Form   la_tableB
WHERE ...
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h55.


 
 
 
 
Partenaires

Hébergement Web