Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/04/2007, 16h45   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
Par défaut [Forms6] Erreur lors de l'appel d'un report

Bonjour,

lorsque j'appel un report dans un écran forms j'ai le message en pièce jointe.

L'appel se fait comme suit :
Code :
1
2
3
4
5
 
pl_id := Create_Parameter_List('critere');
Add_Parameter(pl_id, 'PARAMFORM', TEXT_PARAMETER, 'NO');
...
Run_Product(REPORTS, 'maquette_suivi_dossier', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
Si quelqu'un à une idée du pourquoi du comment ?
Images attachées
Type de fichier : jpg Erreur appel report.JPG (13,7 Ko, 10 affichages)
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 17h37   #2
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Pourquoi tu utilises pas run_report_object ,c'est plus simple.

Tu peux poster ton code complet ?
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 18h13   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
le code sur mon bouton qui déclenche l'appel du report
Code :
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
34
35
36
37
38
39
 
  v_pl_id	        ParamList;
  v_where       VARCHAR2(1000);
  v_date_a      VARCHAR2(10);
  v_date_de     VARCHAR2(10);
BEGIN
 
  v_pl_id := Get_Parameter_List('critere');
 
  IF NOT Id_Null(v_pl_id) THEN
	   Destroy_Parameter_List( v_pl_id ); 
  END IF;
 
  v_pl_id := Create_Parameter_List('critere');
  v_where := :CONTROL.criteres;
 
  Add_Parameter(v_pl_id, 'PARAMFORM', TEXT_PARAMETER, 'NO');
  Add_Parameter(v_pl_id, 'p_where', TEXT_PARAMETER, v_where);
 
 
  IF (:CRITERES.niveau = 'D') THEN
  	Run_Product(REPORTS, 'suivi_dossier', SYNCHRONOUS, RUNTIME, FILESYSTEM, v_pl_id, NULL);
 
  ELSIF (:CRITERES.niveau = 'C') THEN
 
  	Run_Product(REPORTS, 'suivi_contrats', SYNCHRONOUS, RUNTIME, FILESYSTEM, v_pl_id, NULL);
 
  ELSIF (:CRITERES.niveau = 'B') THEN
  	 v_date_a  := :CRITERES.date_a;
  	 v_date_de := :CRITERES.date_de;
     Add_Parameter(v_pl_id, 'P_DATE_A', TEXT_PARAMETER, v_date_a);
     Add_Parameter(v_pl_id, 'P_DATE_DE', TEXT_PARAMETER, v_date_de);
 
     Run_Product(REPORTS, 'suivi_rglt', SYNCHRONOUS, RUNTIME, FILESYSTEM, v_pl_id, NULL);
  END IF;
 
  destroy_parameter_list(v_pl_id);
 
END;
Le run_product permet de passer des paramétres ce qui n'est pas le cas du run_report_object; sauf erreur de ma part
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 18h26   #4
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,
Code :
1
2
 
Le run_product permet de passer des paramétres ce qui n'est pas le cas du run_report_object; sauf erreur de ma part
Je suis pas d'accord avec toi, moi je l'utlise pour soumettre mes rapports et faire le lien entre mes parametres de forms et reports.
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 18h29   #5
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par Nargel33
Le run_product permet de passer des paramétres ce qui n'est pas le cas du run_report_object; sauf erreur de ma part
Si bien sûr :
Code :
v_jobId := run_report_object(report_id => v_report_id, paramlist_id => v_paramlist_id);
Pour plus d'informations :
http://sheikyerbouti.developpez.com/...g/?page=Chap17
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 18h47   #6
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Mais on peut utilser une chaine de caractère sans passer par param_list, cette dernière je l'utilise au travail.

Un exemple je l'ai trouvé sur metalink:
Code :
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 TEST_REPORT IS 
  repid      REPORT_OBJECT;  
  v_rep      VARCHAR2(100);  
  rep_status VARCHAR2(50);  
BEGIN  
  repid := find_report_object('report5'); 
  SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);  
  SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS); 
  SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE); 
  SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'html'); 
  SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'repserver90'); 
  SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no pdeptno='||:dept.deptno); 
  v_rep := RUN_REPORT_OBJECT(repid);  
  rep_status := REPORT_OBJECT_STATUS(v_rep);  
  WHILE rep_status IN ('RUNNING','OPENING_REPORT','ENQUEUED') 
    LOOP 
      rep_status := report_object_status(v_rep); 
    END LOOP; 
  IF rep_status = 'FINISHED' THEN 
    /*Display report in the browser*/ 
    WEB.SHOW_DOCUMENT('http://<YourServerName:8888/reports/rwservlet/getjobid'|| 
   substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=repserver90','_blank'); 
  ELSE  
    message('Error when running report');  
  END IF;  
END;
une autre méthode
Code :
1
2
3
4
5
6
7
8
9
10
11
 
DECLARE 
v_str  varchar2(200); 
QT varchar2(1):=chr(39); 
 
BEGIN 
... 
  v_str:='NAME='||QT||:val||QT||' paramform=no'; 
  SET_REPORT_OBJECT_PROPERTY('DEPT',report_other,v_str); 
.... 
END;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2007, 20h49   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
Houla je m'incline devant cette pluie d'arguments
J'ai dû lire l'aide de forms trop rapidement

Je vais essayer tout ça demain.

Encore merci.
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 00h06   #8
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Essaie de vérifier ces trois choses.

1- Est ce que dans ton module dans le noueds reports (Etats) tu as rajouté tes rapports ?

Etats
- suivi_dossier
- suivi_contrats
- suivi_rglt

2- Vérifier le contenu de v_where ( c'est a dire vérifier s'il n'existe pas le caractère ' )

si on passe cette chaine ' L'introduction' oracle va nous générer une erreur parceque c'est une chaine incorrecte.

Remarque :
Pour éviter les erreurs de préférences de passer les codes et non les decriptions

3- quel sont les types de
- :CRITERES.date_a
- P_DATE_A ?
v_date_a := :CRITERES.date_a
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 15h44   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
Bonjour,

je rencontre toujours l'erreur, en pièce jointe du premier message de ce post, malgré l'application de vos remarques et consignes.

Cela peut il venir des etats reports ?
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 15h59   #10
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Ce problème est quand tu soumis ce rapport ou ça arrive avec d'autres rapports?

Si ca arrive uniquement avec ce rraport seulement

1- essaie d'appeler un seul rapport mais sans paramètres
les autres mets les en commentaires.
Code :
1
2
3
 
Run_Product(REPORTS, 'suivi_dossier', SYNCHRONOUS, RUNTIME, 
FILESYSTEM, NULL, NULL);
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 16h02   #11
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
Oui à mon avis cela vient de ton état report.

As-tu :
1. essayé de le lancer directement depuis reports ?
2. essayé de le recompiler avec un compile all sur la base sur lequel tu l'exécutes?
3. vérifié que tu n'as pas de procédure avec des paramètres out uniquement sur des colonne placeholder ? De mémoire report 6i n'aime pas trop... Il faut les passer en in out.

Sinon essaie de voir quel bout de code provoque le plantage (s'il rentre dans report, si oui à quel endroit s'arrête-t-il).
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 18h16   #12
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
Le message c'est au moment où l'appel de report se fait, il ne s'ouvre même pas. il y a, semble t il ,un problème d'allocation de mémoire.

J'ai pensé à appeller un état existant pour voir, et là ça marche. donc c'est bien le report.
Sacahnt que l'execution par report fonctionne.

L'appel sans argument ne fonctionne pas, le forms plante à la compil.

Concernant les paramétres In out qu'appelles tu une colonne placeholder sous report. le nom est peut être différent dans la version en français...
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 18h21   #13
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut,
Qu'est ce que tu veux dire ?
comment tu l'as appelé via forms ou reports ?
Code :
1
2
3
4
 
J'ai pensé à appeller un état existant pour voir, et là ça marche. donc c'est 
bien le report.
Sacahnt que l'execution par report fonctionne.
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 18h26   #14
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut
essaie de l'appeler comme ça , l'autre code mets le en commentaire
Code :
1
2
3
4
5
 
BEGIN
Run_Product(REPORTS, 'suivi_contrats', SYNCHRONOUS, RUNTIME, 
FILESYSTEM, NULL, NULL);
END;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 18h30   #15
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
J'ai appellé un report existant dans le forms en question. il s'est ouvert correctement.

Les nouveaux états report qui me pose problème, je les ai executé directement avec le report runtime ou depuis report builder. Là pas d'erreur, le focntionnement est correct.

Petite précision, qui a peut être son importance, cette erreur a un carractére aléatoire. Il arrive que l'état s'affiche correctement, mais c'est rare. La proportion est plutôt de 80/20 qu'il ai une erreur.
Sur un poste c'est à tous les coups..
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 18h49   #16
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut ,

j'ai pas compris qu'est ce que tu veux dire par une report existant ?
est ce que les autres n'existent pas ?
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 18h53   #17
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
je veux dire par reprot existant un report actuellement en production.

Les autres Reports sont nouveaux.

Je compare leur structure avec un ancien report qui fonctionne pour voir s'il y a une différence de paramétrage qui existe.
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2007, 19h37   #18
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
salut,

Sincerement je vois pas ou il est le problème.

quand tu fais l'appel du rapport via l'ecran de soimission ca marche ou pas ?
Code :
1
2
3
4
5
 
BEGIN
Run_Product(REPORTS, 'suivi_contrats', SYNCHRONOUS, RUNTIME, 
FILESYSTEM, NULL, NULL);
END
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 12h59   #19
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 49
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 49
Points : 10
Points : 10
Bonjour,

pour conclure mon problème, cela provenait de la longueur du nom de l'état....

Le nom de l'état avait pour longueur 35 caractéres, ce que n'est pas supporté.

Merci à vous pour vos propositions.
Nargel33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h04.


 
 
 
 
Partenaires

Hébergement Web