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 :

Imprimé des états report


Sujet :

Reports Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut Imprimé des états report
    Bonjour

    J'ai mon formulaire d'état créé sous forms qui est fini, il faut maintenant que je l'imprime .

    Sous forms j'ai créé un module contenant 3 champs que la personnes remplirat et qui servira à sélectionnner le bulletin a imprimé, ces 3 champs sont défini comme non basés.

    J'ai crée un bouton pour lancer l'impression avec comme code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     IF (:BULLETIN_7000.NO_MAT IS NULL) OR
     	  (:BULLETIN_7000.MOIS_BUL IS NULL) OR
        (:BULLETIN_7000.AN_BULL IS NULL) THEN
      GO_ITEM('BULLETIN_7000.NO_MAT');
      MSG_ALERT('Veuillez entrer un numéro de matricule, un mois et une année correcte.','I',TRUE);
     END IF;
     
     Run_Report('ETAT23');
    J'ai ajouté dans mon forms le report qui s'appelle ETAT23 (c'est le nom que forms lui a donné mais pas le mien)

    J'ai suivi le tuto sur report mais je me suis 1 un peu perdu dedans

    Lorsque je click sur le bouton avec çà comme code j'obtien un message d'erreur
    FRM-41219 : Impossible de trouver l'état : ID non valide et y me parle de RUN_REPORT_OBJECT()...
    Une fois que j'ai cliqué sur les 6 erreurs en bas de runtime ya marqué
    FRM-40738: L'argument 1 de la procédure interne RUN_REPORT_OBJECT doit etre renseigné
    Je n'ai pas installé cette procédure RUN_REPORT_OBJECT vu que je ne sais pas a quoi elle sert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RUN_REPORT_OBJECT()
    Declare repid REPORT_OBJECT; 
    v_rep VARCHAR2(100); 
    rep_status VARCHAR2(20); 
    Begin 
    repid := FIND_REPORT_OBJECT('report4'); 
    v_rep := RUN_REPORT_OBJECT(repid);
     End;
    A quoi correspond report4 et repid ?

    Merci de vos réponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    Quelqu'un pourrai m'aider

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    As-tu lu l'article de Sheik ?
    http://sheikyerbouti.developpez.com/...g/?page=Chap17

    NB : à mon avis l'erreur vient du fait que 'report4' n'existe pas, puisque ton état s'appelle ETAT23.

  4. #4
    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
    repid := FIND_REPORT_OBJECT('report4');
    v_rep := RUN_REPORT_OBJECT(repid);
    repid est l'identifiant interne du reports qui se nomme : report4 (dans votre cas, il faut mettre le nom de votre état)
    v_rep est le code retour de l'exécution du report identifié par repid.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    Dans l'aide de forms j'ai vu qu'on pouvais utiliser la procédure run_product à la place de run_report_object

    J'ai donc créé une procédure run_report que j'appelle avec mon bouton

    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
     
    PROCEDURE run_reports IS
      	pl_id  paramlist;
       repid REPORT_OBJECT;
       v_rep  VARCHAR2(100);
       rep_status varchar2(20);
     
     
     BEGIN
     
     	pl_id:=get_parameter_list('criteres');
     
     	  IF NOT Id_Null(pl_id) THEN 
        Destroy_Parameter_List( pl_id );
     	  end if;
     
     	   pl_id := Create_Parameter_List('criteres'); 
     
     	Add_Parameter(pl_id,'NO_MAT',TEXT_PARAMETER,'MATRI'); 
      Add_Parameter(pl_id,'MOIS_BUL',TEXT_PARAMETER,'MOIS');
      Add_Parameter(pl_id,'AN_BULL',TEXT_PARAMETER,'ANNEE');
     
     
     	repid := find_report_object('ETAT23'); 
    	 v_rep := RUN_REPORT_OBJECT(repid,pl_id);
     
    END;
    Avec ce code si tout s'exécute je n'ai pas d'erreur dans le background engine, y scanne toute les fiches de ma base, mais y ne trouve pas
    Et il ma créé un fichier pdf contenant tout les formulaire stocké dans la base.

    Pour sélectionner le bon formulaire et pas tout on ma dit d'utiliser dans report les paramètres utilisateurs et de relier les paramètres de mon état report au paramètre saisi précédemment, mais la je ne vois pas du tout comment faire, il faut créé une grille de paramètre? mais il ne faut pas qu'on puisse saisir 2 fois les valeurs.

    Vous pouvez m'aider.
    @++

  6. #6
    Membre éclairé Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Par défaut
    tu devrais peut être préciser le chemin complet de ton reports
    sinon il doit aller le chercher dans le repertoire courant

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    Vous pouvez m'aider avec les paramètres utilisateurs sous report

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    Personne ne pourrait m'aider comme je n'arrive a rien avec mes paramètres utilisateur dans report

    J'ai créé 3 type utilisateurs:
    ANNEE
    MOIS
    MATRI

    Est ce qu'il faut créé des champs dans la grille de paramètre?

    MAis par contre dans le code sql sa marche jamais, j'ai essayé ca par exemple pour MATRI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function ANNEEValidTrigger return boolean is
    begin
      if :NO_MAT=:MATRI then  -- NO_MAT représente un champ du report et MATRI représente un des champs saisi dans le forms
      return (TRUE);
    end;
    Si vous pouviez m'aider

  9. #9
    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 Paramètres sous report
    Les paramètres : Tu les déclares dans le Data Model - User Parameters
    Ensuite tu les utilise en mettant :NomParam
    Le ParameterForm ne sert qu'à pouvoir modifier les paramètres lors du lancement du report (ça ne te sert à rien je pense).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Add_Parameter(pl_id,'NO_MAT',TEXT_PARAMETER,'MATRI'); 
      Add_Parameter(pl_id,'MOIS_BUL',TEXT_PARAMETER,'MOIS'); 
      Add_Parameter(pl_id,'AN_BULL',TEXT_PARAMETER,'ANNEE');
    NON les paramètres de Add_Parameter sont :
    1 : Nom de la Liste (Ok)
    2 : Nom du paramètre ('NO_MAT', etc...) (KO) faut que tu mettes 'MATRI', 'MOIS', 'ANNEE'
    3 : Type (Ok)
    4 : Valeur du paramètre (KO) : Là, ton param MOIS_BUL aura la valeur 'MOIS'. Affecte lui la valeur que tu veux.
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Add_Parameter(pl_id,'MATRIC',TEXT_PARAMETER,:b_block.matricule); 
      Add_Parameter(pl_id,'MOIS',TEXT_PARAMETER, 08); 
      Add_Parameter(pl_id,'ANNEE',TEXT_PARAMETER, 2005);
    Dans Report tu crées 3 paramètres :
    MATRIC, MOIS, ANNEE

    Ton code de fonction est alors correct

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    Merci beaucoup pour les modification de mon code

    Lorsque je lance le programme, y m'affiche la grille de paramètre avec dedans tout ce qui est rentré dans la base, mais y sélectionnece que j'ai saisi dans le forms, je valid et la y m'enregistre comme avant toute ma base dans un pdf.

    Pour mon code de fonction de MATRI, ANNEE, et MOIS dans report, j'obtient ces 2 messages d'erreurs là:
    REP-0748: Un déclencheur de paramètre ne peut pas référencer une colone d'un état
    REP-0730: La variable de lien suivante n'est pas définie: No_MAT


    @++

  11. #11
    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
    Oups.. j'avais pas vu le nom de ta fonction.

    Le trigger sur un paramètre va te vérifier ce paramètre.
    Pour simplifier, Les paramètres sont vérifiés, affectés AVANT le lancement du report.

    Tes paramètres sont des paramètres qui vont restreindre ta requete.
    Tu les utilises directement dans la requête du DATA MODEL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT a, b FROM MATABLE WHERE NO_MAT = :MATRIC

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    ce qui me donne comme fonction par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function MATValidTrigger return boolean is
    begin
    select NO_MAT from BULLETIN_7000 where NO_MAT = :MATRI;
      return (TRUE);
     
    end;
    J'ai une erreur à la compilation qui me demande de déclaré BULLETIN_7000 qui est ma table, y'a pas besoin de la déclaré normalement?

  13. #13
    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 Mais ?
    A quoi sert cette fonction ? Qu'est ce que tu veux faire avec ces paramètres ?

    En plus dans du PlSql tu doit insérer dans une variable (SELECT .. INTO .. FROM ...)

  14. #14
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    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 862
    Par défaut
    Citation Envoyé par dahu29
    ce qui me donne comme fonction par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function MATValidTrigger return boolean is
    begin
    select NO_MAT from BULLETIN_7000 where NO_MAT = :MATRI;
      return (TRUE);
     
    end;
    J'ai une erreur à la compilation qui me demande de déclaré BULLETIN_7000 qui est ma table, y'a pas besoin de la déclaré normalement?
    1. Es-tu connecté à ta base oracle ?
    2. La table BULLETIN_7000 appartient-elle bien à ton user de connexion ?

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut Re: Mais ?
    Citation Envoyé par McM
    A quoi sert cette fonction ? Qu'est ce que tu veux faire avec ces paramètres ?

    En plus dans du PlSql tu doit insérer dans une variable (SELECT .. INTO .. FROM ...)
    Ce que je voudrai faire la c'est la sélection dans report du formulaire voulu, pas qu'il m'affiche tous les formulaires de ma base c'est pour çà que je voulais mettre un where pour sélectionner ce qu'on a tapé au niveau des 3 paramètres utilisateurs définis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select...
     ...where NO_MAT = :MATRI;
     ... where AN_BULL = :ANNEE;
     ... where MOIS_BUL =:MOIS;
    Et oui je suis connecté a ma base et bulletin_7000 est bien une table de ma base que j'utilise tout le temps

  16. #16
    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 Re: Mais ?
    Citation Envoyé par dahu29
    Ce que je voudrai faire la c'est la sélection dans report du formulaire voulu, pas qu'il m'affiche tous les formulaires de ma base c'est pour çà que je voulais mettre un where pour sélectionner ce qu'on a tapé au niveau des 3 paramètres utilisateurs définis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select...
     ...where NO_MAT = :MATRI;
     ... where AN_BULL = :ANNEE;
     ... where MOIS_BUL =:MOIS;
    Et oui je suis connecté a ma base et bulletin_7000 est bien une table de ma base que j'utilise tout le temps
    Ben oui, c'est exactement ça mais faut tout mettre dans la requete du data model !! Pas du tout dans un trigger de parametre..

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    MErci beaucoup mais ou est ce que je place ma requète dans le data model j'arrive pas à trouver un endroit ou l'éditeur pl/sql est activé

  18. #18
    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 Heu
    Là on sort du sujet.. Je ne peux pas t'expliquer la base de report.
    Utilises le tutorial pour créer un report, les paramètres se créeront automatiquement.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Par défaut
    Bon j'ai recréé un formulaire report et sa a marché comme y faut

    donc j'ai chercher chercher ou c'est que les modif avait été faite et j'ai trouvé youpi youpiha

    donc c bon g fini enfin

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

Discussions similaires

  1. Imprimer des états
    Par TiteufMela dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 27/09/2012, 17h35
  2. Format EXCEL des états reports
    Par moezsokrati dans le forum Reports
    Réponses: 4
    Dernier message: 02/06/2008, 14h35
  3. Fabriquer des états / reports ?
    Par patxi.draks dans le forum Général Python
    Réponses: 2
    Dernier message: 28/05/2008, 15h47
  4. [VB.NET] Imprimer des états access
    Par bambou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 25/07/2004, 16h52
  5. [Crystal reports]Flexibilitée des états et formulaires
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 03/02/2004, 16h13

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