IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

[2.5.1] Data source XML dynamique (PHP + Birt)


Sujet :

BIRT

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [2.5.1] Data source XML dynamique (PHP + Birt)
    Configuration :
    Appache 2.2
    PHP 5.2
    JVM 1.6
    tomcat 5.5
    eclipse-reporting-galileo-SR1
    birt-runtime-2_5_1(viewer)
    php-java-bridge_5.5.3

    Bonjour à tous,

    J'ai commencé par créer un rapport avec le designer d'eclipse. Dans ce rapport, j'ai définit une data source s'appuyant sur un fichier xml et un xsd en dur. Cela fonctionne bien, et j'arrive à appeler ce rapport grace à l'url du viewer avec un code php du style :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $dest = "http://localhost:8080/birt-viewer/frameset?__report=/report/essai.rptdesign";
    header("Location: $dest" );
    ?>

    Maintenant, j'aimerai que l'url du fichier xml du data source soit variable.Pour cela, je me suis intéressé aux fonctions java (php-java-bridge) . J'ai essayé le code suivant pour appeler le même rapport sans m'occuper de la data source pour le moment :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
     
    define ("JAVA_HOSTS", "localhost:8080");
    define ("JAVA_SERVLET", "/JavaBridge/JavaBridge.phpjavabridge");
     
    require_once("java/Java.inc");
     
    session_start(); 
     
    $ctx = java_context()->getServletContext();
    $birtReportEngine =        java("org.eclipse.birt.php.birtengine.BirtEngine")->getBirtEngine($ctx);
    java_context()->onShutdown(java("org.eclipse.birt.php.birtengine.BirtEngine")->getShutdownHook());
     
    try{
     
    	$report = $birtReportEngine->openReportDesign("c:/essai.rptdesign");
    	$task = $birtReportEngine->createRunAndRenderTask($report);
     
    	$taskOptions = new java("org.eclipse.birt.report.engine.api.HTMLRenderOption");
    	$outputStream = new java("java.io.ByteArrayOutputStream");
    	$taskOptions->setOutputStream($outputStream);
    	$taskOptions->setOutputFormat("html");
     
    	$task->setRenderOption( $taskOptions );
    	$task->run();
    	$task->close();
     
    } catch (JavaException $e) {
    	echo $e; //"Error Calling BIRT";
     
    }
    echo $outputStream;
     
    ?>
    -> j'obtient le message d'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [[o:Exception]:"java.lang.Exception: Invoke failed: [[o:ReportEngine]]->openReportDesign((o:String)[o:String]). Cause: org.eclipse.birt.report.engine.api.EngineException: The design file file:/c:/dummy.rptdesign has error and can not be run.
    J'ai donc abandonné cette solution pour l'instant et je suis repartit sur l'appel d'une url http.
    Je voudrai donc savoir comment utiliser un paramètre(nom du fichier XML) passer dans l'url pour définir une source de donnée . Est ce que je peut coder cela grace au script BIRT, si oui, dans quel évènements et de quelle manière.

    D'avance, merci.

  2. #2
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Bonjour,


    Le problème vient du chemin d'accès à ton rapport. Je te suggère de mettre ton rapport dans l'arborescence de ton application birt-viewer et d'utiliser comme chemin la variable $ctx concaténée au nom de ton rptdesign.

    Je suis pratiquement sure que ça va marcher

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci d'avoir répondu rapidement. J'ai déja essayé de changer le nom du fichier et je me suis arrêter sur le 'c:/...' car il semble qu'il arrive à ouvrir le fichier avec un chemin en dur comme cela.

    Lorsqu'il ne trouve pas le fichier, il me met une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The design file d:/essai.rptdesign can not be found
    Lorsqu'il trouve, l'erreur est différente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The design file file:/c:/essai.rptdesign has error and can not be run

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    The design file d:/essai.rptdesign can not be found
    The design file file:/c:/essai.rptdesign has error and can not be run
    Cherchez l'erreur....

    Et sinon, ben il y a une erreur dans ton fichier, que veux-tu qu'on te dise de plus, c'est à toi de débugguer pour trouver où est l'erreur...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Pour info :

    Les urls sont données à titre d'exemple.

    Le rapport que j'essaye d'ouvrir via l'appel PHP(bridge-java) est le même que celui que j'ouvre via l'URL du viewer sur Tomcat. Aucune erreur n'est soulevé lors d'un appel http. Peut être qu'il y à un souci de version entre le bridge et BIRT 2.5.

    Je vais essayer de partir sur une servlet JAVA pour le moment.

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bon pour l'appel des fichiers, il faut de toute façon préciser le protocole soit : file, ftp, http, https, svn ou autre... Or c, d, ou autre fantaisie de nom de lecteur sont des protocoles inconnus au bataillon (normal).

    Je dirais que le soucis vient peut être des paramètres envoyés au rapport lors de la génération, non ?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Arff, non, malheureusement le rapport que je test ne prend aucun paramètres. C'est un simple essai qui affiche juste une sorte de Hello Word.

  8. #8
    Membre éprouvé
    Avatar de lazarel
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2007
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 893
    Points : 1 164
    Points
    1 164
    Par défaut
    Quand tu utilise le rapport test.rptdesign présent dans l'archive de base est-ce que cela marche au moins ?

Discussions similaires

  1. Source XML dynamique
    Par Sancho_54 dans le forum BIRT
    Réponses: 10
    Dernier message: 23/05/2013, 15h44
  2. [2.3] Data Source XML
    Par scariou29 dans le forum BIRT
    Réponses: 7
    Dernier message: 03/09/2008, 17h48
  3. Paramétres Data source dynamique
    Par T_Joe dans le forum BIRT
    Réponses: 9
    Dernier message: 30/05/2008, 18h17
  4. Réponses: 1
    Dernier message: 25/08/2007, 14h36
  5. [XSLT] Création de fichier XML dynamique avec PHP
    Par daninho dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 02/02/2006, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo