Bonjour,
Je veux savoir comment lancer un état depuis le menu directement sous Forms 10g.
Bonjour,
Je veux savoir comment lancer un état depuis le menu directement sous Forms 10g.
Bonjour,
j'ai essayé ce code mais ça ne marche plus :
j'ai l'erreur suivante :
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;
Merci de m'assister.
Code : Sélectionner tout - Visualiser dans une fenêtre à part FRM-41219 : Impossible de trouver le rapport : ID non valide
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
Je cherche juste de lancer un état depuis le menu directement et non plus depuis une forme (ça diffère).
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)
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.
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
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:
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
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;
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;
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.
L'appel donc à travers des boutons et non pas via le menu.
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
Le code mentionné pour la version 10g est il suffisant ?
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
Bonjour,
Merci pour vos réponses.
OK c'est bien.Le code que vous donnez dans votre premier message devrait faire l'affaire.
ça ce que je n'arrive pas à comprendre.Il faut créer un objet report 'REPORT_NAME' dans la forme qui supporte le menu.
Toutes les formes portent le même menu donc je dois créer l'objet report sur chaque forme !!!!
Pareille dans ce cas.il est mieux de faire une petite procédure stockée dans la forme avec les paramètres
Juste je veux une piste claire afin d'appeler les états depuis le menu pour clôturer cette discussion.
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.Toutes les formes portent le même menu donc je dois créer l'objet report sur chaque forme !!!!
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager