Join Process

This example shows the usage of Join process

First Table
first_idname
1 John
2 Marry
3 Peter
4 Donald
Second Table
second_idincome
1 50,000
2 60,000
3 100,000
4 80,000

$join = new Join($first,$second,array("first_id"=>"second_id"));
first_idnamesecond_idincome
1 John 1 50,000
2 Marry 2 60,000
3 Peter 3 100,000
4 Donald 4 80,000

The example demonstrates usage of Join process. This Join process is used to join two source of data by matching id between them. The result is the combination of both.

<?php
require_once "MyReport.php";

$report = new MyReport;
$report->run()->render();
<?php
//Step 1: Load KoolReport
require_once "../../../../koolreport/autoload.php";

use \koolreport\processes\ColumnMeta;
use \koolreport\processes\Join;

//Step 2: Creating Report class
class MyReport extends \koolreport\KoolReport
{
    protected function settings()
    {
        return array(
            "dataSources"=>array(
                "first"=>array(
                    "class"=>'\koolreport\datasources\ArrayDataSource',
                    "dataFormat"=>"table",
                    "data"=>array(
                        array("first_id","name"),
                        array(1,"John"),
                        array(2,"Marry"),
                        array(3,"Peter"),
                        array(4,"Donald"),
                    )
                ),
                "second"=>array(
                    "class"=>'\koolreport\datasources\ArrayDataSource',
                    "dataFormat"=>"table",
                    "data"=>array(
                        array("second_id","income"),
                        array(1,50000),
                        array(2,60000),
                        array(3,100000),
                        array(4,80000),
                    )
                ),
            )
        );
    }
    protected function setup()
    {
        //Prepare data
        $first = $this->src("first");
        $second = $this->src("second");

        $first->pipe($this->dataStore("first"));
        $second->pipe($this->dataStore("second"));

        //Save orginal data
        $join = new Join($first,$second,array("first_id"=>"second_id"));
        
        $join->pipe($this->dataStore("result"));
    }
}
<?php
    use \koolreport\widgets\koolphp\Table;
    use \koolreport\widgets\google\LineChart;
?>
<div class="report-content">
    <div class="text-center">
        <h1>Join Process</h1>
        <p class="lead">This example shows the usage of Join process</p>
    </div>
    
    <div class="row">
        <div class="col-md-6">
            <h5 class="text-center">First Table</h5>
            <?php
            Table::create(array(
                "dataSource"=>$this->dataStore("first"),
                "cssClass"=>array(
                    "table"=>"table-bordered table-striped table-hover"
                )
            ));
            ?>        
        </div>
        <div class="col-md-6">
            <h5 class="text-center">Second Table</h5>
            <?php
            Table::create(array(
                "dataSource"=>$this->dataStore("second"),
                "cssClass"=>array(
                    "table"=>"table-bordered table-striped table-hover"
                )
            ));
            ?>        
        </div>
    </div>


<i class="fa fa-arrow-down" style="font-size:24px;"></i>
<pre style="font-weight:bold"><code>
$join = new Join($first,$second,array("first_id"=>"second_id"));
</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>

What People Are Saying

"KoolReport helps me very much in creating data report for my corporate! Keep up your good work!"
-- Alain Melsens

"The first use of your product. I was impressed by its easiness and powerfulness. This product is a great and amazing."
-- Dr. Lew Choy Onn

"Fantastic framework for reporting!"
-- Greg Schneider

Download KoolReport