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

Reports Oracle Discussion :

création de formulaire forms6


Sujet :

Reports Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut création de formulaire forms6
    salut

    je voudrai savoir si vous saviez ou je pourrais trouver un tuto expliquant comment créer un formulaire servant a intéroger une base oracle puis à afficher dans un second formulaire le résultat complet?

    J'ai déjà crée le premier formulaire mais je ne sais aps comment faire pour intéroger la base, ou mettre le code PL/SQL qui me permettra d'avoir mon résultat

    @++

  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
    Bonjour,

    Vous pourriez déjà consulter le Guide Forms 9i/10g disponible dans la page Oracle -> Cours
    http://sheikyerbouti.developpez.com/forms10g/
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    J'avais déjà regarder ce tuto mais j'y avais pas compris grand chose par rapport a ce que je recherche a faire ou c'est peut etre que j'ai pas bien regardé

    J'avais essayé avec l'assistant mais il me laisse au meme point que j'était arrivé tout seul

    Actuellement ce que je cherche a faire c'est une fois rentré les info dans 4 champs (ce sont tous les 4 des clés primaires de la meme table de la meme personne) je puisse faire 1 requète qui m'affiche toute la fiche de la personne dans une autre page

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    salut

    J'ai regarder la page qui traite des bloc de donnée et j'arrive pas a trouver ce que je cherche, comment enregistrer dans des variables les données insérés dans des emplacements créé dans le formulaire.
    Dans un bouquin que j'ai il utilise QUERY_PARAMETER('&paramètre') mais dans mon cas je ne sais pas comment faire

    Et quand j'essaye les fichiers que tu donnes avec le tuto j'ai des erreurs lorsque je souhaite afficher 1 module qui sont surments à la différence entre mon forms6 et le form9

    Je vien de parler de mon prob avec mon maitre de stage et en faite je me compliquait la vie comme moi je partai sur de la programmation alors qu'ici on utilise forms pour programmer le moins possible
    Je vais donc devoir utiliser la fonction enter_query et execute_query

    C'est compliqué de faire du Forms quand on n'en a jamais fait

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par dahu29
    C'est compliqué de faire du Forms quand on n'en a jamais fait
    C'est le genre d'outil qui nécessite une formation c'est évident

    Pour affecter un champ à une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mavariable := monblock.monitem;
    tout simplement

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    salut

    J'ai avancé 1 peu mon histoire mais je suis partit avec 1 facon différente de celle que je voulais faire précédement

    En faite dans mon formulaire, il y a 3 champs qui vont etre renseigner (3 clé primaire) et puis il a 1 quinzaine d'autre qui sont liés au 3 champs rentré et seront simplement affichés.
    En cherchant un peu sur différent fichier forms qu'y a sur mon pc au buro j'ai trouvé 1 code qui me semble intéressent , on le place au niveau du premier champ rentré (il s'agit du numéro de la personne appellé NO_MAT dans le formulaire et la colonne s'appelle pareil dans la base) pour savoir si la personne existe dans la base
    Lorsque j'essaye de le mettre a la sauce de ma base sa coince pourtant il est pas bien long
    Je lui est demander d'afficher que 3 champs car j'avais la flemme d'écrire tout le reste
    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
     
     
    DECLARE
      CURSOR C IS SELECT NOM,PRENOM,CODE_CORPS
                  FROM BULLETIN_7000
                  WHERE NO_MAT=:BULLETIN_7000.NO_MAT;
     
    BEGIN
      IF BULLETIN_7000.NO_MAT IS NOT NULL THEN
      OPEN C;
      FETCH C INTO :BULLETIN_7000.NOM,
                            :BULLETIN_7000.CODE_CORPS,
                            :BULLETIN_7000.PRENOM;
      IF C%NOTFOUND THEN
       MSG_ALERT('La personne n''existe pas ','I',TRUE);
      END IF;
      CLOSE C;
      END IF;
    END;
    Les erreurs se trouvent à chaque fois qu'il y a : avant le nom de ma table erreur 49 variable de lien erroné

    pourtant cet algo me semble correct

    @++

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    mais t'as vu où qu'il y avait : avant le nom des variables ???

    relis le tutoriel PL/SQL : http://oracle.developpez.com/guide/developpement/plsql/

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Bonjour

    J'ai modifié mon code en faisant comme dans le tuto de PL/SQL
    Je me demandais pourquoi on met des LC% LN% sa set a quoi ces machins??

    sinon mon code ressemble sa sa maintenant je l'ai alléger

    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
    DECLARE
    	LC$NOMAG BULLETIN_7000.NOM_AG%type;
     
      CURSOR C (LN$MAT IN BULLETIN_7000.NO_MAT%TYPE )IS
          SELECT NOM_AG
                  FROM BULLETIN_7000
                  WHERE NO_MAT= MAT;
     
    BEGIN
      IF NAME_IN('BULLETIN_7000.NO_MAT') IS NOT NULL THEN
      OPEN C;
      FETCH C INTO           LC$NOMAG;
     
      IF C%NOTFOUND THEN
       MESSAGE('La personne n''existe pas ','I',TRUE);
      END IF;
      CLOSE C;
      END IF;
    END;
    Et j'ai encore plus d'erreur qu'avant y me dit qu'il faut que je déclare mes variables erreur 201 BULLETIN_7000.NOM_AG BULLETIN_7000.NO_MAT

    sinon j'ai des erreurs d'item ignoré entre NOMAG BULLETIN et devant CURSOR

    et encore plein d'autre erreur

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par dahu29
    J'ai modifié mon code en faisant comme dans le tuto de PL/SQL
    Je me demandais pourquoi on met des LC% LN% sa set a quoi ces machins??
    c'est "machin" sont des normes de nommage

    L = Local, N = combre et C = caractère... ça permet de voir tout de suite à quel type de données on a affaire dans le code

  10. #10
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    quels sont les items et blocs manipulé, et qu'est ce que tu cherches à faire ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    il serait pas plus simple dans ton cas de faire de cette façon :

    pour vérifier si la personne existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(no_mat) from ta-table where no_mat = valeur_saisie
    ainsi si le résultat de ta requete est 0 = la personne n'existe pas sinon oui, et tu n'as plus qu'à gérer les deux cas.

    il me semble que cela est plus simple que d'utiliser un curseur

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Je travaille sur la table BULLETIN_7000.
    Je souhaite que lorsque la personne remplisse la case MAT (appellé NO_MAT dans la base) (elle entre son numéro de matricule) il y a un affichage du nom de l'agent dans la case NOMAG (NOM_AG dans la base)

    Et puis la je comprend pas mes erreurs y me dise pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     DECLARE
    	LC$NOMAG BULLETIN_7000.NOM_AG%type;
    erreur 201 ligne 2 colonne 11
    L'identificateur 'BULLETIN_7000.NOM_AG' doit etre déclaré
    erreur 0 ligne 2, colonne 11
    Item ignored

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CURSOR C (LN$MAT IN BULLETIN_7000.NO_MAT%TYPE )IS
    Ensuite devant CURSOR:
    Erreur 0 ligne 4, colonne 1
    Item ignored

    l'identificateur 'BULLETIN_7000.MAT' doit etre déclaré
    Erreur 0 ligne 4, colonne 1
    Item ignored

    Devant Open:
    erreur 306 ligne 11 colonne 3
    numéro ou types d'arguments erronés dans appel à 'C'
    erreur 0 ligne 11 colonne 3
    SQL Statement ignored

    après j'ai un erreur devant FETCH, LC$NOMAT et 2 autres devant message

    J'espère avoir été assez clair

  13. #13
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    il y a un truc que tu ne sembles pas avoir compris. Si tu fais un bloc basé sur une table, les champs correspondent aux colonnes et si tu fais une mise à jour c'est FORMS qui s'en débrouille. Tu n'as aucun code à rajouter pour que la mise à jour soit faite en base

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    je pense que tu n'as pas besoin d'utiliser un curseur :
    ma solution :
    bloc master : item MAT avec lov (liste des no_mat de la base)
    bloc détail : item NOMAG affiché (affiche no_mag de la base)
    beaucoup plus simple, enfin je crois ...

    si tu préfère utiliser un curseur, alors je peux pas t'aider : j'ai toujours eut des problèmes avec l'utilisation de curseur donc j'essaie de m'en passer

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    J'arrète pas de m'embrouiller avec ce forms c énervant passer 1 journé sur un piste qui ne servira pas

    apparament c'est donc un lov qu'il faut que je fasse ?

    La personen qui s'occupe de moi m'avais parlé de faire un menu avec enter_query et execute_query, est ce que sa rejoint le lov ?

    J'ai essayé de comprende a quoi sa servait dans mes livres et les tuto mais g pas bien compris

    ++

  16. #16
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    encore une fois, Forms est un outil qui nécessite au moins une petite formation de prise en main... c'est illusoire de penser pouvoir utiliser Forms que grace aux bouquins

  17. #17
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    la lov est liste alimenté par une requete. Il suffit d'indiquer dans ton item MAT que l'item doit etre alimenté par la lov. Ainsi l'utilisateur devrait choisir un no_mat existant dans la base (plus besoin de vérifier que le no_mat existe). Avec les bloc master/détail, forms actualisera l'item affichant le nom de la personne dès le choix de MAT fait.
    lov : http://sheikyerbouti.developpez.com/...page=Chap11#LB
    bloc master/détail : http://sheikyerbouti.developpez.com/...?page=Chap9#LA

    voila moi aussi je suis en stage sur forms et reports : pas de formation non plus, heureusement que des personnes bien attentionnées ont rédigé un tutorial sur forms

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoup pour vos réponses

    Je n'ai pas utilisé le système des LOV.
    J'ai revu mon maitre de stage se matin et qui ma débloqué, en faite il fallait passer en mode enter_query puis taper se qu'on voulais chercher (ou ne rien mettre) puis lancer le execute_query et là tout se qui devait s'afficher dans toutes les cases se fait bien.

    Sauf que comme c'est pas encore fini sa marche pas top, au premier lancement il m'avais affiché ce qu'il devait le faire mais il y avait un problème avec ces données donc on a du les supprimer de la table.

    Maintenant si on laisse tous les champs vide ou qu'on tape le numéro de matricule le mois l'anné pour sélectionner une personne sa marche pas j'ai droit a une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-01722: Nombre non valide
    J'ai vérifier le type de donnée la taille, .. de tous les champs et rien trouvé comme erreur.

    Par contre si je rentre des informations erronés dans n'importe quelle champs y me dit que les informations sont fausses et qu'il faut resaisir.

    si vous sauriez à quoi peut correspondre cette erreur??

  19. #19
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    vérifie si les propriètés de la clause WHERE sont OK. Commence par retrouver le trigger qui génére cette erreur et vérifie le code éventuellement

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    justement je regarde le code de la requète

    La clause where n'est pas mise dedans comme je fait mes tests avec les champs vide (sa revient au meme que si je les remplissai ) normalement je devrai obtenir les données du premier matricule de la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 
    ROWID,NO_MAT,MOIS_BUL,AN_BULL,NO_BUL
     FROM BULLETIN_7000
    si j'essaye avec des données il me donne cette requète:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ROWID,NO_MAT,MOIS_BUL,AN_BULL,NO_BUL
     FROM BULLETIN_7000 WHERE (NO_MAT=:1) and (MOIS_BUL=:2) and (AN_BULL=:3)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Création de formulaire et activation
    Par Squemo dans le forum ASP
    Réponses: 1
    Dernier message: 28/04/2006, 10h14
  2. Création de formulaire en VBA - Plantage
    Par Shansson dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 15h48
  3. Programme de création de formulaire
    Par krfa1 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 11/04/2006, 12h38
  4. Réponses: 2
    Dernier message: 29/12/2005, 01h03
  5. Librairie pour création de formulaires
    Par mathk dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/12/2005, 16h40

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