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 06/10/2004, 12h03   #1
Invité de passage
 
Inscription : juin 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 20
Points : 3
Points : 3
Par défaut [FORMS 9i] appeler un groupe d'enregistrements

j'ai cree 1 groupe d'enregistrements:
GROUPE_DES_TAXES
Code :
SELECT reftaxe,taux FROM taxe ORDER BY reftaxe
et que je puisse l'utiliser:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
declare
	rg_id RecordGroup;
	gc_id GroupColumn;
	the_Rowcount NUMBER;
	sel_row NUMBER;
	the_val VARCHAR2(20);	
begin
      rg_id := Find_Group('GROUPE_DES_TAXES');
      gc_id := Find_Column('GROUPE_DES_TAXES.reftaxe');
      the_Rowcount := Get_Group_Selection_Count( rg_id );
      message('le nombre d enregistrement est '||to_char(the_rowcount));
	FOR j IN 1..the_Rowcount LOOP
		sel_row := Get_Group_Selection( rg_id, j );
		the_val := Get_Group_CHAR_Cell( gc_id, sel_row );
	end loop;
end;
mais le probleme c'est que : the_Rowcount est toujours 0,
malgrer que ma table taxe elle n'est pas vide

merci d'avance
oramine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 12h11   #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
Tout d'abord :

Lorsque vous éditer un message, vous avez un bouton "Prévisualisation" qui vous permet de voir ce que donnera votre message avant de l'envoyer.
Vous pourrier alors vous appercevoir que vos balises (code) (/code) sont mal positionnées

ensuite :
Je commence à être vraiment fatigué d'avoir à répéter constament que le titre des messages doit être clair en indiquant le PRODUIT et éventuellement la VERSION concernés par la question
__________________
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 06/10/2004, 12h23   #3
Invité de passage
 
Inscription : juin 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 20
Points : 3
Points : 3
Citation:
Envoyé par SheikYerbouti
Tout d'abord :

Lorsque vous éditer un message, vous avez un bouton "Prévisualisation" qui vous permet de voir ce que donnera votre message avant de l'envoyer.
Vous pourrier alors vous appercevoir que vos balises (code) (/code) sont mal positionnées

ensuite :
Je commence à être vraiment fatigué d'avoir à répéter constament que le titre des messages doit être clair en indiquant le PRODUIT et éventuellement la VERSION concernés par la question
j'ais réecrie le sujet je m'excuse
oramine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 13h41   #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
La table n'est sans doute pas vide, mais le record group est-il populé ?
(POPULATE_GROUP())
__________________
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 06/10/2004, 14h04   #5
Invité de passage
 
Inscription : juin 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 20
Points : 3
Points : 3
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
declare 
   rg_id RecordGroup; 
   gc_id GroupColumn; 
   the_Rowcount NUMBER; 
   sel_row NUMBER; 
   the_val VARCHAR2(20);    
begin 
      rg_id := Find_Group('GROUPE_DES_TAXES'); 
      POPULATE_GROUP(rg_id);
      gc_id := Find_Column('GROUPE_DES_TAXES.reftaxe'); 
      the_Rowcount := Get_Group_Selection_Count( rg_id ); 
      message('le nombre d enregistrement est '||to_char(the_rowcount)); 
   FOR j IN 1..the_Rowcount LOOP 
      sel_row := Get_Group_Selection( rg_id, j ); 
      the_val := Get_Group_CHAR_Cell( gc_id, sel_row ); 
   end loop; 
end;
toujours le message m'affiche 0 enregistrement!!!
oramine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 14h24   #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
Tout d'abord POPULATE_GROUP() est une fonction qui retourne un entier égal à 0 si ok <> de 0 si ko.

donc :

Code :
1
2
3
4
5
6
7
Declare
...
ok PLS_INTEGER ;
BEGIN
....
  ok := POPULATE_GROUP(...) ;
END;
ensuite Get_Group_Selection_Count() retourne le nombre d'enregistrement marqués comme sélectionnés

pour obtenir le nombre d'enregistrement du record group il faut utiliser : Get_Group_row_Count()
__________________
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 06/10/2004, 15h15   #7
Invité de passage
 
Inscription : juin 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 20
Points : 3
Points : 3
ok ca marcher merci,

mais maintenant je je veux afficher les enregistrements que j'ai selectionner j'ai ajouter ce code:
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
DECLARE
	 rg_name  VARCHAR2(40) := 'GROUPE';
   rg_id          recordgroup;
   gc_id          groupcolumn;
   the_rowcount   NUMBER;
   sel_row        NUMBER;
   the_val        VARCHAR2 (20);
   errcode  NUMBER;
   STATUS number;
   ok pls_integer;
BEGIN
   rg_id := FIND_GROUP(rg_name);
   ok := Populate_Group(rg_id);
   gc_id := Find_Column('GROUPE_DES_TAXES.reftaxe');
   the_rowcount := GET_GROUP_row_COUNT(rg_id);
   MESSAGE ('le nombre d enregistrement 1111 est   ' || TO_CHAR (the_rowcount));
 
   /***le code que j'ais ajouter**/ 
    FOR j IN 1 .. the_rowcount
      LOOP
	      sel_row := GET_GROUP_SELECTION (rg_id, j);
	      the_val := GET_GROUP_CHAR_CELL (gc_id, sel_row);
	      MESSAGE ('la valeur est  ' ||the_val);
      END LOOP;
 
END;
mais il m'affiche aucune valeur!!!, malgrer que j'ais 7 enregistrements!!!
oramine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 15h36   #8
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
Extrait de l'aide en ligne :

Citation:
GET_GROUP_SELECTION_COUNT()

Returns the number of rows in the indicated record group that have been programmatically marked as selected by a call to SET_GROUP_SELECTION.
comme vous n'avez rien sélectionné "programatiquement", votre sélection est vide et la suite ne remonte logiquement rien.
__________________
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 06/10/2004, 16h36   #9
Invité de passage
 
Inscription : juin 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 20
Points : 3
Points : 3
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
34
DECLARE
	 rg_name  VARCHAR2(40) := 'GROUPE';
   rg_id          recordgroup;
   gc_id          groupcolumn;
   the_rowcount   NUMBER;
   the_selectioncount NUMBER;
   sel_row        NUMBER;
   the_val        VARCHAR2 (10);
   errcode  NUMBER;
   STATUS number;
   ok pls_integer;
   LN$I number := 0 ;
BEGIN
   rg_id := FIND_GROUP(rg_name);
/*******la ligne qui va etre changer**********/
     gc_id := Find_Column('GROUPE.reftaxe');
/********************************************/
   ok := Populate_Group(rg_id);
   the_rowcount := GET_GROUP_row_COUNT(rg_id);
   FOR j IN 1..the_rowcount LOOP
   	   Set_Group_Selection( rg_id, j );
   END LOOP;	   
   the_selectioncount := GET_GROUP_SELECTION_COUNT(rg_id);
   MESSAGE ('le nombre d enregistrement 1111 est   ' || TO_CHAR (the_rowcount));
 
    While LN$I < the_rowcount
        LOOP
        	LN$I := LN$I + 1 ;
        	sel_row := GET_GROUP_SELECTION (rg_id,LN$I);
	 	      the_val := GET_GROUP_CHAR_CELL (gc_id, sel_row);
	      MESSAGE ('la valeur est  ' ||TO_CHAR(the_val));
      END LOOP;
 
END;
si je veux afficher les taux au lieu de reftaxe cad

gc_id := Find_Column('GROUPE.TAUX');

a la place de

gc_id := Find_Column('GROUPE.reftaxe');


le message : 'la valeur est' reste toujours vide,malgrer que la requete de mon enregistrement est:
Code :
SELECT  ALL TAXE.REFTAXE,TAXE.TAUX FROM  TAXE ORDER BY taxe.reftaxe
oramine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2004, 17h04   #10
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
Peut-être que la colonne TAUX est de type numérique, dans ce cas il faut utiliser GET_GROUP_NUMBER_CELL()
__________________
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 06/10/2004, 17h45   #11
Invité de passage
 
Inscription : juin 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 20
Points : 3
Points : 3
c ok, ca marcher
merci
oramine 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 11h41.


 
 
 
 
Partenaires

Hébergement Web