public function fetchData()
 {
     if ($this->m_ActiveRecord != null) {
         return $this->m_ActiveRecord;
     }
     $dataObj = $this->getDataObj();
     if ($dataObj == null) {
         return;
     }
     QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
     if ($this->m_RefreshData) {
         $dataObj->resetRules();
     } else {
         $dataObj->clearSearchRule();
     }
     if ($this->m_FixSearchRule) {
         if ($this->m_SearchRule) {
             $searchRule = $this->m_SearchRule . " AND " . $this->m_FixSearchRule;
         } else {
             $searchRule = $this->m_FixSearchRule;
         }
     }
     $dataObj->setSearchRule($searchRule);
     QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
     $resultRecords = $dataObj->fetch();
     foreach ($resultRecords as $record) {
         $settingRecord["_" . $record['name']] = $record["value"];
     }
     $this->m_RecordId = $resultRecords[0]['Id'];
     $this->setActiveRecord($settingRecord);
     QueryStringParam::ReSet();
     return $settingRecord;
 }
Exemple #2
0
 public function fetchDataSet()
 {
     $dataObj = $this->getDataObj();
     if (!$dataObj) {
         return null;
     }
     QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
     if ($this->m_RefreshData) {
         $dataObj->resetRules();
     } else {
         $dataObj->clearSearchRule();
     }
     if ($this->m_FixSearchRule) {
         if ($this->m_SearchRule) {
             $searchRule = $this->m_SearchRule . " AND " . $this->m_FixSearchRule;
         } else {
             $searchRule = $this->m_FixSearchRule;
         }
     } else {
         $searchRule = $this->m_SearchRule;
     }
     $dataObj->setSearchRule($searchRule);
     if ($this->m_StartItem > 1) {
         $dataObj->setLimit($this->m_Range, $this->m_StartItem);
     } else {
         $dataObj->setLimit($this->m_Range, ($this->m_CurrentPage - 1) * $this->m_Range);
     }
     //$resultRecords = $dataObj->fetch();
     $resultRecordTree = $dataObj->fetchTree($this->m_RootSearchRule, $this->m_TreeDepth);
     if (is_array($resultRecordTree)) {
         foreach ($resultRecordTree as $resultRecordTreeNode) {
             $this->tree2array($resultRecordTreeNode, $resultRecords);
         }
     }
     $this->m_TotalRecords = $dataObj->count();
     if ($this->m_Range && $this->m_Range > 0) {
         $this->m_TotalPages = ceil($this->m_TotalRecords / $this->m_Range);
     }
     $selectedIndex = 0;
     $this->getDataObj()->setActiveRecord($resultRecords[$selectedIndex]);
     QueryStringParam::ReSet();
     return $resultRecords;
 }
Exemple #3
0
 public function fetchDataGroup()
 {
     //get group list first
     $dataObj = $this->getDataObj();
     if (!$dataObj) {
         return null;
     }
     if ($this->m_RefreshData) {
         $dataObj->resetRules();
     } else {
         $dataObj->clearSearchRule();
     }
     if (strpos($this->m_GroupBy, ":")) {
         preg_match("/\\[(.*?):(.*?)\\]/si", $this->m_GroupBy, $match);
         $GroupFieldName = $match[1];
         $GroupField = $match[2];
     } else {
         $GroupField = str_replace("[", "", $this->m_GroupBy);
         $GroupField = str_replace("]", "", $GroupField);
     }
     $GroupSQLRule = "GROUP BY [{$GroupField}]";
     $dataObj->setOtherSQLRule($GroupSQLRule);
     //within each group, search records like before
     QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
     if ($this->m_FixSearchRule) {
         if ($this->m_SearchRule) {
             $searchRule = $this->m_SearchRule . " AND " . $this->m_FixSearchRule;
         } else {
             $searchRule = $this->m_FixSearchRule;
         }
     } else {
         $searchRule = $this->m_SearchRule;
     }
     $dataObj->setSearchRule($searchRule);
     $resultRecords = $dataObj->fetch();
     $this->m_TotalRecords = $dataObj->count();
     if ($this->m_Range && $this->m_Range > 0) {
         $this->m_TotalPages = ceil($this->m_TotalRecords / $this->m_Range);
     }
     QueryStringParam::ReSet();
     //looping
     $i = 0;
     $results = array();
     foreach ($resultRecords as $record) {
         if ($this->m_RefreshData) {
             $dataObj->resetRules();
         } else {
             $dataObj->clearSearchRule();
         }
         QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
         $group_val = $record[$GroupField];
         if ($this->m_FixSearchRule) {
             if ($this->m_SearchRule) {
                 $searchRule = $this->m_SearchRule . " AND " . $this->m_FixSearchRule;
             } else {
                 $searchRule = $this->m_FixSearchRule;
             }
         } else {
             $searchRule = $this->m_SearchRule;
         }
         if ($group_val) {
             if ($searchRule != "") {
                 $searchRule = $searchRule . " AND [{$GroupField}]='{$group_val}'";
             } else {
                 $searchRule = " [{$GroupField}]='{$group_val}'";
             }
         } else {
             if ($searchRule != "") {
                 $searchRule = $searchRule . " AND [{$GroupField}]  is NULL";
             } else {
                 $searchRule = " [{$GroupField}] is NULL";
             }
         }
         $dataObj->setOtherSQLRule("");
         $dataObj->setLimit(0, 0);
         $dataObj->setSearchRule($searchRule);
         $resultRecords_grouped = $dataObj->fetch();
         //renderTable
         $resultRecords_grouped_table = $this->m_DataPanel->renderTable($resultRecords_grouped);
         if ($record[$GroupField]) {
             if ($GroupFieldName) {
                 $results[$record[$GroupFieldName]] = $resultRecords_grouped_table;
             } else {
                 $results[$record[$GroupField]] = $resultRecords_grouped_table;
             }
         } else {
             $results["Empty"] = $resultRecords_grouped_table;
         }
         $i++;
         QueryStringParam::ReSet();
     }
     //set active records
     $selectedIndex = 0;
     $this->getDataObj()->setActiveRecord($resultRecords[$selectedIndex]);
     return $results;
 }
Exemple #4
0
 /**
  * Fetch single record
  *
  * @return array one record array
  */
 public function fetchData()
 {
     QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
     // if has valid active record, return it, otherwise do a query
     if ($this->m_ActiveRecord != null) {
         return $this->m_ActiveRecord;
     }
     $dataObj = $this->getDataObj();
     if ($dataObj == null) {
         return;
     }
     if ($this->m_FormType == "NEW") {
         return $this->getNewRecord();
     }
     if (!$this->m_FixSearchRule && !$this->m_SearchRule) {
         return array();
     }
     if ($this->m_RefreshData) {
         $dataObj->resetRules();
     } else {
         $dataObj->clearSearchRule();
     }
     if ($this->m_FixSearchRule) {
         if ($this->m_SearchRule) {
             $searchRule = $this->m_SearchRule . " AND " . $this->m_FixSearchRule;
         } else {
             $searchRule = $this->m_FixSearchRule;
         }
     }
     $dataObj->setSearchRule($searchRule);
     QueryStringParam::setBindValues($this->m_SearchRuleBindValues);
     $dataObj->setLimit(1);
     $resultRecords = $dataObj->fetch();
     $this->m_RecordId = $resultRecords[0]['Id'];
     $this->setActiveRecord($resultRecords[0]);
     QueryStringParam::ReSet();
     return $resultRecords[0];
 }