Visualisation d'un état utilisant un Page Server

Cet exemple montre comment utiliser la Viewer Tag Library pour afficher un état utilisant une source d'état générée par un Page Server.

Pour visualiser un état utilisant un Page Server
  1. Importez les classes et les bibliothèques appropriées.

    <%@ taglib uri="/crystal-tags-reportviewer.tld" prefix="crviewer" %>

    <%@ page import="com.crystaldecisions.sdk.exception.SDKException" %>

    <%@ page import="com.crystaldecisions.sdk.framework.ISessionMgr" %>

    <%@ page import="com.crystaldecisions.sdk.framework.IEnterpriseSession" %>

    <%@ page import="com.crystaldecisions.sdk.framework.CrystalEnterprise" %>

    <%@ page import="com.crystaldecisions.sdk.occa.managedreports.*" %>

    <%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObject" %>

    <%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObjects" %>

    <%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoStore" %>

    <%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2" %>



  2. Connectez-vous à Crystal Enterprise et obtenez un objet InfoStore.

    Dans ce cas, le compte administrateur par défaut est utilisé pour se connecter à une installation Crystal Enterprise fonctionnant sur le même ordinateur que le serveur d'application.

    <%

        IEnterpriseSession es = CrystalEnterprise.getSessionMgr().logon("administrator", "", "localhost", "secEnterprise");

        IInfoStore infoStore = (IInfoStore) es.getService("","InfoStore");



  3. Interrogez l'état que vous souhaitez visualiser.

        IInfoObjects infoObjects = infoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='World Sales Report'");

        IInfoObject report = (IInfoObject) infoObjects.get(0);



  4. Créez une source d'état Page Server pour l'état que vous avez récupéré.

        IReportSourceFactory2 reportFactory = (IReportSourceFactory2) es.getService ("", "PSReportFactory");

        Object reportSource = reportFactory.createReportSource(report, request.getLocale());



  5. Mettez l'objet ReportSource en mémoire cache dans une variable de session.

    Ceci permet au visualiseur de le récupérer.

        session.setAttribute("ReportSource", reportSource);

    %>



  6. Créez une balise viewer, en spécifiant le nom du visualiseur, le type de source d'état et la variable de la source d'état.

    Dans ce cas, la source d'état pageServer est utilisée et la variable de la source d'état se réfère à la variable de session dans laquelle vous avez stocké l'objet ReportSource.

    <html>

    <body>

    <crviewer:viewer viewerName="CrystalViewer" reportSourceType="pageServer" reportSourceVar="ReportSource" />

    </body>

    </html>



    Remarque :    Dans ce cas, vous n'avez pas besoin de balise report car la source d'état a déjà été mise en cache dans une variable de session et le visualiseur n'a pas besoin de la récupérer.


Business Objects
http://www.france.businessobjects.com/
Support technique
http://www.businessobjects.com/services/support/