Vous êtes sur la page 1sur 26

Mise en pratique Report

15 fvrier 2008

Introduction.................................................................................................................................3
Base de donnes contenant des images.......................................................................................3
La table DOCUMENTS..............................................................................................................3
La structure de la table DOCUMENTS..................................................................................3
Les donnes de la table DOCUMENTS.................................................................................4
Reports Builder...........................................................................................................................4
L'insertion d'images par Reports Builder................................................................................5
Le rsultat final...................................................................................................................9
Designer d'Oracle......................................................................................................................10
Ingnierie Inverse..................................................................................................................10
La cration du module pour Oracle Report.......................................................................10
Excution de rapports avec le runtime contenu dans la version ODS10G...............................13
Le lancement du serveur.......................................................................................................13
Les proprits de Start OC4J Instance..................................................................................14
Le contenu du fichier default-web-site.xml...................................................14
Excution d'un rapport par l'instance OC4J..........................................................................15
Le test rel de la requte...................................................................................................15
Le rsultat de la requte....................................................................................................16
Excution d'un rapport par le Report Server.............................................................................17
La configuration sur les postes clients..................................................................................17
Les configurations sur OAS Report......................................................................................17
Tnsnames.ora....................................................................................................................17
Registry Editor..................................................................................................................18
Exemple d'excution de rapport avec rendu en HTML........................................................18
Nous appelons la page suivante depuis notre poste de travail..........................................19
Nous appelons la page suivante depuis le serveur............................................................20
Le rpertoire des images...................................................................................................21
Exemple d'excution de rapport crant un fichier PDF........................................................21
Appel http sur le server Report.................................................................................................23
Les paramtres de la requte http......................................................................................25
ORDSYS.ORDIMAGE............................................................................................................26
Images stockes sur le serveur d'application............................................................................26
Intgration champs HTML.......................................................................................................26
Scurit user / pwd....................................................................................................................26
Canevas.....................................................................................................................................26

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

1/26

Mise en pratique Report

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

15 fvrier 2008

2/26

Mise en pratique Report

15 fvrier 2008

Introduction
Ce document relate nos diffrents essais d'insertion d'image dans un "Oracle Reports".
Avant de faire ces diffrents essais il nous a t indispensable d'obtenir une documentation non
ngligeable concernant les Reports d'Oracle.
Effectivement, il existe diffrentes manires de concevoir des Reports ainsi que de les prsenter.

Base de donnes contenant des images


Pour nos diffrents tests, nous avions besoin d'au moins une table contenant des images.
Effectivement nous ne voulions pas passer du temps comprendre comment insrer un fichier image
dans une table SQL.
Nous avons trouv une table possdant un champ de type BLOB et contenant quelques images.
Il s'agit de la table DOCUMENTS existante sur le schma SUNIERG21 de l'instance de base de
donnes PROD10G.

La table DOCUMENTS
La structure de la table DOCUMENTS

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

3/26

Mise en pratique Report

15 fvrier 2008

Les donnes de la table DOCUMENTS

Reports Builder

Cet outil nous permet de construire facilement des Reports.


Pour illustrer nos propos, nous allons afficher des images dans un Report construit par Reports
Builder.
Nous allons utiliser la table DOCUMENTS dcrite prcdemment.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

4/26

Mise en pratique Report

15 fvrier 2008

L'insertion d'images par Reports Builder


Un assistant de construction de rapport nous est propos par Reports Builder, il serait dommage de
ne pas en profiter.

En pressant le bouton connexion, une boite de dialogue nous demande le schma cible

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

5/26

Mise en pratique Report

15 fvrier 2008

En cliquant le bouton Query Builder, nous pouvons dj slectionner la table cible contenant des
images et l'inclure.

Ce qui donne ce rsultat.

Il nous suffit de slectionner les champs que nous voulons afficher dans le Reports.
Dans notre cas, nous allons au plus simple et dcidons d'afficher uniquement les champs NUMERO et
BLOB_CONTENT. Pour ce faire il suffit de cocher les bonnes cases cocher.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

6/26

Mise en pratique Report

15 fvrier 2008

Voici la dfinition de source de donnes cre suite aux manipulations de la page prcdente.

Nous choisissons les diffrents champs afficher.

Le champ "Largeur" de l'onglet "Libells" est trs important, car il dfinit vritablement la largeur
d'affichage de la colonne concerne.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

7/26

Mise en pratique Report

15 fvrier 2008

Par ces diffrentes manipulations nous avons gnrs ce rapport de conception papier.

Nous remarquons de suite que le rsultat n'est pas celui qui tait dsir.
Pour afficher des images, il faut appeler le menu contextuel de la colonne Images et slectionner le
gestionnaire de proprits pour changer le "Format de fichier" de la zone "Colonne" et mettre "Image

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

8/26

Mise en pratique Report

15 fvrier 2008

Le rsultat final

L'avantage de cette mthode est qu'il ne nous est pas obligatoire de disposer du modle logique de
donnes de la base de donnes qui servira de source d'information.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

9/26

Mise en pratique Report

15 fvrier 2008

Designer d'Oracle
L'AGL Oracle Designer permet galement de crer des rapports. Dans ce cas les rapports sont
spcifis partir des modules de traitement.
Pour pouvoir spcifier ainsi les rapports, il faut disposer du modle logique de donnes, puisque les
modules de traitement demandent une utilisation logique des tables.
Lors de la construction d'un rapport par Reports Builder, nous avons utilis la table du schma
DOCUMENTS du schma SUNIERG21. Puisque nous n'avons pas la source logique de cette table, il
nous est impossible dans un premier temps de construire un rapport par les modules de traitement de
Designer.
Pour contourner ce problme, nous utiliserons la copie du schma SUNIERG21 de l'instance
PROD10G comme source d'information pour le test de publication de la table DOCUMENTS.

Ingnierie Inverse
Pour obtenir la dfinition logique de la table DOCUMENTS du schma SUNIERG21 nous allons
utiliser le concept de l'ingnierie inverse.
Le cahier 13 du cours Designer du site lgl.isnetne.ch nous documente sur le concept de l'ingnierie
inverse et sa mise en pratique : http://lgl.isnetne.ch/designer6i/cahier13/pratique/reversedonnees.htm.

La cration du module pour Oracle Report.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

10/26

Mise en pratique Report

15 fvrier 2008

Les proprits importantes de l'usage de table.


le Display type du BLOB doit tre de type IMAGE.
les colonnes hauteur et largeur dfinissent vraiment la taille de l'image en output sur le
rapport.

La gnration du module

Voici le rsultat. Pour voir le rsultat cliquons sur "View with the Live Previewer"

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

11/26

Mise en pratique Report

15 fvrier 2008

Ce qui a pour effet de lancer Report Builder et d'afficher le rapport papier.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

12/26

Mise en pratique Report

15 fvrier 2008

Excution de rapports avec le runtime contenu dans la


version ODS10G
Oracle ODS10G, contient une version du service Oracle Report (runtime). Ce service peut tre utilis
pour les tests du dveloppeur, ainsi que pour les rapports du rfrentiel.

Le lancement du serveur

Pour vrifier que le Runtime fonctionne correctement nous entrons l'URL suivante :
http://pcname:8889/reports/rwservlet
Dans notre cas
http://ne-cpl-a45-lsa:8889/reports/rwservlet
ou encore
http://localhost:8889/reports/rwservlet

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

13/26

Mise en pratique Report

15 fvrier 2008

Les proprits de Start OC4J Instance


Nous remarquons que pour atteindre l'instance OC4J de notre poste de travail, il faut passer par le
port 8889 et non par le port 8888.
Pour connatre le port utilis, regardons les proprits de Start OC4J Instance. Voici la cible pointe :
C:\Oracle\ODS10g\j2ee\DevSuite\startinst.bat
Pour connatre les diffrentes proprits de configuration de linstance OC4J, il faut se rendre dans le
rpertoire suivant :
C:\Oracle\ODS10g\j2ee\DevSuite

Le contenu du fichier

default-web-site.xml

Ce fichier est stock cet emplacement


C:\Oracle\ODS10g\j2ee\DevSuite\config\default-web-site.xml
Voici son contenu :
<?xml version="1.0" standalone='yes'?>
<!DOCTYPE web-site PUBLIC "Oracle Application Server 10g XML Web-site"
"http://xmlns.oracle.com/ias/dtds/web-site.dtd">
<!-- change the host name below to your own host name. Localhost will -->
<!-- not work with clustering -->
<!-- also add cluster-island attribute as below
<web-site host="localhost" port="0" protocol="ajp13"
display-name="Default Oracle Application Server 10g Java WebSite"
cluster-island="1" >
-->
<web-site port="8889" protocol="http"
display-name="Oracle Developer Suite 10g instance of Oracle Containers
for J2EE Web Site">
<!-- Uncomment the following line when using clustering -->
<!-- <frontend host="your_host_name" port="80" /> -->
<!-- The default web-app for this site, bound to the root -->
<default-web-app application="default" name="defaultWebApp" root="/j2ee" />
<!-- Do not delete this line. -->
<web-app application="forms" name="formsweb" root="/forms" />
<!-- -->
<!-<web-app application="forms" name="formsweb" root="/forms" /> -->
<web-app application ="reports" name="web" root="/reports" />
<web-app application = "reports" name="demo" root="/repdemo" />
<!-- Access Log, where requests are logged to -->
<access-log path="../log/default-web-access.log" />
</web-site>

Deux lignes de ce fichier sont extrmement intressantes, dailleurs elles sont mises en exergue dans
le code ci-dessus.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

14/26

Mise en pratique Report

15 fvrier 2008

Excution d'un rapport par l'instance OC4J


Voici la forme gnrale dune requte de cration de rapport sous forme PDF ou HTML.
http://pcname:8888/reports/rwservlet?
REPORT=E:\Work\monrapport.rdf&
USERID=utilisateur/motdepasse@base&
DESTYPE=file&DESFORMAT=pdf&
DESNAME=E:\Work\monrapport.pdf&PARAMFORM=no
Attention dans notre cas, le port est le 8889.
Prcdemment avec Designer d'Oracle nous avons gnr un rapport et il a t stock dans le
rpertoire
C:\Temp\ReportsExercices
et il se nomme
AFFIMAGEG21.rdf

Le test rel de la requte


Voici la requte tester
http://ne-cpl-a45-lsa:8889/reports/rwservlet
REPORT=C:\Temp\ex1\AFFIMAGEG21.rdf&
USERID=sunierg21/sunierg21@prod10g&
DESTYPE=file&DESFORMAT=pdf&
DESNAME=C:\Temp\ex1\IMAGEG21.pdf&paramform=no
Il suffit de construire cette requte sur une ligne et de l'insrer dans la barre d'adresse d'un navigateur
Web.
http://ne-cpl-a45-lsa:8889/reports/rwservlet?
REPORT=C:\Temp\ex1\AFFIMAGEG21.rdf&USERID=sunierg21/sunierg21@prod
10g&DESTYPE=file&DESFORMAT=pdf&DESNAME=C:\Temp\ex1\IMAGEG21.pdf&pa
ramform=no

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

15/26

Mise en pratique Report

15 fvrier 2008

Le rsultat de la requte

L'tat du rpertoire suite

Ouvrons le fichier IMAGESG21.pdf


Nous remarquons qu'il est bien quivalent la sortie papier gnre par le Live Previewer utilisant
Report Builder.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

16/26

Mise en pratique Report

15 fvrier 2008

Excution d'un rapport par le Report Server


Nous pouvons galement gnrer un rapport depuis la source .rdf par un Report Server.
Dans notre cas nous avons install la Suite SOA 10.1.3.1.0 dans notre laboratoire sur une machine
ddie.

La configuration sur les postes clients


Il faut renseigner le fichier
C:\WINDOWS\system32\drivers\etc\hosts
avec la ligne
157.26.115.213 lgldev.

Les configurations sur OAS Report


Tnsnames.ora
Il faut diter le fichier C:\oracle\ora10102\NETWORK\ADMIN\tnsnames.ora et ajouter :
PROD10G =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)
(HOST = dboltp.ig.he-arc.ch)
(PORT = 1521)))
(CONNECT_DATA = SERVICE_NAME = es28.world)))
Ainsi OAS Report pourra atteindre la BD PROD10G sur laquelle les donnes afficher sous formes
de rapport sont stockes.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

17/26

Mise en pratique Report

15 fvrier 2008

Registry Editor
Il faut excuter la commande regedit et atteindre la variable NLS_LANG pour la modifier. Pour ce
faire il faut suivre le chemin suivant
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/NLS_LANG/KEY_FRHome1

Exemple d'excution de rapport avec rendu en HTML


Pour ce faire nous passons par un navigateur Web et entrons l'URL suivante :
http://lgldev:7777/repdemo/runrepIAS.html
Ce qui affiche cette page

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

18/26

Mise en pratique Report

15 fvrier 2008

Avant toute chose le fichier .rdf est mis dans un rpertoire sur le serveur OAS.
Dans notre cas il s'agit du rpertoire
D:\partage

Nous appelons la page suivante depuis notre poste de travail.


Nous remplissons la page comme suit :

et nous cliquons sur "Run Report"

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

19/26

Mise en pratique Report

15 fvrier 2008

Les images n'apparaissent pas, regardons le code source de la page HTML ainsi gnre.
<tr valign=top>
<td height=9></td>
<td width=65 rowspan=2><font face="Courier New"><tt>81</tt></font></td>
<td></td>
<td colspan=3 rowspan=9><img src=501098491.jpg ALT="" width=84 height=84 border=0></td>
<td colspan=4></td>
</tr>

Nous remarquons que les images sont insres par une balise <IMG SRC=xxx.jpg>.
Effectivement si les images sont recherches sur notre poste de travail, c'est peine perdue.

Nous appelons la page suivante depuis le serveur


C'est exactement la mme page que la prcdente

Voici le rsultat

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

20/26

Mise en pratique Report

15 fvrier 2008

Le rpertoire des images


Effectivement les images sont stockes en local sur le serveur OAS dans le rpertoire suivant :
C:\OraReports\reports\cache

Exemple d'excution de rapport crant un fichier PDF


Nous accdons la mme page que prcdemment depuis notre poste de travail.
Nous remplissons les champs comme suit :

La quittance

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

21/26

Mise en pratique Report

15 fvrier 2008

Effectivement le fichier PDF a t cr dans le mme rpertoire qu'o se trouvait la source .rdf
Le voici

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

22/26

Mise en pratique Report

15 fvrier 2008

Appel http sur le server Report


Selon le cahier 16, voici en dtail la requte d'appel d'un Report par CGI.
html
http://lgl-ias/dev60cgi/rwcgi60.exe
?server=Rep60_LGL-IAS
&report=rep_objets.rdf
&userid=menreport/menreport@prod6i
&destype=cache
&desformat=HTML

pdf
http://lgl-ias/dev60cgi/rwcgi60.exe
?server=Rep60_LGL-IAS
&report=rep_objets.rdf
&userid=menreport/menreport@prod6i
&destype=cache
&desformat=PDF

Le test effectu sur OC4J


http://ne-cpl-a45-lsa:8889/reports/rwservlet
?REPORT=C:\Temp\ex1\AFFIMAGEG21.rdf
&USERID=sunierg21/sunierg21@prod10g
&DESTYPE=file
&DESFORMAT=pdf
&DESNAME=C:\Temp\ex1\IMAGEG21.pdf
&paramform=no

Le test effectu sur un navigateur Web


URL DE TEST
http://lgldev.ig.he-arc.ch:7777/reports/rwservlet?
destype=file&desformat=PDF&server=rep_lgldev_frhome1&report=D:\partage\AFFIMAGEG21.
rdf&userid=sunierg21/sunierg21@prod10g
http://lgldev:7777/reports/rwservlet?
destype=file&desformat=PDF&server=rep_lgldev_frhome1&report=D:\partage\AFFIMAGEG21.
rdf&userid=sunierg21/sunierg21@prod10g

URL MISE EN FORME


avec le domaine "ig.he-arc.ch"
http://lgldev.ig.he-arc.ch:7777/reports/rwservlet
?destype=file
&desformat=PDF
&server=rep_lgldev_frhome1
&report=D:\partage\AFFIMAGEG21.rdf
&userid=sunierg21/sunierg21@prod10g

a ne fonctionne pas car le server install n'a pas de domaine

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

23/26

Mise en pratique Report

15 fvrier 2008

sans le domaine
http://lgldev:7777/reports/rwservlet
?destype=file
&desformat=PDF
&server=rep_lgldev_frhome1
&report=D:\partage\AFFIMAGEG21.rdf
&userid=sunierg21/sunierg21@prod10g

a fonctionne rsultat
DesType = file
Donc un fichier .pdf correspondant

Les tests avec un autre DesType


DesType : cache
http://lgldev:7777/reports/rwservlet?
destype=cache&desformat=PDF&server=rep_lgldev_frhome1&report=D:\partage\AFFIMAGEG21
.rdf&userid=sunierg21/sunierg21@prod10g

a fonctionne rsultat
Le fichier n'est pas cr sur un disque, par contre il peut tre enregistr par
l'utilisateur.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

24/26

Mise en pratique Report

15 fvrier 2008

Les paramtres de la requte http


Plusieurs paramtres facultatifs pour la requte http peuvent tre utiles. Les essayer et les expliquer.

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

25/26

Mise en pratique Report

15 fvrier 2008

Canevas
Nous avons effectu la cration d'un canevas de base avec insertion d'une image, de l'heure, ainsi
que d'autres informations.
Nous voulions trouver un moyen plus lgant de modifier la couleur de fond du rapport en jouant avec
les diffrentes proprits des objets des canevas.
Pour l'instant seul le corps du Canevas peut avoir une couleur de fonds. Par contre la marge est
toujours transparente.
Approfondir les paramtres de type CG$XX existant contenant des renseignements relatifs au modle
de traitement source de l'tat, voir la documentation existante.

ORDSYS.ORDIMAGE
Images stockes sur le serveur d'application
Pour une question de performances.

Intgration champs HTML

Scurit user / pwd

/var/www/apps/conversion/tmp/scratch_4/253940792.doc

26/26