2010-11-29 3 views
5

Ich möchte Java-Berichte 'Bericht-Engine' verwenden, um Berichte (HTML/PDF usw.) zu generieren und sie auf meiner Website anzuzeigen.mit Jasper-Berichten in einer PHP-Website

Allerdings verwendet meine Website ein PHP-Web-Framework. Kann mir jemand vorschlagen, wie ich Jasper Reports in einem PHP-Web-Framework verwenden kann?

Antwort

0

Sie müssen entweder einen Java-Interpreter in PHP erstellen/finden. Oder realistischer, fragen Sie Java von PHP exec()

EDIT

oder eine Datenbankverbindung teilen und eine Tabelle für die Interkommunikation erstellen. Was hat einige schöne Skalierbarkeitspunkte zu seinen Gunsten.

3
  1. mit PHP/Java Bridge (http://php-java-bridge.sourceforge.net/).
  2. implementieren Sie die Java-Bridge auf Tomcat Server.
  3. kopieren Sie die jar Jaspis lib und mysql-Anschluss j lib in tomcat lib
  4. Neustart Tomcatbediener
  5. bearbeiten php.ini (allow_url_include = On)
  6. Pfad der Bibliothek in PHP-Datei enthalten. versuchen diesen Code verweisen für weitere Informationen .. http://github.com/tsuyu/jasper-report-php-integration
+0

Ich bevorzuge diesen Ansatz selbst und habe ihn erfolgreich in einem Projekt verwendet. Wenn man bedenkt, dass es sich um eine kleine VM mit 256 MB RAM handelte (die meisten davon wurden von einer Datenbank verwendet), wollte ich weder Tomcat noch einen ausgewachsenen Webcontainer verwenden. Daher verwendete ich den "kleinen" Server, der in PHP enthalten ist. Java Bridge: 'java -Djava.ext.dirs =. -jar JavaBridge.jar SERVLET_LOCAL: 8081 3 JavaBridge.log' Die Verwendung von _java.ext.dirs_ ist die einzige Möglichkeit, externe JARs zu verwenden (in diesem Fall im lokalen Verzeichnis "." von _JavaBridge.jar_). Bevor ich ** java_require ** verwendet habe, wird es jetzt von den neuesten PJB-Versionen nicht unterstützt. – Kamal

6

Wenn Sie checkout the PHP REST Client on Github, oder fügen Sie es über Composer Ihre PHP-Projekt können Sie einen Bericht über Web-Dienste auszuführen.

Der Code sollte ungefähr so ​​aussehen:

<?php 
    $c = new \Jaspersoft\Client\Client(
    "http://localhost:8080/jasperserver-pro", 
    "jasperadmin", 
    "jasperadmin", 
    "organization_1" 
); 

    $report = $c->reportService()->runReport('/reports/samples/AllAccounts', 'html'); 
    echo $report;  
?> 

, das einen Bericht im HTML-Format abgerufen werden würde und speichern sie in $report. Natürlich können Sie HTML in PDF oder XLS oder in welches Format auch immer Sie exportieren möchten.

Wenn Sie PDFs anzeigen oder zum Download anbieten möchten, müssen Sie die Binärdaten einem Paket zur Verfügung stellen, das damit umgehen kann, oder entsprechende Header bereitstellen, damit sie von einem Webbrowser heruntergeladen werden können.

Ich bin zufällig derjenige, der dieses Paket entwickelt, also zögern Sie nicht, mir eine Zeile mit Fragen zu schießen.

+0

Ich habe versucht, die gleichen Schritte, aber Fehler wie Jaspersoft \ Exception \ RESTRequestException: Ein unerwarteter HTTP-Statuscode wurde vom Server in zurückgegeben –