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 :

[Forms9i]ligne suivante block tabulaire


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    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:

    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.

  2. #2
    Expert confirmé
    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
    Par défaut
    Pour créer d'autres enregistrements, il faut tout d'abord utiliser la fonction Create_Record.

  3. #3
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    salut ,

    Il te faut une boucle pour afficher tes enregistrements

    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
    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;

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut
    ah oui parfait salim merci.
    Il me manquait le bon ordre et le go_block du debut.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut
    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

  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

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

Discussions similaires

  1. [VBA-E]Prise en compte ligne suivant condtition multiple
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/08/2006, 13h05
  2. [Access] Max + 3 autres lignes suivantes
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/07/2006, 15h44
  3. Comment allez vers la ligne suivante d'un dbgrid
    Par Karim1971 dans le forum Bases de données
    Réponses: 7
    Dernier message: 12/05/2006, 12h57
  4. asm en ligne (code::blocks + VC toolkit 2003)
    Par - Robby - dans le forum Code::Blocks
    Réponses: 6
    Dernier message: 12/01/2006, 23h47
  5. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 18h41

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