Académique Documents
Professionnel Documents
Culture Documents
Définition
Les états sont des modules spécifiques réalisés avec l'outil Oracle Reports.
Le nœud Etats du module Forms ne stocke que les paramètres d'appels de l'état
Mise en oeuvre
Bloc de données source représente le bloc Forms qui sera la source des données de
l'état
Nom de l'interrogation représente l'ordre SQL qui sera transmis à l'état
Etats
Aperçu
Fichier
Imprimante
Envoyer
Cache
Ecran
Serveur d'états indique le nom du Report Server activé sur le serveur d'applications
Paramètres dresse la liste des paramètres qui seront transmis à l'état (de type
param=valeur)
Forms lance Reports Builder ainsi que ses assistants pour vous permettre de mettre en
forme de nouvel état.
Syntaxes:
Il est possible de modifier dynamiquement les paramètres d'un état avec l'instruction:
Exemple:
SET_REPORT_OBJECT_PROPERTY()
Declare
repid REPORT_OBJECT;
report_prop VARCHAR2(20);
Begin
repid := find_report_object('report4');
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, FILE);
End;
Ces valeurs peuvent également être lues avec l'instruction:
finished
running
canceled
opening_report
enqueued
invalid_job
terminated_with_error
crashed
REPORT_OBJECT_STATUS()
Declare
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status varchar2(20);
Begin
repid := find_report_object('report4');
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := REPORT_OBJECT_STATUS(v_rep);
If rep_status = 'FINISHED' then
message('Etat achévé');
copy_report_object_output(v_rep,'d:/temp/local.pdf');
host('netscape d:/temp/local.pdf');
Else
message('Erreur d''exécution de l''état.');
End if;
End;
Cancel_Report_Object( id_etat ) ;
Remarque:
Il n'est pas possible d'arrêter un état lancé en mode synchrone
lRepObj := find_report_object('RP2RRO');
set_report_object_property(lRepObj,report_server,lRepServer);
set_report_object_property(lRepObj,report_execution_mode,RUNTIME);
set_report_object_property(lRepObj,report_comm_mode,ASYNCHRONOUS);
set_report_object_property(lRepObj,report_desType,p_desType);
set_report_object_property(lRepObj,report_desName,p_desName);
set_report_object_property(lRepObj,report_desFormat,p_desFormat);
set_report_object_property(lRepObj,report_fileName,p_report_name);
lRepJobId := run_report_object(report_id => lRepObj,paramlist_id =>
p_param_list);
WEB.SHOW_DOCUMENT('http://youservername/reports/rwservlet/getjobid'||
lJobId||'?server='||lRepServer,'_blank');
End if;
End if;
End if;
End;
Il est possible de lancer l'exécution d'un état sans la présence d'un objet Etat
dans la forme.
Cette fonctionnalité est intéressante lorsque vous voulez lancer un état depuis un menu
ou depuis une url saisie dans le navigateur.
Il suffit de lui transmettre l'url du Report Server ainsi que les paramètre requis
Web.Show_Document()
Declare
LC$Repserver Varchar2(128) :=
'http://nom_machine:port/reports/rwservlet' ;
LC$Cmd varchar2(256) ;
Begin
LC$Cmd := LC$Repserver || '?nom_section_config&report=nom_etat.rdf'
|| '&P_1=' || name_in('PARAMETER.P_1') ) ;
Web.show_document(LC$Cmd, '_blank') ;
End ;
nom_section_config représente le nom d'une des sections de configuration ajoutée
dans le fichier:
<ORACLE_HOME>reports\conf\cgicmd.dat
L'ajout de section dans ce fichier permet d'indiquer les paramètres confidentiels qui
n'apparaîtront donc pas dans l'url du navigateur.