Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

DataGrid Class

munky344munky344 Posts: 12Member
Hi there,

I found a datagrid class script on the internet and it is exactly what I am looking for , the problem is that I can get the script to run. The localhost returns no errors or anything but just displays a page with a whole bunch of characters and things that don't make sense. I'm running PHP 5.2.6 on a wampserver configuration so I'm not too sure if this is perhaps causing a problem. I really need to get this datagrid to work as it will solve a lot of my issues with regards to displaying my data. Please can someone have a look , I would really appreciate it.

Thanking you in advance.

[b]test.php[/b]

<?

include_once("DBinit.php");
include_once("datagrid.class.php");


?>



Sections



'><?=$t_messg?>

<?
//datagrid for existing sections

$dbp = new flor_db_process();
$query = "select * from patientdemo";
$dbp->fetchQuery($query);
$gridData = $dbp->resultSet;

$dg = new DataGrid($gridData);
$dg->width = "300";
$dg->fontSize = .8;
$dg->autoColumns = false;

$dg->paging = true;
$dg->paging_byPageNos = true;
$dg->paging_NoOfRows = 3;


$dg->borderColor = "gray"; //or values like #C0C0C0
$dg->borderStyle = "dotted"; //or solid, or dashed, etc.,
$dg->borderWidth = 1; //integer
$dg->cellPadding = 2; //integer
$dg->headBackgroundColor = "#FFFFCC"; //or values like green
$dg->headForeColor = "green"; //or values like #FFFFFF
$dg->fontSize = .8; //integer
$dg->fontFamily = "courier new"; //or Arial, verdana, etc.,

$dg->colSet[0] = new Column();
$dg->colSet[0]->displayName = "Headline";
$dg->colSet[0]->fieldName = "dispName";
$dg->colSet[0]->width = "70%";

$dg->colSet[1] = new Column();
$dg->colSet[1]->displayName = "Code";
$dg->colSet[1]->fieldName = "positionCode";
$dg->colSet[1]->width = "30%";


$dg->showGrid();

?>



[b]DBinit.php[/b]

<?

include_once("flor_db_process.class.php");

define ("DB_DOMAIN","localhost");
//define ("DB_PORT", 3306);
define ("DB_USER","root");
define ("DB_PASS","");
define ("DB_NAME","patient");

?>

[b]DataGrid.class.php[/b]

<?

/* -----------------------------------------------
* Author: Harish Palaniappan, Floresense.com
* Ver: 1.1
* Last Updated: Jan 2008
* License: LGPL License
* You are free to use/modify/redistribute this script. Keep this comment block intact.
* ----------------------------------------------
*
* add your own comments here..
*
*/


class DataGrid{

//vars
private $gridHTML = "";
public $columnCount = 0;
public $rowCount = 0;
private $colInfo = null;
private $fontStyle = "";

private $curRowId = -1;
private $curColId = -1;

//properties
public $width = "100%";
public $autoColumns = true;

public $resultSet = null;
public $fontSize = 1;
public $fontFamily = "Verdana";

public $borderWidth = 1;
public $borderStyle = "solid";
public $borderColor = "black";
public $cellPadding = 2;
public $headBackgroundColor = "#5B59B7";
public $headForeColor = "#FFFFFF";

public $paging_indexAtTop = true;
public $paging_indexAtBottom = true;

public $pageByName = false;
public $pageByName_field = "";
private $curPgAlphaIndex = "";
private $pgAlphaIndexKeys = null;

public $paging = false;
public $paging_byPageNos = false;
public $paging_byNextPrev = false;
public $paging_NoOfRows = 30;
private $curPgIndex = 1;
private $totPages = 1;

public $colSet = array();
public $rowSet = array();
public $dataKey = null;


//events
public $onRowItem_Bound = null;

function DataGrid($resultSet=null)
{
$this->resultSet = $resultSet;
}

function showGrid()
{
$this->makeGrid();

echo $this->gridHTML;
}

function makeGrid()
{

//get params
$gridAction = $_POST['flor_grid_a'];
$gridVal = $_POST['flor_grid_aV'];
if ($gridAction)
{
$gridAction = strtoupper($gridAction);
switch($gridAction)
{
case "PGA":
$this->curPgAlphaIndex = strtoupper($gridVal);
break;

case "PG":
$this->curPgIndex = $gridVal;
break;
}
}

$this->gridHTML = "";
$this->fontStyle="font-size:".$this->fontSize."em;font-family:".$this->fontFamily.";";

$this->initDataInfo();

if ($this->paging_indexAtTop)
if ($this->paging || $this->pageByName)
$this->gridHTML .= $this->getPagingHTML();

$this->gridHTML .= $this->getTableHTML("OPEN");

$this->gridHTML .= $this->getDataHTML();

$this->gridHTML .= $this->getTableHTML("CLOSE");

if ($this->paging_indexAtBottom)
if ($this->paging || $this->pageByName)
$this->gridHTML .= $this->getPagingHTML();

if ($this->paging || $this->pageByName)
$this->gridHTML .= $this->getPaging_supportScripts();
}

private function getPagingHTML()
{
if ($this->pageByName)
{
$this->prepAlphabetIndex();

if ($this->curPgAlphaIndex=="" && count($this->pgAlphaIndexKeys)>0)
$this->curPgAlphaIndex = $this->pgAlphaIndexKeys[1];

return $this->getAlphabetIndex_HTML();
}
elseif($this->paging)
{
$this->prepPageIndex();

return $this->getPageIndex_HTML();
}
}

private function prepPageIndex()
{
$totRows = $this->resultSet->num_rows;
$this->totPages = ceil($totRows/$this->paging_NoOfRows);
}

private function getPageIndex_HTML()
{
if ($this->paging_byPageNos)
{
$html = "
headBackgroundColor.";".
"color:".$this->headForeColor.";width:".($this->width-10)."px;border:0px solid red;text-align:center;".
"margin:10px 0px 0px 0px;'> Pages - ";

for($idx = 1; $idx<=$this->totPages; $idx++)
{
$linkStr = "".$idx;

if ($this->curPgIndex == $idx)
$linkStr = "$linkStr";
else
$linkStr = "headForeColor.";'>".
$linkStr."
";

if ($idx == 1)
$html .= $linkStr."  ";
elseif($idx == $this->totPages)
$html .= " ".$linkStr." ";
else
$html .= " ".$linkStr."  ";
}
}
elseif ($this->paging_byNextPrev)
{
$html = "
headBackgroundColor.";".
"color:".$this->headForeColor.";width:".($this->width-10)."px;border:0px solid red;text-align:right;".
"margin:10px 0px 0px 0px;'>";

$prevPage = true; $nextPage = true;

if ($this->curPgIndex == 1)
$prevPage = false;
if ($this->curPgIndex == $this->totPages)
$nextPage = false;

if ($prevPage)
$html .= "curPgIndex-1).");" style='color:".$this->headForeColor.";'>".
"< Prev
  ";
if($nextPage)
$html .= "curPgIndex+1).");" style='color:".$this->headForeColor.";'>".
"Next >
";
}

$html .= "
";

return $html;
}

private function prepAlphabetIndex()
{
$db = new flor_db_process();
$db->resultSet = $this->resultSet;

$this->pgAlphaIndexKeys = array("");

while(1)
{
$row = $db->getRow2();
if (!$row)
break;

$tmpCellVal = $row[$this->pageByName_field];
$tmpChar = strtoupper(substr($tmpCellVal,0,1));
if (is_numeric($tmpChar) && !array_search("0-9",$this->pgAlphaIndexKeys))
array_push($this->pgAlphaIndexKeys, "0-9");
if (!array_search($tmpChar,$this->pgAlphaIndexKeys))
array_push($this->pgAlphaIndexKeys, $tmpChar);
}

}

private function getAlphabetIndex_HTML()
{
$html = "
headBackgroundColor.";".
"color:".$this->headForeColor.";width:".($this->width-10)."px;border:0px solid red;text-align:center;".
"margin:10px 0px 0px 0px;'>";

$alphabets = preg_split('//', "ABCDEFGHIJKLMNOPQRSTUVWXYZ", -1, PREG_SPLIT_NO_EMPTY);
$chars = array("0-9");
$chars = array_merge($chars,$alphabets);

foreach($chars as $char)
{
$linkStr = $char;

if ($this->curPgAlphaIndex == $char || (is_numeric($this->curPgAlphaIndex) && $char=="0-9"))
$linkStr = "$linkStr";
elseif (array_search($char,$this->pgAlphaIndexKeys))
$linkStr = "headForeColor.";'>".
$linkStr."
";

if ($char == "0-9")
$html .= $linkStr."  ";
elseif($char =="Z")
$html .= " ".$linkStr." ";
else
$html .= " ".$linkStr."  ";
}

$html .= "
";

return $html;
}

private function getPaging_supportScripts()
{
$html = <<<END
<input type=hidden name=flor_grid_a id=flor_grid_a value=""/>






END;

return $html;
}

private function initDataInfo()
{
if ($this->autoColumns)
{
if ($this->resultSet)
{
$this->colInfo = $this->resultSet->fetch_fields();
$this->columnCount = count($this->colInfo);

for($i=0; $i<$this->columnCount; $i++)
{
$col = new Column();
$col->fieldName = $this->colInfo[$i]->name;
$this->colSet[$i] = $col;
}
}
}
else
{
$this->columnCount = count($this->colSet);
}
}

private function getDataHTML()
{
$tmpHTML = "";

$db = new flor_db_process();
$db->resultSet = $this->resultSet;
$db->reset();

$gridHeaderComplete = false;
if (!$gridHeaderComplete)
{
$tmpHTML = $this->getHeaderHTML();

$gridHeaderComplete = true;
}

if ($this->resultSet)
{
$this->rowCount = $this->resultSet->num_rows;

if ($this->rowCount==0)
$tmpHTML .= $this->getTableHTML("NODATA");
else
{
while($tmpRow = $db->getRow2())
{
$this->curRowId++;

if ($this->pageByName)
{
$tmpCellVal = $tmpRow[$this->pageByName_field];
if (!$tmpCellVal)
continue; //skip row

$tmpStr1 = strtoupper(substr($tmpCellVal,0,1));

if (is_numeric($tmpStr1) && $this->curPgAlphaIndex == "0-9")
{
//is numeric value
}
elseif ($tmpStr1 != strtoupper($this->curPgAlphaIndex))
continue; //skip row

}
elseif($this->paging)
{
if ($this->curPgIndex == 1)
$lowRowID = 0;
else
$lowRowID = (($this->curPgIndex-1) * $this->paging_NoOfRows)+1;
$hiRowID = $this->curPgIndex * $this->paging_NoOfRows;

if ($this->curRowId >= $lowRowID &&
$this->curRowId <= $hiRowID)
{
//allow row.. it belongs to page
}
else
continue; //skip row.
}

$tmpHTML .= $this->getDataRowHTML($tmpRow);
}
}
}
else
$tmpHTML .= $this->getTableHTML("NODATA");


//echo "*".$this->rowCount."*".$this->columnCount."*";
//print_r($this->colInfo);

return $tmpHTML;
}

private function getAddNewRowHTML()
{
///if ($this->resultSet)

return "";
}

private function getDataRowHTML($rowData)
{
$t1 = "
";

$this->curColId = -1;

$cells = array();
foreach($this->colSet as $colItem)
{
$this->curColId++;

if ($colItem->fieldName!=null)
$cellContent = $rowData[$colItem->fieldName];
else
$cellContent = "";

//row item bound event
//call data_rowItem_bound event handler
$cell = new cell();
$cell->rowId = $this->curRowId;
$cell->colId = $this->curColId;
$cell->dataKey = $rowData[$this->dataKey];
$cell->HTMLContent = $cellContent;

array_push($cells, $cell);
}

if ($this->onRowItem_Bound != null)
{
$tmpFn = $this->onRowItem_Bound;
$cells = $tmpFn($cells); //passing a row.. for each row this entire fn is called.
}

$j=-1;
foreach($this->colSet as $colItem)
{
$j++;

$t1 .= "
fontStyle."">
".
$cells[$j]->HTMLContent.
"
";
}

$t1 .= "
";

return $t1;
}

private function getHeaderHTML()
{
if (!$this->colSet)
return "";

$t1 = "
";

$headStyle = "background-color:".$this->headBackgroundColor.";color:".
$this->headForeColor.";";

foreach($this->colSet as $colItem)
{
if ($colItem->displayName != null)
$tmpText = $colItem->displayName;
else
$tmpText = $colItem->fieldName;

if ($colItem->width!=null)
$colW = "width='".$colItem->width."' ";
else
$colW = "";

$t1 .= "
fontStyle.$headStyle."">
".
$tmpText.
"
";

}

$t1 .= "
";

return $t1;
}

private function getTableHTML($code)
{
switch(strtoupper($code))
{
case "OPEN":
$pad = $this->cellPadding;
$bw = $this->borderWidth;
$bc = $this->borderColor;
$bs = $this->borderStyle;


return "width." cellpadding=$pad ".
"style="margin:10px 0px 10px 0px;border-collapse:collapse;border-style:$bs;" borderColor='$bc'>";

break;

case "CLOSE":
return "
";
break;

case "NODATA":
if ($this->columnCount>1)
$colspan= "colspan='".$this->columnCount."' ";
else
$colspan=" ";

return "

fontStyle."' $colspan>No Data
";

break;

case "ALPHA_INDEX":
$this->prepAlphabetIndex();
$tmpHTML = $this->getAlphabetIndex_HTML();

if ($this->columnCount>1)
$colspan= "colspan='".$this->columnCount."' ";
else
$colspan=" ";

$tmpHTML = "

fontStyle."' $colspan>".$tmpHTML."
";

return $tmpHTML;

break;

}

}
}

class column{
public $displayName = null;
public $fieldName = null;
public $dataFormat = null;
public $width = null;
public $backgroundColor = null;

}

class cell{
public $rowId = null;
public $colId = null;
public $dataKey = null;
public $HTMLContent = null;
}

?>


Comments

  • munky344munky344 Posts: 12Member
    I realize I never included the script below. I have been battling for days to get this script to run , it's terribly frustrating.

    [b]flor_db_process.php[/b]

    /* -----------------------------------------------
    * CLASS : flor_db_process
    *
    * Author: Harish Palaniappan, Floresense.com
    * Ver: 1.2 (earlier DBProcess ver 1.0)
    * Last Updated: Jan 2008
    * License: LGPL License -> http://www.gnu.org/licenses/lgpl.html
    * License in brief: You are free to use/modify/redistribute this script.
    * Keep this comment block intact.
    * ----------------------------------------------
    *
    * add your own comments here..
    *
    */


    class flor_db_process{

    var $query = "";

    var $isFetchMode = false;
    var $isUpdateMode = false;
    var $isInsertMode = false;

    var $resultSet = null;
    var $affRows=0;
    var $numRows=0;
    var $fieldCount = 0;

    var $errStr = "";
    var $hasErr = false;

    var $con = null;
    var $isDBConnected = false;

    function DBprocess2()
    {
    $this->openCon();
    }

    function openCon()
    {
    $this->closeCon();

    global $db;

    $dbname ="";

    $db_Domain;
    $dbname = $cmtDB;


    //connecting with mysqli
    //
    $this->con = mysqli_init();
    /* set connection options */
    $this->con->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
    $this->con->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
    /* connect to server */
    error_reporting(0);

    if (!defined("DB_DOMAIN") || !defined("DB_USER") || !defined("DB_PASS") || !defined("DB_NAME"))
    exit("include common.php?.. db connect info missing for DBProcess2");

    $this->con->real_connect(DB_DOMAIN,DB_USER,DB_PASS,DB_NAME,DB_PORT);

    error_reporting(E_ALL ^ E_NOTICE);
    if (mysqli_connect_errno())
    {
    $this->hasErr = true;
    $this->errStr = "Connect failed:
    " . mysqli_connect_error();
    exit($this->errStr);
    }
    else
    {
    $this->hasErr=false;
    $this->isDBConnected=true;
    }

    }

    //function to close db connection
    function closeCon()
    {
    //disconnecting with mysqli
    //
    if ($this->isDBConnected)
    $this->con->close();

    $this->con=null;
    }

    function processQuery()
    {
    global $errReportingType;

    if (!$this->query)
    return null;

    if (!$this->con)
    $this->openCon();

    error_reporting(0);
    $tmpResult = $this->con->query($this->query);

    error_reporting($errReportingType);

    if ($this->con->error=="")
    {
    $this->hasErr = false;
    if ($this->isFetchMode)
    {
    $this->resultSet = $tmpResult;
    if ($tmpResult)
    {
    $this->numRows = $tmpResult->num_rows;
    $this->fieldCount = $this->field_count;
    }
    else
    $this->numRows = 0;
    }
    elseif($this->isUpdateMode)
    {
    $this->affRows = $this->con->affected_rows;
    }
    elseif($this->isInsertMode)
    {
    $this->affRows = $this->con->affected_rows;
    return $this->con->insert_id;
    }
    }
    else
    {
    $this->hasErr = true;

    $this->errStr = $this->con->error;

    if (APPMODE!="live")
    $this->errStr = $this->query."___".$this->errStr;

    if ($this->isInsertMode)
    return null;
    }
    }

    function fetchQuery($qry)
    {
    $this->query = $qry;
    $this->isFetchMode = true;
    $this->isUpdateMode = false;
    $this->isInsertMode =false;
    $this->processQuery();

    }

    function insertQuery($qry)
    {
    $this->query = $qry;
    $this->isFetchMode = false;
    $this->isUpdateMode = false;
    $this->isInsertMode = true;
    $insert_id = $this->processQuery();

    return $insert_id;
    }

    function updateQuery($qry)
    {
    $this->query = $qry;
    $this->isFetchMode = false;
    $this->isUpdateMode = true;
    $this->isInsertMode = false;
    $this->processQuery();

    }

    function getRow()
    {
    $row = $this->resultSet->fetch_row();

    if (isset($row))
    return $row;
    else
    return null;
    }

    function getRow2()
    {
    $row = $this->resultSet->fetch_assoc();

    if (isset($row))
    return $row;
    else
    return null;
    }

    function reset()
    {
    mysqli_data_seek($this->resultSet,0);
    }

    }
    ?>


    : Hi there,
    :
    : I found a datagrid class script on the internet and it is exactly
    : what I am looking for , the problem is that I can get the script to
    : run. The localhost returns no errors or anything but just displays a
    : page with a whole bunch of characters and things that don't make
    : sense. I'm running PHP 5.2.6 on a wampserver configuration so I'm
    : not too sure if this is perhaps causing a problem. I really need to
    : get this datagrid to work as it will solve a lot of my issues with
    : regards to displaying my data. Please can someone have a look , I
    : would really appreciate it.
    :
    : Thanking you in advance.
    :
    : [b]test.php[/b]
    :
    : <?
    :
    : include_once("DBinit.php");
    : include_once("datagrid.class.php");
    :
    :
    : ?>
    :
    :
    :
    :
    :
    :

    Sections

    :
    :
    : '><?=$t_messg?>
    :
    : <?
    : //datagrid for existing sections
    :
    : $dbp = new flor_db_process();
    : $query = "select * from patientdemo";
    : $dbp->fetchQuery($query);
    : $gridData = $dbp->resultSet;
    :
    : $dg = new DataGrid($gridData);
    : $dg->width = "300";
    : $dg->fontSize = .8;
    : $dg->autoColumns = false;
    :
    : $dg->paging = true;
    : $dg->paging_byPageNos = true;
    : $dg->paging_NoOfRows = 3;
    :
    :
    : $dg->borderColor = "gray"; //or values like #C0C0C0
    : $dg->borderStyle = "dotted"; //or solid, or dashed, etc.,
    : $dg->borderWidth = 1; //integer
    : $dg->cellPadding = 2; //integer
    : $dg->headBackgroundColor = "#FFFFCC"; //or values like green
    : $dg->headForeColor = "green"; //or values like #FFFFFF
    : $dg->fontSize = .8; //integer
    : $dg->fontFamily = "courier new"; //or Arial, verdana, etc.,
    :
    : $dg->colSet[0] = new Column();
    : $dg->colSet[0]->displayName = "Headline";
    : $dg->colSet[0]->fieldName = "dispName";
    : $dg->colSet[0]->width = "70%";
    :
    : $dg->colSet[1] = new Column();
    : $dg->colSet[1]->displayName = "Code";
    : $dg->colSet[1]->fieldName = "positionCode";
    : $dg->colSet[1]->width = "30%";
    :
    :
    : $dg->showGrid();
    :
    : ?>
    :
    :
    :
    : [b]DBinit.php[/b]
    :
    : <?
    :
    : include_once("flor_db_process.class.php");
    :
    : define ("DB_DOMAIN","localhost");
    : //define ("DB_PORT", 3306);
    : define ("DB_USER","root");
    : define ("DB_PASS","");
    : define ("DB_NAME","patient");
    :
    : ?>
    :
    : [b]DataGrid.class.php[/b]
    :
    : <?
    :
    : /* -----------------------------------------------
    : * Author: Harish Palaniappan, Floresense.com
    : * Ver: 1.1
    : * Last Updated: Jan 2008
    : * License: LGPL License
    : * You are free to use/modify/redistribute this script. Keep this
    : comment block intact.
    : * ----------------------------------------------
    : *
    : * add your own comments here..
    : *
    : */
    :
    :
    : class DataGrid{
    :
    : //vars
    : private $gridHTML = "";
    : public $columnCount = 0;
    : public $rowCount = 0;
    : private $colInfo = null;
    : private $fontStyle = "";
    :
    : private $curRowId = -1;
    : private $curColId = -1;
    :
    : //properties
    : public $width = "100%";
    : public $autoColumns = true;
    :
    : public $resultSet = null;
    : public $fontSize = 1;
    : public $fontFamily = "Verdana";
    :
    : public $borderWidth = 1;
    : public $borderStyle = "solid";
    : public $borderColor = "black";
    : public $cellPadding = 2;
    : public $headBackgroundColor = "#5B59B7";
    : public $headForeColor = "#FFFFFF";
    :
    : public $paging_indexAtTop = true;
    : public $paging_indexAtBottom = true;
    :
    : public $pageByName = false;
    : public $pageByName_field = "";
    : private $curPgAlphaIndex = "";
    : private $pgAlphaIndexKeys = null;
    :
    : public $paging = false;
    : public $paging_byPageNos = false;
    : public $paging_byNextPrev = false;
    : public $paging_NoOfRows = 30;
    : private $curPgIndex = 1;
    : private $totPages = 1;
    :
    : public $colSet = array();
    : public $rowSet = array();
    : public $dataKey = null;
    :
    :
    : //events
    : public $onRowItem_Bound = null;
    :
    : function DataGrid($resultSet=null)
    : {
    : $this->resultSet = $resultSet;
    : }
    :
    : function showGrid()

    : {
    : $this->makeGrid();
    :
    : echo $this->gridHTML;
    : }
    :
    : function makeGrid()
    : {
    :
    : //get params
    : $gridAction = $_POST['flor_grid_a'];
    : $gridVal = $_POST['flor_grid_aV'];
    : if ($gridAction)
    : {
    : $gridAction = strtoupper($gridAction);
    : switch($gridAction)
    : {
    : case "PGA":
    : $this->curPgAlphaIndex = strtoupper($gridVal);
    : break;
    :
    : case "PG":
    : $this->curPgIndex = $gridVal;
    : break;
    : }
    : }
    :
    : $this->gridHTML = "";
    : $this->fontStyle="font-size:".$this->fontSize."em;font-family:".$th
    : is->fontFamily.";";
    :
    : $this->initDataInfo();
    :
    : if ($this->paging_indexAtTop)
    : if ($this->paging || $this->pageByName)
    : $this->gridHTML .= $this->getPagingHTML();
    :
    : $this->gridHTML .= $this->getTableHTML("OPEN");
    :
    : $this->gridHTML .= $this->getDataHTML();
    :
    : $this->gridHTML .= $this->getTableHTML("CLOSE");
    :
    : if ($this->paging_indexAtBottom)
    : if ($this->paging || $this->pageByName)
    : $this->gridHTML .= $this->getPagingHTML();
    :
    : if ($this->paging || $this->pageByName)
    : $this->gridHTML .= $this->getPaging_supportScripts();
    : }
    :
    : private function getPagingHTML()
    : {
    : if ($this->pageByName)
    : {
    : $this->prepAlphabetIndex();
    :
    : if ($this->curPgAlphaIndex=="" &&
    : count($this->pgAlphaIndexKeys)>0)
    : $this->curPgAlphaIndex = $this->pgAlphaIndexKeys[1];
    :
    : return $this->getAlphabetIndex_HTML();
    : }
    : elseif($this->paging)
    : {
    : $this->prepPageIndex();
    :
    : return $this->getPageIndex_HTML();
    : }
    : }
    :
    : private function prepPageIndex()
    : {
    : $totRows = $this->resultSet->num_rows;
    : $this->totPages = ceil($totRows/$this->paging_NoOfRows);
    : }
    :
    : private function getPageIndex_HTML()
    : {
    : if ($this->paging_byPageNos)
    : {
    : $html = "
    headBackgroundColor.";".
    : "color:".$this->headForeColor.";width:".($this->width-10)."px;bo
    : rder:0px solid red;text-align:center;".
    : "margin:10px 0px 0px 0px;'> Pages - ";
    :
    : for($idx = 1; $idx<=$this->totPages; $idx++)
    : {
    : $linkStr = "".$idx;
    :
    : if ($this->curPgIndex == $idx)
    : $linkStr = "$linkStr";
    : else
    : $linkStr = "headForeColor.";'>".
    : $linkStr."
    ";
    :
    : if ($idx == 1)
    : $html .= $linkStr."  ";
    : elseif($idx == $this->totPages)
    : $html .= " ".$linkStr." ";
    : else
    : $html .= " ".$linkStr."  ";
    : }
    : }
    : elseif ($this->paging_byNextPrev)
    : {
    : $html = "
    headBackgroundColor.";".
    : "color:".$this->headForeColor.";width:".($this->width-10)."px;bo
    : rder:0px solid red;text-align:right;".
    : "margin:10px 0px 0px 0px;'>";
    :
    : $prevPage = true; $nextPage = true;
    :
    : if ($this->curPgIndex == 1)
    : $prevPage = false;
    : if ($this->curPgIndex == $this->totPages)
    : $nextPage = false;
    :
    : if ($prevPage)
    : $html .= "curPgIndex-1).");
    : " style='color:".$this->headForeColor.";'>".
    : "< Prev
      ";
    : if($nextPage)
    : $html .= "curPgIndex+1).");
    : " style='color:".$this->headForeColor.";'>".
    : "Next >
    ";
    : }
    :
    : $html .= "
    ";
    :
    : return $html;
    : }
    :
    : private function prepAlphabetIndex()
    : {
    : $db = new flor_db_process();
    : $db->resultSet = $this->resultSet;
    :
    : $this->pgAlphaIndexKeys = array("");
    :
    : while(1)
    : {
    : $row = $db->getRow2();
    : if (!$row)
    : break;
    :
    : $tmpCellVal = $row[$this->pageByName_field];
    : $tmpChar = strtoupper(substr($tmpCellVal,0,1));
    : if (is_numeric($tmpChar) &&
    : !array_search("0-9",$this->pgAlphaIndexKeys))
    : array_push($this->pgAlphaIndexKeys, "0-9");
    : if (!array_search($tmpChar,$this->pgAlphaIndexKeys))
    : array_push($this->pgAlphaIndexKeys, $tmpChar);
    : }
    :
    : }
    :
    : private function getAlphabetIndex_HTML()
    : {
    : $html = "
    headBackgroundColor.";".
    : "color:".$this->headForeColor.";width:".($this->width-10)."px;bor
    : der:0px solid red;text-align:center;".
    : "margin:10px 0px 0px 0px;'>";
    :
    : $alphabets = preg_split('//', "ABCDEFGHIJKLMNOPQRSTUVWXYZ", -1,
    : PREG_SPLIT_NO_EMPTY);
    : $chars = array("0-9");
    : $chars = array_merge($chars,$alphabets);
    :
    : foreach($chars as $char)
    : {
    : $linkStr = $char;
    :
    : if ($this->curPgAlphaIndex == $char ||
    : (is_numeric($this->curPgAlphaIndex) && $char=="0-9"))
    : $linkStr = "$linkStr";
    : elseif (array_search($char,$this->pgAlphaIndexKeys))
    : $linkStr = "headForeColor.";'>".
    : $linkStr."
    ";
    :
    : if ($char == "0-9")
    : $html .= $linkStr."  ";
    : elseif($char =="Z")
    : $html .= " ".$linkStr." ";
    : else
    : $html .= " ".$linkStr."  ";
    : }
    :
    : $html .= "
    ";
    :
    : return $html;
    : }
    :
    : private function getPaging_supportScripts()
    : {
    : $html = <<<END
    : <input type=hidden name=flor_grid_a id=flor_grid_a value=""/>
    :
    :
    :
    :
    :
    :
    : END;
    :
    : return $html;
    : }
    :
    : private function initDataInfo()
    : {
    : if ($this->autoColumns)
    : {
    : if ($this->resultSet)
    : {
    : $this->colInfo = $this->resultSet->fetch_fields();
    : $this->columnCount = count($this->colInfo);
    :
    : for($i=0; $i<$this->columnCount; $i++)
    : {
    : $col = new Column();
    : $col->fieldName = $this->colInfo[$i]->name;
    : $this->colSet[$i] = $col;
    : }
    : }
    : }
    : else
    : {
    : $this->columnCount = count($this->colSet);
    : }
    : }
    :
    : private function getDataHTML()
    : {
    : $tmpHTML = "";
    :
    : $db = new flor_db_process();
    : $db->resultSet = $this->resultSet;
    : $db->reset();
    :
    : $gridHeaderComplete = false;
    : if (!$gridHeaderComplete)
    : {
    : $tmpHTML = $this->getHeaderHTML();
    :
    : $gridHeaderComplete = true;
    : }
    :
    : if ($this->resultSet)
    : {
    : $this->rowCount = $this->resultSet->num_rows;
    :
    : if ($this->rowCount==0)
    : $tmpHTML .= $this->getTableHTML("NODATA");
    : else
    : {
    : while($tmpRow = $db->getRow2())
    : {
    : $this->curRowId++;
    :
    : if ($this->pageByName)
    : {
    : $tmpCellVal = $tmpRow[$this->pageByName_field];
    : if (!$tmpCellVal)
    : continue; //skip row
    :
    : $tmpStr1 = strtoupper(substr($tmpCellVal,0,1));
    :
    : if (is_numeric($tmpStr1) && $this->curPgAlphaIndex == "0-9")
    : {
    : //is numeric value
    : }
    : elseif ($tmpStr1 != strtoupper($this->curPgAlphaIndex))
    : continue; //skip row
    :
    : }
    : elseif($this->paging)
    : {
    : if ($this->curPgIndex == 1)
    : $lowRowID = 0;
    : else
    : $lowRowID = (($this->curPgIndex-1) *
    : $this->paging_NoOfRows)+1;
    : $hiRowID = $this->curPgIndex * $this->paging_NoOfRows;
    :
    : if ($this->curRowId >= $lowRowID &&
    : $this->curRowId <= $hiRowID)
    : {
    : //allow row.. it belongs to page
    : }
    : else
    : continue; //skip row.
    : }
    :
    : $tmpHTML .= $this->getDataRowHTML($tmpRow);
    : }
    : }
    : }
    : else
    : $tmpHTML .= $this->getTableHTML("NODATA");
    :
    :
    : //echo "*".$this->rowCount."*".$this->columnCount."*";
    : //print_r($this->colInfo);
    :
    : return $tmpHTML;
    : }
    :
    : private function getAddNewRowHTML()
    : {
    : ///if ($this->resultSet)
    :
    : return "";
    : }
    :
    : private function getDataRowHTML($rowData)
    : {
    : $t1 = "
    ";
    :
    : $this->curColId = -1;
    :
    : $cells = array();
    : foreach($this->colSet as $colItem)
    : {
    : $this->curColId++;
    :
    : if ($colItem->fieldName!=null)
    : $cellContent = $rowData[$colItem->fieldName];
    : else
    : $cellContent = "";
    :
    : //row item bound event
    : //call data_rowItem_bound event handler
    : $cell = new cell();
    : $cell->rowId = $this->curRowId;
    : $cell->colId = $this->curColId;
    : $cell->dataKey = $rowData[$this->dataKey];
    : $cell->HTMLContent = $cellContent;
    :
    : array_push($cells, $cell);
    : }
    :
    : if ($this->onRowItem_Bound != null)
    : {
    : $tmpFn = $this->onRowItem_Bound;
    : $cells = $tmpFn($cells); //passing a row.. for each row this
    : entire fn is called.
    : }
    :
    : $j=-1;
    : foreach($this->colSet as $colItem)
    : {
    : $j++;
    :
    : $t1 .= "
    fontStyle."">
    ".
    : $cells[$j]->HTMLContent.
    : "
    ";
    : }
    :
    : $t1 .= "
    ";
    :
    : return $t1;
    : }
    :
    : private function getHeaderHTML()
    : {
    : if (!$this->colSet)
    : return "";
    :
    : $t1 = "
    ";
    :
    : $headStyle =
    : "background-color:".$this->headBackgroundColor.";color:".
    : $this->headForeColor.";";
    :
    : foreach($this->colSet as $colItem)
    : {
    : if ($colItem->displayName != null)
    : $tmpText = $colItem->displayName;
    : else
    : $tmpText = $colItem->fieldName;
    :
    : if ($colItem->width!=null)
    : $colW = "width='".$colItem->width."' ";
    : else
    : $colW = "";
    :
    : $t1 .= "
    fontStyle.$headStyle."">
    ".
    : $tmpText.
    : "
    ";
    :
    : }
    :
    : $t1 .= "
    ";
    :
    : return $t1;
    : }
    :
    : private function getTableHTML($code)
    : {
    : switch(strtoupper($code))
    : {
    : case "OPEN":
    : $pad = $this->cellPadding;
    : $bw = $this->borderWidth;
    : $bc = $this->borderColor;
    : $bs = $this->borderStyle;
    :
    :
    : return "width."
    : cellpadding=$pad ".
    : "style="margin:10px 0px 10px
    : 0px;border-collapse:collapse;border-style:$bs;" borderColor='$bc'>";
    :
    : break;
    :
    : case "CLOSE":
    : return "
    ";
    : break;
    :
    : case "NODATA":
    : if ($this->columnCount>1)
    : $colspan= "colspan='".$this->columnCount."' ";
    : else
    : $colspan=" ";
    :
    : return "

    fontStyle."' $colspan>No Data
    ";
    :
    : break;
    :
    : case "ALPHA_INDEX":
    : $this->prepAlphabetIndex();
    : $tmpHTML = $this->getAlphabetIndex_HTML();
    :
    : if ($this->columnCount>1)
    : $colspan= "colspan='".$this->columnCount."' ";
    : else
    : $colspan=" ";
    :
    : $tmpHTML = "

    fontStyle."' $colspan>".$tmpHTML."
    ";
    :
    : return $tmpHTML;
    :
    : break;
    :
    : }
    :
    : }
    : }
    :
    : class column{
    : public $displayName = null;
    : public $fieldName = null;
    : public $dataFormat = null;
    : public $width = null;
    : public $backgroundColor = null;
    :
    : }
    :
    : class cell{
    : public $rowId = null;
    : public $colId = null;
    : public $dataKey = null;
    : public $HTMLContent = null;
    : }
    :
    : ?>
    :
    :
    :

Sign In or Register to comment.