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 16/04/2007, 12h44   #1
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Par défaut [Forms]Liste Elements Forms/Base

Bonjour tout le monde,

Voilà j'ai fait une recherche sur le forum pour trouver une solution à mon problème mais je l'ai pas encore résolu.
Je voudrais avoir une liste d'elements sous forms qui s'alimente à partir d'une table via une requête SQL.
voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DECLARE 
   rg_name  VARCHAR2(40) := 'STRAT_SYSTEM'; 
   rg_id    RecordGroup; 
 
BEGIN 
  rg_id := Find_Group( rg_name ); 
   IF Id_Null(rg_id) THEN 
 
      rg_id := Create_Group_From_Query( rg_name, 'select distinct compte from gl_int_b'); 
 
   END IF; 
   IF Populate_Group( rg_id ) = 0 then
      POPULATE_LIST  ('compte',rg_name);
   end IF;
 
END;
Et si qlq peut m'expliquer à quoi servent les rg_name et rg_id...

Merci Infiniment...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 12h53   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Pour remplir une liste à partir d'une requête tu es obligé de créer un record group qui sera alimenté par ta requête et c'est lui qui alimentera ta liste.

- rg_name : nom du record group créé
- rg_id : identifiant interne du record group créé
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 12h56   #3
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Citation:
Envoyé par plaineR
Pour remplir une liste à partir d'une requête tu es obligé de créer un record group qui sera alimenté par ta requête et c'est lui qui alimentera ta liste.

- rg_name : nom du record group créé
- rg_id : identifiant interne du record group créé
Merci plaineR, je viens de chercher dans l'aide de Forms et j'ai compris.

Mais je n'arrive toujours pas à remplir ma liste alors que la requête sous sqlpls renvoie bien une valeur...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h21   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
As-tu une erreur ? Si oui laquelle ? Sinon es-tu sûr de passer dans les différents if ?
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h25   #5
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

Oui, en fait il passe par les differents "if" mais quand il faut passer par :
POPULATE_LIST ca ne marche pas.

En fait qu'est ce que je dois mettre comme argument?
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h28   #6
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

Voici l'erreur :

Impossible de trouver l'element compte pour en retourner la valeur...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h38   #7
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Le nom de ta liste (block.item) ou son identifiant.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h44   #8
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

Je viens de me rendre compte que le nom de la liste n'était pas le bon et je l'ai changé, mais j'ai toujours une erreur :

Chargement de liste impossible pour cause de groupe d'enregistrements non valide.

Alors que j'ai bien créé le groupe d'enregistrements dans le programme...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h28   #9
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 ,

Ta requette doit avoir deux champs
par exemple compte , description
rg_id := Create_Group_From_Query( rg_name, 'select compte ,description from gl_int_b');
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 15h46   #10
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

en fait c'est déjà fait :

Code :
SELECT compte, compte FROM TABLE
et ça me donne toujours la même erreur...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 15h48   #11
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

Compte est de quel type varchar2 ou number?

Tu peux poser ton code modifié?
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 16h12   #12
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
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 
   rg_name  VARCHAR2(40) := 'RGName'; 
   rg_id    RecordGroup; 
   errcode  NUMBER; 
BEGIN 
 
   rg_id := Find_Group( rg_name ); 
 
   IF Id_Null(rg_id) THEN 
 
      rg_id := Create_Group_From_Query( rg_name, 'select distinct compte, compte from gl_int_b'); 
 
   END IF; 
 
 
   IF Populate_Group( rg_id ) = 0 then
      POPULATE_LIST  ('LISTE14',rg_name);
   end IF;
 
   	exception when others then
	message(sqlerrm);
 
END;
La liste s'appelle 'LISTE14' de type CHAR(25), et :
COMPTE VARCHAR2(25)


Voilà, merci pour ton aide.
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 16h12   #13
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Essaie ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE 
   rg_name  VARCHAR2(40) := 'STRAT_SYSTEM'; 
   rg_id    RecordGroup; 
BEGIN 
  rg_id := Find_Group( rg_name); 
  IF NOT Id_Null(rg_id) THEN
      delete_group (rg_id);
  end IF;
  rg_id := Create_Group_From_Query(rg_name, 'select distinct compte, compte from gl_int_b'); 
  IF Populate_Group( rg_id ) = 0 then
      POPULATE_LIST  ('LISTE14', rg_id);
  end IF;
END;
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 16h20   #14
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

Quand j'ai mis mon code dans une instance when-mouse-clicked et bien ça marche mais avec un petit problème quand je clique sur la liste, mais avec l'autre instance ça ne marche pas...

Je vais essayer ton code plaineR...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 16h23   #15
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
Citation:
Envoyé par kikouu

Quand j'ai mis mon code dans une instance when-mouse-clicked et bien ça marche mais avec un petit problème quand je clique sur la liste, mais avec l'autre instance ça ne marche pas...

Je vais essayer ton code plaineR...
Tu parles du trigger ou instance ?


Ta table gl_int_b change chaque minutes ?

Pourquoi pas mettre ton code dans le when-new-form-instance.
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 17h32   #16
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Citation:
Envoyé par salim11
Tu parles du trigger ou instance ?


Ta table gl_int_b change chaque minutes ?

Pourquoi pas mettre ton code dans le when-new-form-instance.
Salam, elle change mais pas chaque min...

Quand je l'ai mise dans le when-new-form-instance, ça ne marche pas...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 17h41   #17
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,

Ca c'est bizare,

Mettre le code dans le when-new-form-instance( la requette est executée une seule fois), pour eviter qu'a chaque fois que je clique sur la liste la requette va s'executer.
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 17h45   #18
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

Oui et le prob c'est que quand c'est dans when-new-form-instance rien ne se passe!!!
J'ai même essayer d'enlever TOUT le code et de mettre juste un :

Mais je ne reçoi aucun message...
kikouu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 17h47   #19
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,

C'est sure tu vois rien, il faut rajouter pause
Code :
1
2
3
 
message ( 'allo' );
pause;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 17h51   #20
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 133
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 133
Points : 33
Points : 33
Salam,

Toujours rien!!! J'ai essayé aussi de mettre un texte dans un champ texte juste pour voir s'il execute ce qu'il ya dans l'instance, mais RIEN!!! je ne sais pas pourquoi il n'entre pas dans cette instance...
kikouu 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 02h47.


 
 
 
 
Partenaires

Hébergement Web