IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[FORMS 9i] appeler un groupe d'enregistrements


Sujet :

Forms Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut [FORMS 9i] appeler un groupe d'enregistrements
    j'ai cree 1 groupe d'enregistrements:
    GROUPE_DES_TAXES
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select reftaxe,taux from taxe order by reftaxe
    et que je puisse l'utiliser:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    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

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!!!

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Tout d'abord POPULATE_GROUP() est une fonction qui retourne un entier égal à 0 si ok <> de 0 si ko.

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    ok ca marcher merci,

    mais maintenant je je veux afficher les enregistrements que j'ai selectionner j'ai ajouter ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!!!

  8. #8
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Extrait de l'aide en ligne :

    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

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  ALL TAXE.REFTAXE,TAXE.TAUX FROM  TAXE order by taxe.reftaxe

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    c ok, ca marcher
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment réaliser un Form pour Appel à Cotisation
    Par auriolbeach dans le forum IHM
    Réponses: 7
    Dernier message: 26/05/2006, 06h52
  2. Réponses: 5
    Dernier message: 26/04/2006, 15h06
  3. Forme d'appel de méthode réservé méthodes de classe
    Par Chicobrasil dans le forum Langage
    Réponses: 16
    Dernier message: 03/01/2006, 17h43
  4. [forms 9i] appel de module
    Par sofian001 dans le forum Oracle
    Réponses: 8
    Dernier message: 21/11/2005, 20h16
  5. Réponses: 36
    Dernier message: 13/05/2004, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo