Visualisation d'un rapport utilisant un serveur RAS géré

Cet exemple montre comment utiliser la Viewer Tag Library pour afficher un rapport utilisant une source de rapport provenant d'un Report Application Server géré.

Pour visualiser un rapport utilisant un serveur RAS géré
  1. Importez les classes et les bibliothèques appropriées.
  2. <%@ 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" %>

  3. Connectez-vous à Crystal Enterprise et obtenez un objet InfoStore.
  4. 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");

  5. Interrogez le rapport que vous souhaitez visualiser.
  6. IInfoObjects infoObjects = infoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='World Sales Report'");

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

  7. Créez une source de rapport RAS pour le rapport que vous avez récupéré.
  8.     IReportSourceFactory2 reportFactory = (IReportSourceFactory2) es.getService ("", "RASReportFactory");

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

  9. Mettez l'objet ReportSource en mémoire cache dans une variable de session.
  10. Ceci permet au visualiseur de le récupérer.

        session.setAttribute("ReportSource", reportSource);

    %>

  11. Créez une balise viewer, en spécifiant le nom du visualiseur, le type de source de rapport et la variable de la source de rapport.
  12. Dans ce cas, la source de rapport reportApplicationServer est utilisée et la variable de la source de rapport se réfère à la variable de session dans laquelle vous avez stocké l'objet ReportSource.

    <html>

    <body>

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

    </body>

    </html>

    Remarque :    Dans ce cas, vous n'avez pas besoin de balise report car la source de rapport 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/