$strWhereClause = @$_SESSION[$strTableName . "_pdfwhere"];
}
$_SESSION[$strTableName . "_pdfwhere"] = $strWhereClause;
$strOrderBy = $_SESSION[$strTableName . "_order"];
if (!$strOrderBy) {
    $strOrderBy = $gstrOrderBy;
}
$strSQL .= " " . trim($strOrderBy);
$strSQLbak = $strSQL;
if ($eventObj->exists("BeforeQueryPrint")) {
    $eventObj->BeforeQueryPrint($strSQL, $strWhereClause, $strOrderBy, $pageObject);
}
//	Rebuild SQL if needed
if ($strSQL != $strSQLbak) {
    //	changed $strSQL - old style
    $numrows = GetRowCount($strSQL);
} else {
    $strSQL = $gQuery->gSQLWhere($strWhereClause, $strHavingClause, $strSearchCriteria);
    $strSQL .= " " . trim($strOrderBy);
    $rowcount = false;
    if ($eventObj->exists("ListGetRowCount")) {
        $masterKeysReq = array();
        for ($i = 0; $i < count($pageObject->detailKeysByM); $i++) {
            $masterKeysReq[] = $_SESSION[$strTableName . "_masterkey" . ($i + 1)];
        }
        $rowcount = $eventObj->ListGetRowCount($pageObject->searchClauseObj, $_SESSION[$strTableName . "_mastertable"], $masterKeysReq, $selected_recs, $pageObject);
    }
    if ($rowcount !== false) {
        $numrows = $rowcount;
    } else {
        $numrows = $gQuery->gSQLRowCount($strWhereClause, $strHavingClause, $strSearchCriteria);
Esempio n. 2
0
 /**
  * Read current values from the database
  *
  * @return {array} array of current record data
  */
 function getCurrentRecordInternal()
 {
     if (!is_null($this->data)) {
         return $this->data;
     }
     global $gstrOrderBy, $conn;
     $strWhereClause = '';
     $strHavingClause = '';
     if (!$this->all) {
         //	show one record only
         $this->setKeys();
         $strWhereClause = KeyWhere($this->keys);
         $strSQL = $this->gQuery->gSQLWhere($strWhereClause);
     } else {
         if ($_SESSION[$this->tName . "_SelectedSQL"] != "" && @$_REQUEST["records"] == "") {
             $strSQL = $_SESSION[$this->tName . "_SelectedSQL"];
             $strWhereClause = @$_SESSION[$this->tName . "_SelectedWhere"];
         } else {
             $strWhereClause = @$_SESSION[$this->tName . "_where"];
             $strHavingClause = @$_SESSION[$this->tName . "_having"];
             $strSearchCriteria = @$_SESSION[$this->tName . "_criteria"];
             $strSQL = $this->gQuery->gSQLWhere($strWhereClause, $strHavingClause, $strSearchCriteria);
         }
         //	order by
         $strOrderBy = $_SESSION[$this->tName . "_order"];
         if (!$strOrderBy) {
             $strOrderBy = $gstrOrderBy;
         }
         $strSQL .= " " . trim($strOrderBy);
     }
     $strSQLbak = $strSQL;
     if ($this->eventsObject->exists("BeforeQueryView")) {
         $this->eventsObject->BeforeQueryView($strSQL, $strWhereClause, $this);
     }
     if ($strSQLbak == $strSQL) {
         $strSQL = $this->gQuery->gSQLWhere($strWhereClause, $strHavingClause);
         if ($this->all) {
             $numrows = $this->gQuery->gSQLRowCount($strWhereClause, $strHavingClause, $strSearchCriteria);
             $strSQL .= " " . trim($strOrderBy);
         }
     } else {
         //	changed $strSQL - old style
         if ($this->all) {
             $numrows = GetRowCount($strSQL);
         }
     }
     if (!$this->all) {
         LogInfo($strSQL);
         $rs = db_query($strSQL, $conn);
     } else {
         // Pagination:
         $nPageSize = 0;
         if (@$_REQUEST["records"] == "page" && $numrows) {
             $mypage = (int) @$_SESSION[$this->tName . "_pagenumber"];
             $nPageSize = (int) @$_SESSION[$this->tName . "_pagesize"];
             if ($numrows <= ($mypage - 1) * $nPageSize) {
                 $mypage = ceil($numrows / $nPageSize);
             }
             if (!$nPageSize) {
                 $nPageSize = $gPageSize;
             }
             if (!$mypage) {
                 $mypage = 1;
             }
             $maxrecs = $nPageSize;
             $strSQL .= " limit " . $nPageSize . " offset " . ($mypage - 1) * $nPageSize;
         }
         $rs = db_query($strSQL, $conn);
     }
     $this->data = $this->cipherer->DecryptFetchedArray($rs);
     if (sizeof($this->data) && $this->eventsObject->exists("ProcessValuesView")) {
         $this->eventsObject->ProcessValuesView($this->data, $this);
     }
     return $this->data;
 }
Esempio n. 3
0
	/**
	 * Read current values from the database
	 *
	 * @return {array} array of current record data
	 */
	function getCurrentRecordInternal()
	{
		if (!is_null($this->data))
			return $this->data;
		
		global $gstrOrderBy, $conn;
		$strWhereClause = '';
		$strHavingClause = '';
		if(!$this->all)
		{		
			$strWhereClause = KeyWhere($this->keys);
			if($this->pSet->getAdvancedSecurityType()!=ADVSECURITY_ALL)
				$strWhereClause = whereAdd($strWhereClause, SecuritySQL("Search"));
			$strSQL = $this->gQuery->gSQLWhere($strWhereClause);
		}
		else
		{
			if ($_SESSION[$this->tName."_SelectedSQL"]!="" && @$_REQUEST["records"]=="") 
			{
				$strSQL = $_SESSION[$this->tName."_SelectedSQL"];
				$strWhereClause=@$_SESSION[$this->tName."_SelectedWhere"];
			}
			else
			{
				$strWhereClause = @$_SESSION[$this->tName."_where"];
				$strHavingClause = @$_SESSION[$this->tName."_having"];
				$strSearchCriteria = @$_SESSION[$this->tName."_criteria"];
				$joinFromPart = @$_SESSION[$this->tName."_joinFromPart"];
				if($this->pSet->getAdvancedSecurityType()==ADVSECURITY_VIEW_OWN && $strWhereClause=="")
					$strWhereClause = whereAdd($strWhereClause, SecuritySQL("Search"));
				//$strSQL = $this->gQuery->gSQLWhere($strWhereClause, $strHavingClause, $strSearchCriteria);
				$strSQL = SQLQuery::gSQLWhere_having($this->gQuery->HeadToSql(), $this->gQuery->FromToSql().$joinFromPart, $this->gQuery->WhereToSql(),
						$this->gQuery->GroupByToSql(), $this->gQuery->Having()->toSql($this->gQuery), $strWhereClause, $strHavingClause, $strSearchCriteria);				
			}
			//	order by
			$strOrderBy = $_SESSION[$this->tName."_order"];
			if(!$strOrderBy)
				$strOrderBy = $gstrOrderBy;
			$strSQL.=" ".trim($strOrderBy);
		}
		
		$strSQLbak = $strSQL;
		if($this->eventsObject->exists("BeforeQueryView"))
			$this->eventsObject->BeforeQueryView($strSQL, $strWhereClause, $this);
		if($strSQLbak == $strSQL)
		{
			//$strSQL = $this->gQuery->gSQLWhere($strWhereClause, $strHavingClause);
			$strSQL = SQLQuery::gSQLWhere_having($this->gQuery->HeadToSql(), $this->gQuery->FromToSql().$joinFromPart, $this->gQuery->WhereToSql(),
					$this->gQuery->GroupByToSql(), $this->gQuery->Having()->toSql($this->gQuery), $strWhereClause, $strHavingClause, $strSearchCriteria);			
			if($this->all)
			{
				$numrows = $this->gQuery->gSQLRowCount($strWhereClause, $strHavingClause, $strSearchCriteria);
				$strSQL.=" ".trim($strOrderBy);
			}
		}
		else
		{	//	changed $strSQL - old style	
			if($this->all)
				$numrows = GetRowCount($strSQL);
		}
		
		if(!$this->all)
		{
			LogInfo($strSQL);
			$rs = db_query($strSQL, $conn);
		}
		else
		{
			// Pagination:
			$nPageSize = 0;
			if(@$_REQUEST["records"]=="page" && $numrows)
			{
				$mypage = (integer)@$_SESSION[$this->tName."_pagenumber"];
				$nPageSize = (integer)@$_SESSION[$this->tName."_pagesize"];
				if($numrows <= ($mypage-1)*$nPageSize)
					$mypage = ceil($numrows/$nPageSize);
				if(!$nPageSize)
					$nPageSize = $gPageSize;
				if(!$mypage)
					$mypage = 1;
				$strSQL.=" limit ".(($mypage-1)*$nPageSize).",".$nPageSize;
			}
			$rs = db_query($strSQL,$conn);
		}
		
		$this->data = $this->cipherer->DecryptFetchedArray($rs);
		
		if(sizeof($this->data) && $this->eventsObject->exists("ProcessValuesView"))
			$this->eventsObject->ProcessValuesView($this->data, $this);
		
		return $this->data;
	}
Esempio n. 4
0
}
if (@$_REQUEST["type"]) {
    //	order by
    $strOrderBy = $_SESSION[$strTableName . "_order"];
    if (!$strOrderBy) {
        $strOrderBy = $gstrOrderBy;
    }
    $strSQL .= " " . trim($strOrderBy);
    $strSQLbak = $strSQL;
    if ($eventObj->exists("BeforeQueryExport")) {
        $eventObj->BeforeQueryExport($strSQL, $strWhereClause, $strOrderBy, $pageObject);
    }
    //	Rebuild SQL if needed
    if ($strSQL != $strSQLbak) {
        //	changed $strSQL - old style
        $numrows = GetRowCount($strSQL, $pageObject->connection);
    } else {
        $strSQL = SQLQuery::gSQLWhere_having($gQuery->HeadToSql(), $gQuery->FromToSql() . $joinFromPart, $gQuery->WhereToSql(), $gQuery->GroupByToSql(), $gQuery->Having()->toSql($gQuery), $strWhereClause, $strHavingClause, $strSearchCriteria);
        $strSQL .= " " . trim($strOrderBy);
        $rowcount = false;
        if ($eventObj->exists("ListGetRowCount")) {
            $masterKeysReq = array();
            for ($i = 0; $i < count($pageObject->detailKeysByM); $i++) {
                $masterKeysReq[] = $_SESSION[$strTableName . "_masterkey" . ($i + 1)];
            }
            $rowcount = $eventObj->ListGetRowCount($pageObject->searchClauseObj, $_SESSION[$strTableName . "_mastertable"], $masterKeysReq, $selected_recs, $pageObject);
        }
        if ($rowcount !== false) {
            $numrows = $rowcount;
        } else {
            $numrows = SQLQuery::gSQLRowCount_int($gQuery->HeadToSql(), $gQuery->FromToSql() . $joinFromPart, $gQuery->WhereToSql(), $gQuery->GroupByToSql(), $gQuery->Having()->toSql($gQuery), $strWhereClause, $strHavingClause, $pageObject->connection, $strSearchCriteria);
Esempio n. 5
0
 /**
  * Builds SQL query, for retrieve data from DB
  *
  */
 function buildSQL()
 {
     $this->gstrOrderBy = $this->gQuery->OrderByToSql();
     $this->gsqlHead = $this->gQuery->HeadToSql();
     $this->gsqlFrom = $this->gQuery->FromToSql();
     $this->gsqlWhereExpr = $this->gQuery->WhereToSql();
     $this->gsqlGroupBy = $this->gQuery->GroupByToSql();
     $this->gsqlHaving = $this->gQuery->Having()->toSql($gQuery);
     $agregateFields = $this->pSet->getListOfFieldsByExprType(true);
     $this->searchClauseObj->haveAgregateFields = count($agregateFields) > 0;
     $searchWhereClause = $this->searchClauseObj->getWhere($this->pSet->getListOfFieldsByExprType(false), $this->controls);
     $searchHavingClause = $this->searchClauseObj->getWhere($agregateFields, $this->controls);
     $this->strWhereClause = whereAdd($this->strWhereClause, $searchWhereClause);
     $this->strHavingClause = whereAdd($this->strHavingClause, $searchHavingClause);
     $strSecuritySql = SecuritySQL("Search", $this->tName);
     $this->strWhereClause = whereAdd($this->strWhereClause, $strSecuritySql);
     if ($this->noRecordsFirstPage && !count($_GET) && !count($_POST)) {
         $this->strWhereClause = whereAdd($this->strWhereClause, "1=0");
     }
     //add where clause with foreign keys of current table and it's master table master keys
     $where = $this->addWhereWithMasterTable();
     $this->strWhereClause = whereAdd($this->strWhereClause, $where);
     if ($this->dbType == nDATABASE_DB2) {
         $this->gsqlHead .= ", ROW_NUMBER() over () as DB2_ROW_NUMBER  ";
     }
     $this->strSearchCriteria = postvalue('criteria');
     if ($this->searchClauseObj->isUsedSearchFor && !$this->searchClauseObj->isUsedFieldsForSearch) {
         $this->strSearchCriteria = "or";
     }
     $strSQL = SQLQuery::gSQLWhere_having($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause, $this->strSearchCriteria);
     //	order by
     $strSQL .= " " . trim($this->strOrderBy);
     //	save SQL for use in "Export" and "Printer-friendly" pages
     $_SESSION[$this->sessionPrefix . "_sql"] = $strSQL;
     $_SESSION[$this->sessionPrefix . "_where"] = $this->strWhereClause;
     $_SESSION[$this->sessionPrefix . "_having"] = $this->strHavingClause;
     $_SESSION[$this->sessionPrefix . "_criteria"] = $this->strSearchCriteria;
     $_SESSION[$this->sessionPrefix . "_order"] = $this->strOrderBy;
     //	select and display records
     $this->addMasterDetailSubQuery();
     $strSQLbak = $strSQL;
     if ($this->eventExists("BeforeQueryList")) {
         $tstrWhereClause = $this->strWhereClause;
         $tstrOrderBy = $this->strOrderBy;
         $this->eventsObject->BeforeQueryList($strSQL, $tstrWhereClause, $tstrOrderBy, $this);
         $this->strWhereClause = $tstrWhereClause;
         $this->strOrderBy = $tstrOrderBy;
     }
     //	Rebuild SQL if needed
     if ($strSQL != $strSQLbak) {
         //	changed $strSQL - old style
         $this->numRowsFromSQL = GetRowCount($strSQL);
     } else {
         $strSQL = SQLQuery::gSQLWhere_having($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause, $this->strSearchCriteria);
         $strSQL .= " " . trim($this->strOrderBy);
         $rowcount = false;
         if ($this->eventExists("ListGetRowCount")) {
             $rowcount = $this->eventsObject->ListGetRowCount($this->searchClauseObj, $this->masterTable, $this->masterKeysReq, null, $this);
         }
         if ($rowcount !== false) {
             $this->numRowsFromSQL = $rowcount;
         } else {
             $this->numRowsFromSQL = SQLQuery::gSQLRowCount_int($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause, $this->strSearchCriteria);
         }
     }
     LogInfo($strSQL);
     $this->querySQL = $strSQL;
 }
Esempio n. 6
0
 protected function calcRowCount()
 {
     global $gQuery;
     $strSQLbak = $this->sqlParts["sql"];
     $sql = $this->sqlParts["sql"];
     $where = $this->sqlParts["where"];
     $orderby = $this->sqlParts["orderby"];
     if ($this->eventsObject->exists("BeforeQueryPrint")) {
         $this->eventsObject->BeforeQueryPrint($sql, $where, $orderby, $this);
     }
     //	Rebuild SQL if needed
     if ($sql != $strSQLbak) {
         //	changed $strSQL - old style
         $this->totalRowCount = GetRowCount($sql, $this->connection);
         return;
     }
     // rebuild sql
     $this->sqlParts["where"] = $where;
     $this->sqlParts["orderby"] = $orderby;
     $this->sqlParts["sql"] = SQLQuery::gSQLWhere_having($gQuery->HeadToSql(), $gQuery->FromToSql() . $this->sqlParts["join"], $gQuery->WhereToSql(), $gQuery->GroupByToSql(), $gQuery->Having()->toSql($gQuery), $this->sqlParts["where"], $this->sqlParts["having"], $this->sqlParts["searchCriteria"]);
     $this->sqlParts["sql"] .= " " . trim($this->sqlParts["orderby"]);
     if ($this->eventsObject->exists("ListGetRowCount")) {
         $this->totalRowCount = $this->eventsObject->ListGetRowCount($this->searchClauseObj, $this->masterTable, $this->masterKeys, $this->selectedRecords, $this);
     }
     if ($this->totalRowCount === false) {
         $this->totalRowCount = SQLQuery::gSQLRowCount_int($gQuery->HeadToSql(), $gQuery->FromToSql() . $this->sqlParts["join"], $gQuery->WhereToSql(), $gQuery->GroupByToSql(), $gQuery->Having()->toSql($gQuery), $this->sqlParts["where"], $this->sqlParts["having"], $this->connection, $this->sqlParts["searchCriteria"]);
     }
 }
Esempio n. 7
0
    print '  -  ID #' . $objRow[$strPkColumnName] . '  -  ' . $objRow['strAddress1'] . ' ' . $objRow['strCity'] . "\r\n";
    ParentPagerAddress::CreateOrUpdateForMsSqlRow($objRow);
}
///////////////////////////
// ParentPager Child Records
////////////////////////////
$strTableName = 'tblChildInStationHistory';
$strPkColumnName = 'lngChildHistoryID';
$intRowCount = GetRowCount($strTableName);
$intCurrentRow = 0;
$objResult = GetPkResultForTableColumn($strTableName, $strPkColumnName);
while ($objRow = mssql_fetch_assoc($objResult)) {
    printf('[%6s/%6s]', $intCurrentRow++, $intRowCount);
    $objRow = GetRowForTableColumnRow($strTableName, $strPkColumnName, $objRow);
    print '  -  ID #' . $objRow[$strPkColumnName] . "\r\n";
    ParentPagerChildHistory::CreateOrUpdateForMsSqlRow($objRow);
}
///////////////////////////
// ParentPager Volunteer Records
////////////////////////////
$strTableName = 'tblAttendantInStationHistory';
$strPkColumnName = 'lngAttendantHistoryID';
$intRowCount = GetRowCount($strTableName);
$intCurrentRow = 0;
$objResult = GetPkResultForTableColumn($strTableName, $strPkColumnName);
while ($objRow = mssql_fetch_assoc($objResult)) {
    printf('[%6s/%6s]', $intCurrentRow++, $intRowCount);
    $objRow = GetRowForTableColumnRow($strTableName, $strPkColumnName, $objRow);
    print '  -  ID #' . $objRow[$strPkColumnName] . "\r\n";
    ParentPagerAttendantHistory::CreateOrUpdateForMsSqlRow($objRow);
}
 /**
  * Builds SQL query, for retrieve data from DB
  *
  */
 function buildSQL()
 {
     global $gQuery;
     $searchWhereClause = $this->searchClauseObj->getWhere(GetListOfFieldsByExprType(false, $this->tName));
     $searchHavingClause = $this->searchClauseObj->getWhere(GetListOfFieldsByExprType(true, $this->tName));
     $this->strWhereClause = whereAdd($this->strWhereClause, $searchWhereClause);
     $this->strHavingClause = whereAdd($this->strHavingClause, $searchHavingClause);
     $strSecuritySql = SecuritySQL("Search", $this->tName);
     $this->strWhereClause = whereAdd($this->strWhereClause, $strSecuritySql);
     if ($this->noRecordsFirstPage && !count($_GET) && !count($_POST)) {
         $this->strWhereClause = whereAdd($this->strWhereClause, "1=0");
     }
     //add where clause with foreign keys of current table and it's master table master keys
     $where = $this->addWhereWithMasterTable();
     $this->strWhereClause = whereAdd($this->strWhereClause, $where);
     if ($this->dbType == nDATABASE_DB2) {
         $this->gsqlHead .= ", ROW_NUMBER() over () as DB2_ROW_NUMBER  ";
     }
     $strSQL = gSQLWhere_having($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause);
     //	order by
     $strSQL .= " " . trim($this->strOrderBy);
     //	save SQL for use in "Export" and "Printer-friendly" pages
     $_SESSION[$this->sessionPrefix . "_sql"] = $strSQL;
     $_SESSION[$this->sessionPrefix . "_where"] = $this->strWhereClause;
     $_SESSION[$this->sessionPrefix . "_having"] = $this->strHavingClause;
     $_SESSION[$this->sessionPrefix . "_order"] = $this->strOrderBy;
     $_SESSION[$this->sessionPrefix . "_arrFieldForSort"] = $this->arrFieldForSort;
     $_SESSION[$this->sessionPrefix . "_arrHowFieldSort"] = $this->arrHowFieldSort;
     //	select and display records
     $this->addMasterDetailSubQuery();
     $strSQLbak = $strSQL;
     if ($this->eventExists("BeforeQueryList")) {
         $tstrWhereClause = $this->strWhereClause;
         $tstrOrderBy = $this->strOrderBy;
         $this->eventsObject->BeforeQueryList($strSQL, $tstrWhereClause, $tstrOrderBy);
         $this->strWhereClause = $tstrWhereClause;
         $this->strOrderBy = $tstrOrderBy;
     }
     //	Rebuild SQL if needed
     if ($strSQL != $strSQLbak) {
         //	changed $strSQL - old style
         $this->numRowsFromSQL = GetRowCount($strSQL);
     } else {
         $strSQL = gSQLWhere_having($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause);
         $strSQL .= " " . trim($this->strOrderBy);
         $rowcount = false;
         if ($this->eventExists("ListGetRowCount")) {
             $rowcount = $this->eventsObject->ListGetRowCount($this->searchClauseObj, $this->masterTable, $this->masterKeysReq, null);
         }
         if ($rowcount !== false) {
             $this->numRowsFromSQL = $rowcount;
         } else {
             $this->numRowsFromSQL = gSQLRowCount_int($this->gsqlHead, $this->gsqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause);
         }
     }
     LogInfo($strSQL);
     $this->querySQL = $strSQL;
 }
Esempio n. 9
0
 /**
  * Builds SQL query, for retrieve data from DB
  */
 function buildSQL()
 {
     $this->gstrOrderBy = $this->gQuery->OrderByToSql();
     $this->gsqlHead = $this->gQuery->HeadToSql();
     if ($this->connection->dbType == nDATABASE_DB2) {
         $this->gsqlHead .= ", ROW_NUMBER() over () as DB2_ROW_NUMBER ";
     }
     // add to gsqlHead subquery counting the number of details
     $this->addMasterDetailSubQuery();
     $this->gsqlFrom = $this->gQuery->FromToSql();
     $this->gsqlWhereExpr = $this->gQuery->WhereToSql();
     $this->gsqlGroupBy = $this->gQuery->GroupByToSql();
     $this->gsqlHaving = $this->gQuery->Having()->toSql($this->gQuery);
     $whereComponents = $this->getWhereComponents();
     $searchWhere = $whereComponents["searchWhere"];
     $searchHaving = $whereComponents["searchHaving"];
     $joinFromPart = $whereComponents["joinFromPart"];
     $filterWhere = $this->getFiltersWhere();
     $filterHaving = $this->getFiltersHaving();
     //$this->strWhereClause could contain some conditions for a lookup list page so It needs combining with commonWhere
     $sqlWhere = combineSQLCriteria(array($whereComponents["commonWhere"], $filterWhere, $this->strWhereClause));
     $sqlHaving = combineSQLCriteria(array($whereComponents["commonHaving"], $filterHaving));
     $sqlFrom = $this->gsqlFrom . $joinFromPart;
     $strSecuritySql = $this->SecuritySQL("Search", $this->tName);
     // where clause with foreign keys of current table and it's master table master keys
     $masterWhere = $this->getMasterTableSQLClause();
     $this->strWhereClause = combineSQLCriteria(array($searchWhere, $strSecuritySql, $masterWhere, $filterWhere));
     $this->strHavingClause = combineSQLCriteria(array($searchHaving, $filterHaving));
     if ($this->mode != LIST_DETAILS && $this->noRecordsFirstPage && !$this->isRequiredSearchRunning()) {
         $this->strWhereClause = whereAdd($this->strWhereClause, "1=0");
         $sqlWhere = combineSQLCriteria(array($sqlWhere, "1=0"));
     }
     $searchCombineType = $whereComponents["searchUnionRequired"] ? "or" : "and";
     $strSQL = SQLQuery::gSQLWhere_having($this->gsqlHead, $sqlFrom, $sqlWhere, $this->gsqlGroupBy, $sqlHaving, $searchWhere, $searchHaving, $searchCombineType);
     $strSQL .= " " . trim($this->strOrderBy);
     //	save SQL parts to use in "Export" and "Printer-friendly" pages and to get prev\next records
     $_SESSION[$this->sessionPrefix . "_sql"] = $strSQL;
     $_SESSION[$this->sessionPrefix . "_where"] = $this->strWhereClause;
     $_SESSION[$this->sessionPrefix . "_having"] = $this->strHavingClause;
     $_SESSION[$this->sessionPrefix . "_criteria"] = $searchCombineType;
     $_SESSION[$this->sessionPrefix . "_order"] = $this->strOrderBy;
     $_SESSION[$this->sessionPrefix . "_joinFromPart"] = $joinFromPart;
     $strSQLbak = $strSQL;
     $whereModifiedInEvent = false;
     if ($this->eventExists("BeforeQueryList")) {
         $tstrWhereClause = $this->strWhereClause;
         $tstrOrderBy = $this->strOrderBy;
         $this->eventsObject->BeforeQueryList($strSQL, $tstrWhereClause, $tstrOrderBy, $this);
         $whereModifiedInEvent = $tstrWhereClause != $this->strWhereClause;
         $this->strWhereClause = $tstrWhereClause;
         $this->strOrderBy = $tstrOrderBy;
         //	Rebuild SQL if needed
         if ($strSQL != $strSQLbak) {
             //	changed $strSQL - old style
             $this->numRowsFromSQL = GetRowCount($strSQL, $this->connection);
         } else {
             if ($whereModifiedInEvent || $this->strOrderBy != $tstrOrderBy) {
                 $strSQL = SQLQuery::gSQLWhere_having($this->gsqlHead, $sqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause, $searchCombineType);
                 $strSQL .= " " . trim($this->strOrderBy);
             }
         }
     }
     $rowcount = false;
     if ($this->eventExists("ListGetRowCount")) {
         $rowcount = $this->eventsObject->ListGetRowCount($this->searchClauseObj, $this->masterTable, $this->masterKeysReq, null, $this);
     }
     if ($rowcount !== false) {
         $this->numRowsFromSQL = $rowcount;
     } else {
         if ($whereModifiedInEvent) {
             $this->numRowsFromSQL = SQLQuery::gSQLRowCount_int($this->gsqlHead, $sqlFrom, $this->gsqlWhereExpr, $this->gsqlGroupBy, $this->gsqlHaving, $this->strWhereClause, $this->strHavingClause, $this->connection, $searchCombineType);
         } else {
             $this->numRowsFromSQL = SQLQuery::gSQLRowCount_int($this->gsqlHead, $sqlFrom, $sqlWhere, $this->gsqlGroupBy, $sqlHaving, $searchWhere, $searchHaving, $this->connection, $searchCombineType);
         }
     }
     LogInfo($strSQL);
     $this->querySQL = $strSQL;
 }