Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Reports
Reports Forum d'entraide sur Oracle Reports
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/08/2005, 12h55   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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 :
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
Citation:
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é
Citation:
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 :
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
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2005, 09h32   #2
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
Quelqu'un pourrai m'aider
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2005, 09h40   #3
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
As-tu lu l'article de Sheik ?
http://sheikyerbouti.developpez.com/forms10g/?page=Chap17

NB : à mon avis l'erreur vient du fait que 'report4' n'existe pas, puisque ton état s'appelle ETAT23.
__________________
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/08/2005, 09h41   #4
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Citation:
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.
__________________
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2005, 12h26   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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 :
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.
@++
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2005, 13h22   #6
Membre habitué

 
Avatar de Nounoursonne
 
Inscription : mai 2002
Messages : 257
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 257
Points : 145
Points : 145
tu devrais peut être préciser le chemin complet de ton reports
sinon il doit aller le chercher dans le repertoire courant
Nounoursonne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2005, 18h58   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
Vous pouvez m'aider avec les paramètres utilisateurs sous report
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 09h58   #8
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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 :
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
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 10h30   #9
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
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 :
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 :
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
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 11h10   #10
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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à:
Citation:
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


@++
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 11h55   #11
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
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 :
SELECT a, b FROM MATABLE WHERE NO_MAT = :MATRIC
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 12h34   #12
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
ce qui me donne comme fonction par exemple
Code :
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?
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 14h44   #13
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
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 ...)
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 14h49   #14
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 dahu29
ce qui me donne comme fonction par exemple
Code :
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 ?
__________________
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 08/08/2005, 17h31   #15
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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 :
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
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2005, 19h32   #16
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
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 :
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..
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2005, 09h46   #17
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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é
dahu29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2005, 10h59   #18
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 453
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 453
Points : 4 215
Points : 4 215
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.
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2005, 11h58   #19
Candidat au titre de Membre du Club
 
Inscription : juillet 2005
Messages : 59
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 59
Points : 12
Points : 12
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
dahu29 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 04h53.


 
 
 
 
Partenaires

Hébergement Web