Welcome Guest, Not a member yet? Register   Sign In
Recommendations for Reporting engines?
#1

[eluser]Myles Wakeham[/eluser]
Does anyone have any recommendations for any reporting engines that can be embedded within HTML/PHP to provide user generated reporting facilities against local SQL databases, that will fit within a CI solution?

We are considering integrating Crystal Reports into an application so that end users can create their own reports either via a web browser, or upload the report definitions to the local web server to be executed next to the database. Are there any open source solutions for this that people have used and like?

Myles
#2

[eluser]chandrajatnika[/eluser]
If you want to make a reporting on web, the best option is generate a pdf file, you can find a lot of supporting library that write on PHP. I think Crystal Reports is not a best option on the client side, what if their computer is not installed with Crystal Reports software?
#3

[eluser]Crafter[/eluser]
I've used flexireport now and then.
#4

[eluser]Myles Wakeham[/eluser]
[quote author="chandrajatnika" date="1221728175"]If you want to make a reporting on web, the best option is generate a pdf file, you can find a lot of supporting library that write on PHP. I think Crystal Reports is not a best option on the client side, what if their computer is not installed with Crystal Reports software?[/quote]

You are assuming that I and the client know exactly what data they want to see in a report upfront. That isn't the case in most business intelligence applications. They will happily pay for Crystal in order to have the power to develop their own reports ad hoc. But I don't want to have to license the engine for it on the web server to execute and deploy said reports.

The option I'm looking at is this:

http://jasperforge.org/plugins/project/p...oup_id=102

Myles
#5

[eluser]Myles Wakeham[/eluser]
[quote author="Crafter" date="1221736272"]I've used flexireport now and then.[/quote]

Thanks for the tip. Do you have a URL for this?

Myles
#6

[eluser]Michael Wales[/eluser]
I would just develop a view with xHTML/CSS and generate a PDF out of it. BambooInvoice does this with their invoices - excellent control of the report without having to learn a new templating language.
#7

[eluser]Myles Wakeham[/eluser]
[quote author="Michael Wales" date="1221759341"]I would just develop a view with xHTML/CSS and generate a PDF out of it. BambooInvoice does this with their invoices - excellent control of the report without having to learn a new templating language.[/quote]

Thanks but again it assumes I know what the client wants in a report beforehand. I need a true business intelligence system (more of an enterprise class type solution) here. I think JasperReports is the way to go...

Myles
#8

[eluser]Crafter[/eluser]
Myles

I'm not sure about the URL. The documentation and src has no URLS. If I recall correctly, I found it in phpclasses.org

Here is an extract of code to present a report of all bookings grouped and totaled by a booking agent

It's probably not the most efficient way, as it seems to run multiple queries for group and sublevels, but if you need an easy way to create a report.

Code:
$rep = new Flexireport_Report(true, 'GSA Sales Report', 'Booking By Agents');    //Set up Report

// Set up Staff Level
$SQL_select_agent = 'SELECT * FROM user';
$lev_agent = new Flexireport_Level('Agents', $SQL_select_agent, ' user_category = "gsa_agent" ', 'ORDER BY name', 30);
$lev_agent->addFieldForGroupingSublevels('id', true);

$fld_name = new Flexireport_Field('Agent Name', 'name');
$fld_name->formatUppercase();
$lev_agent->addField($fld_name);


//Add User Level to Report
$rep->addLevel($lev_agent);


// Select the bookings
$SQL_select_bookings = "
SELECT * FROM (
   SELECT ...
FROM ...
WHERE ...
)
AS qryNEWNAME ";
// echo $SQL_select_bookings;
$lev_booking = new Flexireport_Level('GSA Bookings', $SQL_select_bookings, ' ', 'ORDER BY booking_id', 0);

// Configure displayable fields
// $lev_team->addField(new Flexireport_Field('Team', 'agent_id'));
$lev_booking->addField(new Flexireport_Field('Booking Code', 'booking_code'));
$lev_booking->addField(new Flexireport_Field('Adults', 'adult_count'));
$lev_booking->addField(new Flexireport_Field('Children', 'child_count'));
$lev_booking->addField(new Flexireport_Field('Infants', 'infant_count'));
$lev_booking->addField(new Flexireport_Field('Status', 'booking_status'));
$lev_booking->addField(new Flexireport_Field('Agent', 'id'));
$lev_booking->addField(new Flexireport_Field('Surname', 'surname'));
$lev_booking->addField(new Flexireport_Field('Amount', 'transaction_amount'));

// Set up nesting
$lev_agent->addSublevel($lev_booking)

//Ready to display in the Presentation section

?>
<!--Presentation >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -->
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'
'http://www.w3.org/TR/html4/loose.dtd'>
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Report demo&lt;/title&gt;
&lt;link rel='stylesheet' type='text/css' href='libs/flexireport/flexireport.css' /&gt;
&lt;/head&gt;
&lt;body class='flexireport-body'&gt;
&lt;?php $rep->display(new Dbutility_Db(false,
      'localhost', 'dbuser', 'dbpasswd', 'database')); ?&gt;
&lt;/body&gt;
&lt;/html&gt;
#9

[eluser]tchule[/eluser]
Hello,

You can also have a look at BIRT :
http://www.eclipse.org/birt/phoenix/.
#10

[eluser]XeRGi0[/eluser]
Hi myles... You're right... JasperReports are the bests I've saw... But, i couldn't integrate it with PHP, 'cause jasper are designed to be use with Java.

I've tried, and tried... but nothing happens... It's too awful to code the "face" of a report. How about you?




Theme © iAndrew 2016 - Forum software by © MyBB