Vous êtes sur la page 1sur 19

Livre Blanc

Version 1.0 - Mars 2006


Intgration d'outils de reporting
externes avec la platefore .!"#
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
$%MM&I'"
1 I!#'%()*#I%! "# %B+"*#I,$.......................................................................-
2 ./!/'&#I%! (" 0(, &V"* .!"#...............................................................1
2.1 Introduction.......................................................................................................................
2.2 !olutions existantes..........................................................................................................
2." #omparaison des diffrentes solutions..............................................................................
2. $rc%itecture d'I&ex' $()# et N*)(....................................................................................+
2.+ Emploi d'$()# et N*)( avec .NET.....................................................................................,
2., Emploi de -.L(/* avec .NET..........................................................................................11
- L"$ $%L)#I%!$ (" BI &V"* .!"#.............................................................1-
".1 Intgration de #r0stal 1eports avec .NET........................................................................1"
".2 Intgration de !2L !erver 1eporting !ervice et .NET......................................................1,
(age 2314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
1 I!#'%()*#I%! "# %B+"*#I,$
#ette tude recense les principales solutions permettant d'effectuer du reporting
externe sur la plateforme .NET.
L'tude se dcompose en deux parties :
la premi5re s'intresse 6 la gnration de documents (/* 7
la seconde s'articule autour de l'intgration dans .NET de solutions de
Business Intelligence 8BI9.
(our c%acune de ces deux pro&lmati:ues' les principales solutions du marc% sont
tudies et des exemples simples et concrets sont prsents.
Nous avons volontairement cart de notre tude les solutions de .icrosoft 8BI ;
1eporting !ervices9' :ui ne s'int5grent :u'avec des outils .icrosoft. A contrario' les
solutions prsentes ici sont des solutions tierces :ui permettent d'effectuer du
reporting dans des environnement %trog5nes.
(age "314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
2 ./!/'&#I%! (" 0(, &V"* .!"#
2.1 Introduction
Il existe diffrents outils' plus ou moins complexes' pour la gnration de documents
(/* 6 l<aide de .Net. #ette partie prsente les principales solutions et ta&lit un
comparatif sur :uel:ues crit5res simples.
#e document indi:ue galement comment emplo0er les diffrentes $(I disponi&les en
.Net et propose des illustrations concr5tes.
2.2 $olutions existantes
Il existe diffrentes &i&liot%5:ues permettant de gnrer des documents (/* avec
.Net. )n peut notamment remar:uer :
-.L(/* =>I! 2??+' %ttp:33@@@.xmlpdf.com3A
I&ex =>I! 2??+&' %ttp:33@@@.xmlpdf.com3A
$()# =#BI 2??+' %ttp:33@@@.c%ive.com3A
N*)( =(ET 2??+' %ttp:33sourceforge.net3proCects3nfopA
Les li&rairies -.L(/* et $()# ont t dveloppes en #D' alors :ue N*)( est crit en
ED. N*)( ncessite donc' en plus de >isual !tudio' l<installation de .icrosoft >isual ED
.NET >ersion 1.1 =.I# 2??+A.
#%acune de ces :uatre &i&liot%5:ues est disponi&le dans une assembly autonome :
xmlpdf.dll pour -.L(/*
I&ex.dll pour I&ex
#%ive.$poc.dll pour $()#
$pac%e*op.Net.dll pour N*)(
#%acun de ces :uatre outils permet de gnrer des fic%iers (/* en incluant des r5gles
de mise en forme pousses.
-.L(/* et $()# sont distri&us sous forme de fic%iers .!I directement installa&les'
:ui contiennent la &i&liot%5:ue rec%erc%e.
2.- *oparaison des diffrentes solutions
Le ta&leau comparatif suivant prsente les grandes diffrences entre ces :uatre
solutions :
(age 314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
2ML0(, I3ex &0%* !,%0
!implicit
(ossi&ilits
/ocumenF
Ftation
!>G
*ormats
d<images
gif' Cpeg' png' svg &mp' Cpeg' png' svg'
tiff
&mp' emf' gif' icon'
Cpeg' png' tiff' @mf
&mp' eps' gif' Cpeg'
png' svg' tiff
/LL xmlpdf.dll I&ex.dll #%ive.$poc.dll $pac%e*op.Net.dll
(1I-
HI4+3dveloppeur
8environ
,J?K3dveloppeur9
HI4+3dveloppeur
8environ
,J?K3dveloppeur9
LI443dveloppeur
8environ
11I+K3dveloppeur9
Gratuit
8openFsource' licence
$pac%e9
I&ex' $()# et N*)( proposent des solutions asseM complexes' emplo0ant -!LF*)'
-.L(/* s<appuie sur un voca&ulaire -.L simple' proc%e de BT.L. Les possi&ilits
offertes par I&ex' $()# et N*)( sont donc plus intressantes :ue celles' limites' de
-.L(/*' mais elles induisent une complexit &ien plus leve.
2.1 &rc4itecture d'I3ex5 &0%* et !,%0
2.4.1 Introduction
$()# et N*)( sont tous deux des ports du proCet *)( de la fondation $pac%e =$($
2??+A. *)( est une application Eava :ui utilise un o&Cet de mise en forme -!L 8un
document -!LF*)9 et la transforme en un document (/*. #e fic%ier -!LF*) doit au
prala&le Ntre produit par un processeur -!LT' 6 partir d<un fic%ier de donnes -.L et
d<une feuille de st0le -.L 8fic%ier -!L9.
2.4.2 Schma
(age +314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
2.4.3 Intrts de XSL-FO
Gnr par le processeur -!LT' -!LF*) permet au dveloppeur de clairement sparer
la mise en forme de ses documents du cOur de son application. $insi' un c%angement
dsir dans le formatage des fic%iers (/* gnrs par l<application pourra se faire en
modifiant simplement la feuille -!L. Les avantages sont donc multiples :
volutivit plus aise de l<application 7
rapidit de dveloppement et de modification 7
dissociation du cOur applicatif et des contraintes de prsentation.
#eci dit' l<emploi de -!LF*) demeure tr5s complexe' car il suppose la maPtrise de -!L
et une &onne connaissance du voca&ulaire de *). Le langage de &alisage emplo0 par
-.L(/*' par contre' est plus simple 6 manipuler' mais ncessite le recours 6 un
langage Q maison R propre 6 cette solution : cela signifie notamment :ue' si un Cour le
produit n<tait plus maintenu' l<ensem&le des fic%iers -.L3-!L serait 6 rcrire.
2.6 "ploi d'&0%* et !,%0 avec .!"#
Lors:ue la feuille -!LT de transformation du document -.L initial est crite' le
dveloppeur peut directement faire appel aux fonctionnalits des &i&liot%5:ues
#%ive.$poc.dll ou $pac%e*op.Net.dll pour gnrer le document (/* dsir.
2.5.1 Empoi de !"#I "#O$
ApocDriver driver = ApocDriver.Make();
driver.SetRenderer(RendererEngine.PDF);
try
{
driver.Render(
new StringReader(input.oString())!
new Fi"eStrea#(Server.MapPat$(%#yDocu#ent.pd&%)! Fi"eMode.'reate));
Re(pon(e.Redirect(Server.MapPat$(%#yDocu#ent.pd&%)! true);
)
catc$
{
Re(pon(e.*rite(%Error *it$ PDF Fi"e 'reation%);
)
2.5.2 Empoi de !"#I %FO#
pu+"ic void ran(&or#( (tring ,#"docFo! (tring (trFi"ena#e )
{
-- Run t$e &u"" F. doc t$roug$ t$e engine to create a pd&
Engine e = new Engine();
try
{
(+yte/0 (Pd& = e.Run(,#"docFo);
int (1 = (Pd&.2engt$;
(age ,314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
Re(pon(e.*rite((1.oString());
+yte/0 pd& = new +yte/(10;
&or(int i=3; i4(1; i55)
pd&/i0 = (+yte) (Pd&/i0;
--*rite output &i"e
Fi"eStrea# &( = new Fi"eStrea#(Server.MapPat$((trFi"ena#e)!
Fi"eMode.'reate);
6inary*riter (w = new 6inary*riter(&();
(w.*rite(pd&);
(w.'"o(e();
&(.'"o(e();
)
catc$(E,ception &e)
{
Re(pon(e.*rite(%Pro+"e# in ran(&or# &unction%);
)
)
ran(&or#(input.oString()! %#yDocu#ent.pd&%);
Re(pon(e.Redirect(Server.MapPat$(%#yDocu#ent.pd&%)! true);
2.5.3 "#I X&L en .%E'
$ l<aide de l<o&Cet -slTransform de l<$(I #D' le dveloppeur peut aisment manipuler
des fic%iers -.L. (ar exemple' un simple appel aux mt%odes 2oad() et
ran(&or#()permet d<o&tenir un document -!LF*) 6 partir du document -.L initial et
de la feuille -!L.
La mt%ode 7et8#"() peut galement Ntre utilise pour crer un document -.L 6 partir
d<un /ataset.
2.5.4 Schma XS(
Les sc%mas -.L 8fic%iers .-!/9 sont des documents -.L :ui permettent de dcrire le
t0pe et la signification des donnes continues dans un document -.L.
#<est pour:uoi' dans les exemples suivants' un sc%ma -.L a t crit' introduisant
ainsi la possi&ilit de validation -.L. #eci dit' ce sc%ma -.L n<est pas ncessaire 6
l<emploi de N*)( ou $()#.
2.5.5 E)empes
#ette partie donne deux exemples de l<emploi des $(I $()# et N*)(. Le second
exemple permet de gnrer un document sur deux pages' avec une image intgre 6
la deuxi5me page.
Les $(I sont gnralement livres avec des excuta&les S en ligne de commande ou
non S :ui permettent de gnrer le document -.L sans passer par l<$(I .Net. #ela peut
Ntre prati:ue pour' par exemple' vrifier la validit des documents -.L avant la p%ase
de dveloppement .Net.
(age I314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
a7 "xeple siple
Fichier XML
4doc9
4c$apter9
4tit"e9'$apter tit"e4-tit"e9
4paragrap$9Fir(t paragrap$4-paragrap$9
4paragrap$9Second paragrap$4-paragrap$9
4-c$apter9
4c$apter9
4tit"e9'$apter tit"e4-tit"e9
4paragrap$9:et anot$er paragrap$4-paragrap$9
4paragrap$9.ne #ore paragrap$4-paragrap$9
4-c$apter9
4-doc9
Fichier XSL
4;,#" ver(ion=%<.3% encoding=%ut&=>%;9
4,("?(ty"e($eet ,#"n(?,("=%$ttp?--www.w@.org-<AAA-8S2-ran(&or#%
,#"n(?&o=%$ttp?--www.w@.org-<AAA-8S2-For#at%9
4,("?te#p"ate #atc$=%c$apter%9
4&o?+"ock9
4,("?app"y=te#p"ate(-9
4-&o?+"ock9
4-,("?te#p"ate9
4,("?te#p"ate #atc$=%c$apter-tit"e%9
4&o?+"ock te,t=a"ign=%center% (pace=a&ter=%>pt%
(pace=+e&ore=%<Bpt% (pace=a&ter.precedence=%@%9
4,("?app"y=te#p"ate(-9
4-&o?+"ock9
4-,("?te#p"ate9
4,("?te#p"ate #atc$=%paragrap$%9
4&o?+"ock te,t=indent=%3pc% (pace=a&ter=%Cpt%
(pace=+e&ore.#ini#u#=%Bpt% (pace=+e&ore.opti#u#=%>pt%
(pace=+e&ore.#a,i#u#=%<3pt%9
4,("?app"y=te#p"ate(-9
4-&o?+"ock9
4-,("?te#p"ate9
4-,("?(ty"e($eet9
37 "xeple coplet
Fichier XML
4E,a#p"e9
4tit"e9itre ? Si#p"e E,a#p"e *it$ D di&&erent page(4-tit"e9
4aut$or9'"ever Age4-aut$or9
4(ection9
4$eader96eginning o& t$e Second Page4-$eader9
4tit"e9$e Fir(t Page contain an i#age4-tit"e9
4-(ection9
4-E,a#p"e9
(age J314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
Fichier XSL
4;,#" ver(ion=%<.3% encoding=%EF=>% ;9
4,("?(ty"e($eet ver(ion=%<.3%
,#"n(?,("=%$ttp?--www.w@.org-<AAA-8S2-ran(&or#%
,#"n(?&o=%$ttp?--www.w@.org-<AAA-8S2-For#at%9
4,("?output #et$od=%,#"% indent=%ye(% -9
4,("?te#p"ate #atc$=%-%9
4&o?root ,#"n(?&o=%$ttp?--www.w@.org-<AAA-8S2-For#at%9
4&o?"ayout=#a(ter=(et9
4F== 'over page ==9
4&o?(i#p"e=page=#a(ter #a(ter=na#e=%cover%
page=$eig$t=%DA.Cc#%
page=widt$=%D<c#%
#argin=top=%<c#%
#argin=+otto#=%Dc#%
#argin="e&t=%D.Gc#%
#argin=rig$t=%D.Gc#%9
4&o?region=+ody #argin=top=%Gc#% -9
4-&o?(i#p"e=page=#a(ter9
4F== Page #a(ter &or (ection( ==9
4&o?(i#p"e=page=#a(ter #a(ter=na#e=%(ection%
page=$eig$t=%DA.Cc#%
page=widt$=%D<c#%
#argin=top=%<c#%
#argin=+otto#=%Dc#%
#argin="e&t=%D.Gc#%
#argin=rig$t=%D.Gc#%9
4&o?region=+e&ore e,tent=%<c#%-9
4&o?region=a&ter e,tent=%<c#%-9
4&o?region=+ody #argin=top=%<c#%
#argin=+otto#=%<.<c#% -9
4-&o?(i#p"e=page=#a(ter9
4-&o?"ayout=#a(ter=(et9
4,("?app"y=te#p"ate(-9
4-&o?root9
4-,("?te#p"ate9
4,("?te#p"ate #atc$=%E,a#p"e%9
4&o?page=(eHuence #a(ter=re&erence=%cover%9
4&o?e,terna"=grap$ic (rc=%"ogo.gi&%-9
4&o?&"ow &"ow=na#e=%,("=region=+ody%9
4&o?e,terna"=grap$ic (rc=%"ogo.gi&%-9
4&o?+"ock te,t=a"ign=%rig$t%
&ont=(i1e=%DIpt%9
4,("?va"ue=o& (e"ect=%tit"e%-9
4-&o?+"ock9
4&o?+"ock te,t=a"ign=%rig$t%
&ont=(i1e=%<Ipt%
(pace=a&ter=%<c#%9
4,("?va"ue=o& (e"ect=%aut$or%-9
4-&o?+"ock9
4-&o?&"ow9
4-&o?page=(eHuence9
(age 4314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
4,("?app"y=te#p"ate(-9
4-,("?te#p"ate9
4,("?te#p"ate #atc$=%(ection%9
4&o?page=(eHuence #a(ter=re&erence=%(ection%
initia"=page=nu#+er=%D%9
4&o?(tatic=content &"ow=na#e=%,("=region=+e&ore%9
4&o?+"ock &ont=(i1e=%<3pt% te,t=a"ign=%center%9
4,("?va"ue=o& (e"ect=%$eader%-9
4&o?"eader "eader=pattern=%ru"e%
ru"e=t$ickne((=%3.Gpt%
"eader="engt$=%<33J%
co"or=%+"ack%-9
4-&o?+"ock9
4-&o?(tatic=content9
4&o?(tatic=content &"ow=na#e=%,("=region=a&ter%9
4&o?+"ock &ont=(i1e=%<3pt% te,t=a"ign=%rig$t%9
Page 4&o?page=nu#+er -9
4-&o?+"ock9
4-&o?(tatic=content9
4&o?&"ow &"ow=na#e=%,("=region=+ody%9
4&o?+"ock te,t=a"ign=%"e&t%
&ont=(i1e=%<>pt%
(pace=a&ter=%<c#%9
4,("?va"ue=o& (e"ect=%tit"e%-9
4-&o?+"ock9
4&o?+"ock9
$e i#age (
4&o?e,terna"=grap$ic widt$=%<33pt% $eig$t=%C3pt% (rc=%"ogo.gi&% -9
)
4-&o?+"ock9
4-&o?&"ow9
4-&o?page=(eHuence9
4-,("?te#p"ate9
4-,("?(ty"e($eet9
Fichier XSD
4;,#" ver(ion=%<.3% encoding=%ut&=>%;9
4,(d?(c$e#a ,#"n(?,(d=%$ttp?--www.w@.org-D333-<3-8M2Sc$e#a%9
4,(d?e"e#ent na#e=%tit"e% type=%,(d?(tring%9
4,(d?e"e#ent na#e=%aut$or% type=%,(d?(tring%-9
4,(d?e"e#ent na#e=%$eaderK type=%,(d?(tring%-9
4-,(d?(c$e#a9
(age 1?314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
Rsultat : Fichier PDF
2.6 "ploi de 2ML0(, avec .!"#
2.*.1 Empoi de !"#I X&L#(F
L<emploi de l<$(I -.L(/* est extrNmement simple. La s:uence suivante gn5re un
fic%ier m0/ocument.pdf 6 partir du document -.L m0!ample.xml :
PDFDocu#ent doc = new PDFDocu#ent();
doc.generate(%#ySa#p"e.,#"%! %#yDocu#ent.pd&%);
(age 11314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
2.*.2 "xeple simpe
L<exemple suivant' asseM simple' permet de gnrer un fic%ier (/* contenant une
mNme image affic%e en diffrentes tailles.
Fichier XML
4;,#" ver(ion=%<.3% encoding=%ut&=>% ;9
4docu#ent9
4i#age(94i#age &i"e=na#e=L+ird.MpgL i#age=na#e=L+irdL-94-i#age(9
4+"ock9$e i#age at it( natura" (i1e.4-+"ock9
4($ow=i#age i#age=na#e=L+irdL-9
4+"ock9$e i#age (ca"ed to <33 , <33.4-+"ock9
4($ow=i#age i#age=na#e=L+irdL (ca"e=widt$=L<33L (ca"e=$eig$t=L<33L-9
4+"ock9$e i#age auto#atica""y (ca"ed to &it in a ta+"e ce"".4-+"ock9
4ta+"e widt$(=L@@J!@@J!NL +order=widt$=a""=L<L9
4row9
4ce""-9
4ce""94($ow=i#age i#age=na#e=L+irdL-94-ce""9
4ce""-9
4-row9
4-ta+"e9
4-docu#ent9
Rsultat : Fichier PDF
(age 12314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
- L"$ $%L)#I%!$ (" BI &V"* .!"#
/eux solutions sont proposes dans cette tude :
#r0stal 1eports de BT!INE!! )BEE#T!
1eporting !ervices de .I#1)!)*T
-.1 Intgration de *r8stal 'eports avec .!"#
3.1.1 Introduction
1ac%et en 2??+ par Business )&Cects' #r0stal 1eports =BT! 2??+A est une solution de
reporting avance' :ui permet de raliser des rapports et des grap%es complexes 6
partir de diverses sources de donnes :
Bases de donnes
/ocuments -.L
*ormulaires
Etc.
#e document prsente les principales fonctionnalits de #r0stal 1eports et dtaille
l<intgration de #r0stal 1eports 6 .Net :
Intgration 6 l<I/E de dveloppement >isual !tudio .Net
Gnration de rapports avec .Net
#f. %ttp:33@@@.&usinesso&Cects.com3products3reporting3cr0stalreports3
3.1.2 #rsentation de *r8stal +eports
a7 0rsentation gnrale de Business %39ects
#r0stal 1eports fait partie de la suite
Business )&Cects' :ui rpond aux &esoins
de pilotage de la performance' de
reporting' d'interrogation et d'anal0se' et
d'intgration de donnes. #r0stal 1eports
permet notamment de gnrer des
rapports aux formats )ffice 8Uord'
Excel9' (/* ou encore dans le format
#r0stal 1eports. #es rapports peuvent
intgrer des ta&les de donnes' des
grap%es' des statisti:ues croises' etc. Le
processus de reporting couvert par
#r0stal 1eports concerne l'acc5s aux
donnes' leur structuration' leur mise en
forme et leur diffusion. La solution #r0stal 1eports se positionne sur l<ensem&le des
(age 1"314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
&esoins lis au reporting.
37 Intgration : Visual $tudio .!"#
Il peut Ntre intressant de proposer des rapports en ligne' permettant par exemple aux
utilisateurs d'explorer un diagramme et de filtrer les informations :u'il contient en
fonction de leurs &esoins.
L<ensem&le des informations gres dans un document #r0stal 1eports s<appelle un
tat 7 un diagramme d0nami:ue est donc' en fait' un tat #r0stal 1eports :ui interagit
avec d<autres contrVles de l'application. L<utilisateur dispose alors de fonctionnalits
tr5s interactives' comme par exemple l'exploration de diagrammes' la navigation dans
des tats et la rec%erc%e de texte.
#r0stal 1eports propose donc une intgration 6 .Net' et est d<ailleurs prsent sur le
site .!/N =.I# 2??+&A comme l<outil standard de reporting pour >isual !tudio .Net.
Intgre 6 >isual !tudio depuis 144"' #r0stal 1eports propose un niveau lev de
possi&ilits en terme de gnration d0nami:ue de grap%es et de rapports.
Il est par exemple possi&le' dans >isual !tudio .Net' d<aCouter et de paramtrer
grap%i:uement des o&Cets #r0stal 1eports aux Uin*orms 8applications9 comme aux
Ue&*orms 8applications Ue&9. L<intgration de #r0stal 1eports dans >isual !tudio .Net
est vaste' et ne se limite pas :u<au positionnement d<o&Cets de reporting dans les
formulaires. Elle intervient galement au niveau de la liaison des donnes aux o&Cets
#r0stal 1eport' et 6 la dfinition des proprits de ces o&Cets.
(age 1314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
3.1.3 ,nration de rapports a-ec $r.sta +eports et .%E'
a7 0rincipe de la gnration d8nai;ue d'un rapport
La cration de rapports ou de grap%es avec #r0stal 1eports et .Net ncessite
simplement de faire appel 6 l<$(I du produit pour insrer dans le rapport des donnes
issues de fic%iers -.L' &ases de donnes ou autres sources de donnes :
#r0stal 1eports propose une $(I asseM volue' permettant d<accder aux principales
fonctionnalits de #r0stal 1eports depuis .Net' notamment au travers d<o&Cets de la
classe #r0stal/ecisions.Uindo@s.*orms.#r0stal1eport>ie@er.
37 "xeple siple
L<exemple suivant montre simplement comment crer et affic%er un rapport simple'
prsentant des donnes issues d<une &ase !2L :
-- 'onne,ion O un (erveur SP2
(tring connectionString = %Provider=SP2.2ED6;%;
connectionString 5= %Server=NNNNNNNN;Data+a(e=NNNNNNNNN;%;
connectionString 5= %E(er QD=NNNNNNNNN;Pa((word=NNNNNNNN%;
-- .uverture dRune conne,ion
ado."eD+'onnection = new ."eD+'onnection(connectionString);
-- 'on(truction de "a reHuite SP2
(tring (H"String = %Se"ect N Fro# aut$or(%;
-- SS"ection de( donnSe(
ado."eD+DataAdapter = new ."eD+DataAdapter((H"String! ado."eD+'onnection);
-- 'rSation dRun Data(et! re#p"i avec "e( donnSe( i((ue( de "a +a(e
-- de "a ta+"e dan( "e Data(et doit Ttre "e #T#e Hue ce"ui de "a ta+"e
-- dan( "e rapport 'ry(ta" Report(
dataSet = new DataSet();
ado."eD+DataAdapter.Fi""(dataSet! %aut$or(%);
// Cration dun Objet Report, et remplissage de celui-ci avec les
// donnes du Dataset
crReportDocument = ne Cr!stalReport"#$%
crReportDocument&'etData'ource#data'et$%
// (nsertion du rapport dans la))ic*eur de rapports&
Cr!stalReport+ieer"&Report'ource = crReportDocument%
(age 1+314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
3.1.4 (ocumentation/ support et ressources
!i Business )&Cects propose un site de support' l<acc5s 6 la plupart des ressources
disponi&les se fait sur a&onnement 8pa0ant9 : %ttp:33support.&usinesso&Cects.com3.
-.2 Intgration de $<L $erver 'eporting $ervice et .!"#
3.2.1 Introduction
1eporting !ervice est un composant intgr 6 !2L !erver 8depuis la version 2???9 et il
propose :
moteur de haute performance pour traiter et mettre en forme les rapports
ensemble complet d'outils de cration, de gestion et d'affichage des rapports
architecture extensible et interfaces ouvertes pour incorporer les rapports ou
intgrer les solutions de cration de rapports dans divers environnements
informatiques.
$vec !2L !erver 1eporting !ervices' les dveloppeurs informati:ues peuvent intgrer
de mani5re transparente les services de rapports 6 une arc%itecture existante :ui
inclut diverses sources de donnes' telles :ue !2L !erver' )LE /B' )/B# 8)pen
/ata&ase #onnectivit09' )racle ou d'autres fournisseurs de donnes.
3.2.2 #rsentation de &icroso0t +eportin1 Ser-ices
a7 0rsentation gnrale
#e composant a t aCout afin de rgler les pro&l5mes suivants :
Nombre de rapports
Nombre de sources
Besoins utilisateurs distincts
DSI touours sollicites
(age 1,314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
Les caractristi:ues cls de cette solution sont :
!apports traditionnels ou interactifs, bass sur le "eb
#orte intgration avec les applications $icrosoft %ffice
&rend en charge la diffusion 'pull' ou 'push' de rapports
(rchitecture de services "eb extensible, pouvant faire face ) une monte en
puissance
&rise en charge d'%*(&, de S+BD, d'applications mtiers et de nombreuses sources
de donnes
#acilement grable via les (&I des services "eb et des outils graphiques
#ormat de dfinition de rapport en ,$* et document
*es vendeurs de solutions peuvent facilement intgrer des fonctions de rapports
dans des outils ou des applications
Dveloppement graphique de rapports intgr dans -isual Studio .N./
*es formats de rapports incluent 0
les formats "eb 12/$*3 4
les formats d'impression 1&D#,/I##3 4
les formats de donnes 1.xcel,,$*,5S-3 4
d'autres formats sont envisageables via l'(&I.
37 Intgration : Visual $tudio .!"#
Le principal man:ue de la solution est l'a&sence d'un outil de cration de rapports
intgr... Tne interface vers !2L !erver 1eporting !ervices a t aCoute 6 notre
environnement de dveloppement 8>isual !tudio9 pour prendre en c%arge cet lment.
.icrosoft 1eporting !ervices est donc totalement intgrer 6 >isual !tudio. >isual !tudio
poss5de dlors un t0pe de proCet BI permettant la cration compl5te.
>ous pouveM inclure des rapports directement au sein de Uin*orms 8applications9 et de
Ue&*orms 8applications Ue&9. Non seulement vous pouveM utiliser les &ases de
donnes traditionnelles comme source de donnes mais vous pouveM aussi utiliser des
collections d'o&Cets.
(age 1I314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
3.2.3 ,nration de rapports a-ec S2L +eportin1 Ser-ices et .%E'
a7 "xtension de 'eporting $ervices : l'aide de code personnalis
L'une des caractristi:ues essentielle de 1eporting !ervice rside dans son
extensi&ilit. Il est possi&le d'tendre ou de remplacer prati:uement tous les aspects
de 1eporting !ervices' :u'il s'agisse de donnes' de diffusion' de scurit ou des
fonctions de gnration de rapports.
37 "criture de code intgr
#omme son nom l'indi:ue' le code intgr est enregistr dans le fic%ier de dfinition
des rapports 81/L9' et il s'tend au niveau rapport. #e code ne peut Ntre crit :u'en
.icrosoft >isual Basic .NET. Tne fois :ue le code est prNt' vous pouveM l'appeler dans
les expressions de rapport en utilisant le mem&re *ode dfini glo&alement. (ar
exemple' si vous aveM cr une fonction de code intgr appele .etValue' vous
pouveM l'appeler dans les expressions avec la s0ntaxe suivante :
='ode.7etUa"ue()
(age 1J314
Livre Blanc : Intgration d'outils de reporting externes avec la plateforme .NET
3.2.4 3tiisation d!assem4ies e)ternes
La seconde faWon d'tendre des rapports par programmation consiste 6 utiliser la
logi:ue prdfinie dans des assem&lies .NET externes :ui peuvent Ntre crites dans
n'importe :uel langage pris en c%arge par .NET. La possi&ilit d'intgrer des rapports
avec du code personnalis dans des assem&lies externes augmente considra&lement
les possi&ilits de programmation. (ar exemple' en utilisant du code personnalis' vous
pouveM :
/irer profit du eu complet de fonctions de .N./ #rame6or7. Imaginons que vous
a8e9 besoin d'une collection pour stoc7er des donnes d'anal8se croise d'une
rgion matricielle pour effectuer des calculs. -ous pouve9 : emprunter ; l'une des
classes de collection qui accompagnent .N./, par exemple Array, ArrayList,
Hashtable, etc.
Intgrer vos rapports avec des assemblies .N./ personnalises, crites par vous ou
par des fournisseurs tiers.
<crire du code plus facilement en exploitant la puissance de l'environnement de
dveloppement -isual Studio .N./ plut=t que l'diteur de code rudimentaire.
(age 14314