We would like to introduce Sparklines
package in this example. This package contains tiny charts which you can use in your report to show trend to get the feel or overview of data
<?php
require_once "MyReport.php";
$report = new MyReport;
$report->run()->render();
<?php
//Step 1: Load KoolReport
require_once "../../../load.koolreport.php";
//Step 2: Creating Report class
class MyReport extends \koolreport\KoolReport
{
protected function settings()
{
return array(
"dataSources"=>array(
"stock"=>array(
"class"=>'\koolreport\datasources\CSVDataSource',
'filePath'=>dirname(__FILE__)."/stock.csv",
)
)
);
}
protected function setup()
{
$this->src("stock")
->pipe($this->dataStore("stock"));
}
}
<?php
use \koolreport\sparklines\Bar;
use \koolreport\sparklines\Box;
use \koolreport\sparklines\Bullet;
use \koolreport\sparklines\Line;
use \koolreport\sparklines\Pie;
use \koolreport\sparklines\Tristate;
// $data = array_slice($this->dataStore("stock")->data(), 0, 10);
// echo "<pre>" . var_export($data) . "</pre>";
// $data = array(
// array('date' => '2018-07-01', 'price' => '20', 'volume' => '54'),
// array('date' => '2018-07-02', 'price' => '22', 'volume' => '60'),
// array('date' => '2018-07-03', 'price' => '23', 'volume' => '67'),
// array('date' => '2018-07-04', 'price' => '24', 'volume' => '53'),
// array('date' => '2018-07-05', 'price' => '23', 'volume' => '55'),
// array('date' => '2018-07-06', 'price' => '25', 'volume' => '22'),
// array('date' => '2018-07-07', 'price' => '26', 'volume' => '44'),
// array('date' => '2018-07-08', 'price' => '24', 'volume' => '33'),
// array('date' => '2018-07-09', 'price' => '21', 'volume' => '42'),
// array('date' => '2018-07-10', 'price' => '25', 'volume' => '66')
// );
?>
<div class="report-content">
<div class="text-center">
<h1>Sparkines</h1>
<p class="lead">
This example shows how to use Sparklines charts in your report.
</p>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 offset-md-2">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Chart Type</th>
<th style="text-align:center">Demo</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bar</td>
<td style="text-align:center">
<?php
Bar::create(array(
"dataSource" => $this->dataStore("stock"),
"column" => "volume",
));
?>
</td>
</tr>
<tr>
<td>Line</td>
<td style="text-align:center">
<?php
Line::create(array(
"dataSource" => $this->dataStore("stock"),
"column" => "price",
));
?>
</td>
</tr>
<tr>
<td>Box Plot</td>
<td style="text-align:center">
<?php
Box::create(array(
"dataSource" => $this->dataStore("stock"),
"column" => "price",
));
?>
</td>
</tr>
<tr>
<td>Pie</td>
<td style="text-align:center">
<?php
Pie::create(array(
"dataSource" => $this->dataStore("stock")->take(5),
"column" => "volume",
));
?>
</td>
</tr>
<tr>
<td>Tristate</td>
<td style="text-align:center">
<?php
Tristate::create(array(
"data" => array(1, 1, 0, 1, -1, -1, 1, -1, 0, 0, 1, 1),
));
?>
</td>
</tr>
<tr>
<td>Bullet</td>
<td style="text-align:center">
<?php
Bullet::create(array(
"dataSource" => $this->dataStore("stock")->take(10),
"column" => "volume",
));
?>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
date | price | volume |
2018-07-01 |
20 |
54 |
2018-07-02 |
22 |
60 |
2018-07-03 |
23 |
67 |
2018-07-04 |
24 |
53 |
2018-07-05 |
23 |
55 |
2018-07-06 |
25 |
22 |
2018-07-07 |
26 |
44 |
2018-07-08 |
24 |
33 |
2018-07-09 |
21 |
42 |
2018-07-10 |
25 |
66 |