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 :

Lancer report depuis le menu Forms


Sujet :

Forms Oracle

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut Lancer report depuis le menu Forms
    Bonjour,

    Je veux savoir comment lancer un état depuis le menu directement sous Forms 10g.

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    j'ai essayé ce code mais ça ne marche plus :

    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
    DECLARE
    	v_repjob		VARCHAR2(100);
    	v_job_id		VARCHAR2(100);
    	v_rep_status		VARCHAR2(100);	
    	v_reportsrvr		VARCHAR2(50) := 'rep10g';
    	v_runformat		vARCHAR2(50) := 'PDF';--HTML HTMLCSS PDF	
    	pl_id   paramlist;
    BEGIN
    	pl_id := GET_PARAMETER_LIST ('tmpdata');
     
      	IF NOT ID_NULL (pl_id)  
       THEN  
        DESTROY_PARAMETER_LIST (pl_id);  
      	END IF; 
      		pl_id := CREATE_PARAMETER_LIST('tmpdata');
     
    	SET_REPORT_OBJECT_PROPERTY('REPORT_NAME', REPORT_SERVER, v_reportsrvr);
    	SET_REPORT_OBJECT_PROPERTY('REPORT_NAME', REPORT_DESFORMAT, v_runformat);	
     
    	SET_REPORT_OBJECT_PROPERTY('REPORT_NAME', REPORT_OTHER,' paramform=yes');	
     
    	SET_REPORT_OBJECT_PROPERTY('REPORT_NAME', REPORT_FILENAME, 'C:\Emp.RDF');
     
    	v_repjob := RUN_REPORT_OBJECT('REPORT_NAME',pl_id);
    	v_job_id := SUBSTR(v_repjob, LENGTH(v_reportsrvr) + 2, LENGTH(v_repjob) );
    	v_rep_status := REPORT_OBJECT_STATUS(v_repjob);
     
    	IF v_rep_status = 'FINISHED' THEN
    		WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid' || v_job_id ||'?server=' || v_reportsrvr || '', '_blank');
     
    	END IF;
     
        END;
    j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FRM-41219 : Impossible de trouver le rapport : ID non valide
    Merci de m'assister.

  3. #3
    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 Un état ('REPORT_NAME' dans votre exemple) doit être présent dans la forme qui supporte le menu.
    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

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    Je cherche juste de lancer un état depuis le menu directement et non plus depuis une forme (ça diffère).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Depuis le menu, tu ne peux pas lancer un report en version 10G.

    Pour qu'une forme puisse appeler un report en 10G il faut qu'elle dispose d'un report object.
    Hors, tu ne peux pas attribuer de report object à ton menu.

    Tu es donc obligé de créer une forme spéciale pour ça, qui contiendra le report object et qui ne fera que l'appel à ton report (que tu auras passé en paramètre en appelant la forme depuis le menu)

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    C'est bizarre, je n'ai pas pensé que sur la version 6i on peut lancer le report depuis le menu alors que sur 10g ce n'est pas possible !!!!

    J'ai plusieurs état à lancer depuis le menu ce qui est bénéfique en terme de gain de temps. Si en 10g je dois créer une forme pour lancer un report ça prend de temps.

  7. #7
    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,

    Il y a forcément une forme existante en 10g, car il n'est pas possible d'avoir un menu sans forme. Il suffit d'ajouter l'objet REPORTS à cette forme.
    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

  8. #8
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Ce n'est pas ça ce que je dis.

    Prenant l'exemple suivant:

    Un menu : Fichier | Edition | Clients | Etats.

    Sous Etats on a les sous menus : Liste Clients | Liste des factures ...

    donc en cliquant sur le sous menu Liste des Clients j'aurai un etat sur l'ensemble des clients (donc je ne suis pas obligé de créer une forme pour lancer cet etat.

    Évidement ce menu est relié à une forme (forme principale).

    Un exemple de code sous la version 6i:

    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
     
    declare
    	pl_id   paramlist;
    Begin
    	pl_id := Get_parameter_list('tmpdata');
     
    	if not id_null(pl_id) then
    		destroy_parameter_list(pl_id);
    	end if;
     
     
     
    	pl_id := create_parameter_list('tmpdata');
     	Add_Parameter(pl_id,'maximize',TEXT_PARAMETER,'yes');
     	--ADD_PARAMETER (pl_id,'Oracle_shutdown',TEXT_PARAMETER,'YES');
    	Run_Product(REPORTS, 'Liste_client.REP', ASYNCHRONOUS, RUNTIME,FILESYSTEM, pl_id, NULL);
     
      exception
      	when others then
      	null;
    end;
    Alors que le lancement à partir d'un 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
     
    declare
    	pl_id   paramlist;
    Begin
    	pl_id := Get_parameter_list('tmpdata');
    	if not id_null(pl_id) then
    		destroy_parameter_list(pl_id);
    	end if;
    	pl_id := create_parameter_list('tmpdata');
     	Add_Parameter(pl_id,'N_CLIENT',TEXT_PARAMETER,:NUM_CLIENT); 
     	Add_Parameter(pl_id,'paramform',TEXT_PARAMETER,'NO');
     	Add_Parameter(pl_id,'maximize',TEXT_PARAMETER,'yes');
    	Run_Product(REPORTS, 'client.rep', ASYNCHRONOUS, RUNTIME,FILESYSTEM, pl_id, NULL);
    	exception
      	when others then
      	null;
    end;

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 88
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par tunis71187 Voir le message
    C'est bizarre, je n'ai pas pensé que sur la version 6i on peut lancer le report depuis le menu alors que sur 10g ce n'est pas possible !!!!

    J'ai plusieurs état à lancer depuis le menu ce qui est bénéfique en terme de gain de temps. Si en 10g je dois créer une forme pour lancer un report ça prend de temps.
    Je me suis retrouvé dans le même cas que toi mais en 11g pas plus tard qu'il y a deux semaines.
    Ca ne m'a pas pris plus d'une heure pour créer une forme générique qui servait uniquement à l'appel des différents reports du menu et pour modifier toutes les entrées menu qui appelait des reports.

    Au passage, fais attention, RUN_PRODUCT est devenu obsolète en forms 10g, même s'il fonctionne encore.
    Mais en forms 11G, il ne fonctionne plus du tout.

  10. #10
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    L'appel donc à travers des boutons et non pas via le menu.

  11. #11
    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
    Pas besoin de bouton. Un menu Forms peut contenir un bloc de PL/SQL.
    Si le menu doit lancer plusieurs états, il est mieux de faire une petite procédure stockée dans la forme avec les paramètres et d'appeler cette procédure depuis le menu.
    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

  12. #12
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    Le code mentionné pour la version 10g est il suffisant ?

  13. #13
    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
    Le code que vous donnez dans votre premier message devrait faire l'affaire. Il faut créer un objet report 'REPORT_NAME' dans la forme qui supporte le menu.
    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

  14. #14
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 390
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Merci pour vos réponses.

    Le code que vous donnez dans votre premier message devrait faire l'affaire.
    OK c'est bien.

    Il faut créer un objet report 'REPORT_NAME' dans la forme qui supporte le menu.
    ça ce que je n'arrive pas à comprendre.

    Toutes les formes portent le même menu donc je dois créer l'objet report sur chaque forme !!!!

    il est mieux de faire une petite procédure stockée dans la forme avec les paramètres
    Pareille dans ce cas.

    Juste je veux une piste claire afin d'appeler les états depuis le menu pour clôturer cette discussion.

  15. #15
    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
    Toutes les formes portent le même menu donc je dois créer l'objet report sur chaque forme !!!!
    Oui, c'est pourquoi l'on part généralement d'un squelette ou d'une forme de référence qui contient l'objet Report.

    Sinon, il faut utiliser la méthode Web.Show_Document() et passer l'url complète du report server avec tous les paramètres.
    L'inconvénient de cette méthode c'est que les paramètres sont en clair dans l'url, notamment la chaine de connexion.
    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

Discussions similaires

  1. Appeler un report depuis un menu
    Par floflo164 dans le forum Reports
    Réponses: 0
    Dernier message: 03/06/2013, 11h47
  2. Problème lancer un report depuis une form
    Par Danicela dans le forum Oracle
    Réponses: 1
    Dernier message: 24/04/2009, 10h58
  3. Appeler un report depuis un menu
    Par cesar031983 dans le forum Reports
    Réponses: 2
    Dernier message: 29/09/2008, 01h35
  4. lancer un report depuis forms 10g
    Par ouatmad dans le forum Forms
    Réponses: 1
    Dernier message: 22/01/2008, 16h00
  5. [Forms6i] Lancer un reports depuis un forms
    Par macben dans le forum Reports
    Réponses: 2
    Dernier message: 09/02/2006, 09h39

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