Sometime you need to change the name of columns for easier access. For example, data loaded from CSV which does not have header will result in column name like "column0", "column1" .. Those name are very hard to remember and access. So we may want to change the "column0" to "id" and "column1" to "name".
Sample code
->pipe(new ColumnRename(array(
"name" => "Developer Name",
"income" => "Developer Income"
)))
<?php
require_once "MyReport.php";
$report = new MyReport;
$report->run()->render();
<?php
//Step 1: Load KoolReport
require_once "../../../load.koolreport.php";
use \koolreport\processes\ColumnRename;
//Step 2: Creating Report class
class MyReport extends \koolreport\KoolReport
{
protected function settings()
{
return array(
"dataSources"=>array(
"data"=>array(
"class"=>'\koolreport\datasources\ArrayDataSource',
"dataFormat"=>"table",
"data"=>array(
array("name","income"),
array("John",50000),
array("Marry",60000),
array("Peter",100000),
array("Donald",80000),
)
)
)
);
}
protected function setup()
{
//Prepare data
$this->src("data")
->pipe($this->dataStore("origin"));
//Pipe through process to get result
$this->src("data")
->pipe(new ColumnRename(array(
"name" => "Developer Name",
"income" => "Developer Income"
)))
->pipe($this->dataStore("result"));
}
}
<?php
use \koolreport\widgets\koolphp\Table;
use \koolreport\widgets\google\LineChart;
?>
<div class="report-content">
<div class="text-center">
<h1>ColumnRename Process</h1>
<p class="lead">Rename multiple columns</p>
</div>
<?php
Table::create(array(
"dataSource"=>$this->dataStore("origin"),
"cssClass"=>array(
"table"=>"table-bordered table-striped table-hover"
)
));
?>
<i class="fa fa-arrow-down" style="font-size:24px;"></i>
<pre style="font-weight:bold"><code>
->pipe(new ColumnRename(array(
"name" => "Developer Name",
"income" => "Developer Income"
)))
</code></pre>
<i class="fa fa-arrow-down" style="font-size:24px;"></i>
<div style="margin-top:20px;">
<?php
Table::create(array(
"dataSource"=>$this->dataStore("result"),
"cssClass"=>array(
"table"=>"table-bordered table-striped table-hover"
)
));
?>
</div>
</div>