phpLens
 home  products examples manual  faq support forum  contact news  login store

More Examples:   Run: Reporting Demo with Export to Excel

Free Download

<?php
ob_start
();
include_once(
'../admin.php');
include_once(
PHPLENS_DIR.'/phplens.inc.php');
session_start();
    
    
//----------------------------------------
    // The following lines are for formatting 
    // the page and not needed by phplens
    
$gTitle "Reporting Demo with Export to Excel";
    include_once(
'./header.php');
    
?>
Click on the Excel icon on the top right of the report to export in CSV format.<p>
This demo also shows multi-level titles, grouping by Supplier, and unit averages.<p>
<?php
    
    $lens 
PHPLensConnect('ex970',
        
"select SupplierID,ProductName,UnitPrice,QuantityPerUnit,UnitsInStock,UnitsOnOrder,ReorderLevel from products",
        
'mysql',$gEX_server,$gEX_userid,$gEX_password,$gEX_db);
        
    if (
$lens) {
        
$lens->menuHide 'BOTTOM';
        
$lens->lang->topCaption '<font color=white><b>&nbsp; Product Report for '.date('M-d-Y').'</b></font>';
        
$lens->lang->txtTotal 'Average:';
        
$lens->lang->txtSubTotal 'Average:';
        
$lens->avgLens 'UnitPrice;UnitsInStock;UnitsOnOrder';
        
        
// group by supplier
        
$lens->groupLens 'supplierid';
        
$lens->lookupLens 'supplierid^select supplierid,concat(\'Supplier: \',companyname) from suppliers';
        
        
$lens->nameLens 'UnitsInStock^Units;UnitsOnOrder^Units;ReorderLevel^Order Level';
        
$lens->gridLens 'ProductName;QuantityPerUnit;UnitPrice;UnitsInStock;UnitsOnOrder;ReorderLevel';
        
$lens->titleLevel1 
            
'ProductName^3^Products^palegoldenrod;UnitsInStock^3^Units^peachpuff';
        
$lens->titleLevel2 
            
'ProductName^3^^palegoldenrod;UnitsInStock^1^{NBSP} In Stock {NBSP} ^peachpuff;UnitsOnOrder^2^On Order^bisque';
        
$lens->titleColor 'ProductName^3^palegoldenrod;UnitsInStock^1^peachpuff;UnitsOnOrder^2^bisque';
        
        
// exporting
        
$lens->exportLens 'ProductName;QuantityPerUnit;UnitPrice;UnitsInStock;UnitsOnOrder;ReorderLevel';
        
$lens->exportOptions 'CSV';
        
$lens->imageTmpDir LENS_IMG_TEMP_DIR// save csv file here temporarily
        
        
$lens->pageSize 20;
        
$lens->showDetails false;
        
//-----------------
        // Generate HTML
        
$lens->Render();
        
$lens->Close();

        
//--------------------------
        // Show Details on Products
        
        
    
}
?>
<h4>Notes</h4>
<p>This demo shows how to produce a complex report.
<p>We use the <b>groupLens</b> property to group records by supplier, and <b>lookupLens</b> property to map the supplier id to
the actual supplier company name.
<p>We use the <b>avgLens</b> property to calculate averages for the above columns, and set the
appropriate captions by modifying the <b>txtTotal</b> and <b>txtSubTotal</b> properties. We
use the <b>topCaption</b> property to set it to "Product Report".
<h4>Export to Excel</h4>
<p>We also support exporting to Excel since phpLens 2.2. We can export both in Excel 5 binary format
or CSV. This requires a  directory to be defined  with the <b>imageTmpDir</b> property to store 
the temporary CSV or Excel format file. <p>
The columns to be exported are defined by the <b>exportLens</b> property. 
<p>
Note the ob_start() at the beginning of the code (click View Source). This allows us to 
perform a HTTP redirect, so the export file will automatically download.
<h4>TitleLevels and ColorLevels</h4>
We use the titleLevel1, titleLevel2 and titleColor properties to display more complex
report headers. For example:
<p>
<code>
$lens->titleLevel2 = '<b>ProductName^3^^palegoldenrod</b>;UnitsInStock^1^{NBSP} In Stock {NBSP}^peachpuff;<b>UnitsOnOrder^2^On Order^bisque</b>';
</code>
<p>
This means, starting from ProductName, create a column that spans 3 cols, followed by a column
starting from UnitsInStock called "In Stock" colored peachpuff, and lastly a column starting from
UnitsOnOrder spanning 2 cols, named Ordering with the color bisque. {NBSP} will be replaced with
&amp;nbsp; (non-breaking space).
<p>
If you require an additional row of title headers, you can also define this row with the <b>titleLevel3</b> property.
<?php        
include ('./footer.php');
?>

email: contact#phplens.com (change # to @)     telephone (malaysia): 60-3-7947 2888     fax (malaysia): 60-3-7947 2800