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 :

Valeur du paramètre du report contient des accents


Sujet :

BIRT

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut Valeur du paramètre du report contient des accents
    bonjour,

    j'utilise PHP pour lancer mon report :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $param["societe_nom"] = $societe_enreg[0]['nom'];
    $param["logo"] = HTTP_IMG."logo/pave.jpg";
    new runReport("facture_complet_livraison_client.rptdesign", $param, "facture_complet_livraison_client");
    Code de runReport :

    Code : 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
     
    require_once("java/Java.inc");
     
    class runReport {
     
    	function runReport($report, $param, $output) {
     
    		header("Content-type: application/pdf;");
    		header("Content-Disposition: attachment; filename=".$output.".pdf");
     
    		$report_name = RP_REPORT . $report;
    		$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{
     
    			$connect = new Java("connectDb");
     
    			$report = $birtReportEngine->openReportDesign($report_name);
    			$task = $birtReportEngine->createRunAndRenderTask($report);
     
    			foreach ($param as $key => $value) {
    				$task->setParameterValue($key, new java("java.lang.String",$value));
    			}
     
    			$taskOptions = new java("org.eclipse.birt.report.engine.api.PDFRenderOption");
    			$outputStream = new java("java.io.ByteArrayOutputStream");
    			$taskOptions->setOutputStream($outputStream);
    			$taskOptions->setOutputFormat("pdf");
     
    			$task->setRenderOption( $taskOptions );
    			$task->getAppContext()->put("OdaJDBCDriverPassInConnection", $connect->getConnection(SERVEUR, BDD_PORT, BDD, LOGIN_DB, PWS_DB));
    			$task->run();
    			$task->close();
     
     
    		} catch (JavaException $e) {
     
    			echo $e; //"Error Calling BIRT";
    		}
     
    		echo java_values($outputStream->toByteArray());
     
    	}
    }
    ?>
    J'utilise ce paramètre societe_nom comme valeur d'expression d'un élément Text Dynamique dans l'en-tête du report. A l'exécution le report ne s'ouvre pas quand la valeur du paramètre societe_nom contient un accent. Alors comment faire pour afficher les accents ? merci beaucoup

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 56
    Points
    56
    Par défaut
    voici la solution pour ceux que cela interressent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach ($param as $key => $value) {
         $utf_8_value = mb_convert_encoding($value, "utf-8");
         $task->setParameterValue($key, new java("java.lang.String", $utf_8_value));
    }

Discussions similaires

  1. [AC-2000] Comment rechercher une valeur dans une table qui contient des paliers
    Par ClaudeLELOUP dans le forum Access
    Réponses: 16
    Dernier message: 13/07/2012, 16h43
  2. Réponses: 7
    Dernier message: 21/12/2007, 12h56
  3. Réponses: 3
    Dernier message: 14/10/2007, 20h45

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