PDA

View Full Version : Embedding a Pentaho report inside a panel inside another web page?



davout
10-13-2011, 04:30 AM
A newbie question...

I have a custom web application that I'm currently designing that will have a portlet style main page display of multiple display panels. What I'd to have is the ability to embed a Pentaho report in one of these panels. Is this possible?

At the moment I'm considering using Sencha Ext-JS4 so the app is really a Javascript app with JS panels.

Three questions....

Can I embed a Pentaho report inside a panel/iframe inside another web page?
Can I pass parameters to the Pentaho report so that the data focus of the report changes as the the data focus of my app changes. For example: assume that my app is showing multiple panels of data for 'Germany', including an embedded Pentaho report for 'Germany'. Now in my app I change the data focus from 'Germany' to 'France', can I push this change in data filter to the Pentaho report aso that it freshes to show data fro 'France'?
Is there a Pentaho (web) service for retrieving the list of available reports?

TIA

Taqua
10-13-2011, 05:04 AM
(1) Yes, this is how dashboards render reports and even the standard UI of the BI-Server uses IFrames for its rendering.

(2) Yes, standard URL parametrization for a HTTP-GET or POST request is all we expect. Read: http://wiki.pentaho.com/display/Reporting/BI-Server+Reporting+Plugin+Documentation.

The second requirement you describe here is what we call a dashboard. You should be easily able to integrate your own code with the CDA framework to build the functionality you describe. After all, this is a fairly standard dashboard requirement.

(3) There is the repository-xml document that contains a list of all artefacts known to the platform. Filter it for *.prpt files and you have the reports, including the service URL that you would need to call to get the report.

http://wiki.pentaho.com/display/ServerDoc2x/Solution+Repository+Webservices
Use the "getSolutionRepositoryDoc" component to get that long list.