foreach ($fieldsArr as $f) { $fEditFormat = $gSettings->getEditFormat($f); if ($fEditFormat != EDIT_FORMAT_LOOKUP_WIZARD || GoodFieldName($f) != $field) { continue; } $lookupField = $f; $LookupType = $gSettings->getLookupType($f); if ($LookupType == LT_LOOKUPTABLE || $LookupType == LT_QUERY) { $lookupTable = $gSettings->getLookupTable($f); if ($LookupType == LT_QUERY) { $lookupConnection = $cman->byTable($lookupTable); } else { $connId = $gSettings->getNotProjectLookupTableConnId($f); $lookupConnection = strlen($connId) ? $cman->byId($connId) : $cman->getDefault(); } $linkFieldName = $gSettings->getLinkField($f); $displayFieldName = $gSettings->getDisplayField($f); $linkAndDisplaySame = $displayFieldName == $linkFieldName; $lookupOrderBy = $gSettings->getLookupOrderBy($f); $lwDisplayField = RunnerPage::sqlFormattedDisplayField($f, $lookupConnection, $gSettings); if ($lookupConnection->dbType == nDATABASE_MSSQLServer) { $strUniqueOrderBy = $lookupOrderBy; } if ($LookupType == LT_QUERY) { $lookupPSet = new ProjectSettings($lookupTable, $pageType); $lookupCipherer = new RunnerCipherer($lookupTable); $lookupQueryObj = $lookupPSet->getSQLQuery(); if ($gSettings->getCustomDisplay($f)) { $lookupQueryObj->AddCustomExpression($displayFieldName, $lookupPSet, $strTableName, $f); } $lookupQueryObj->ReplaceFieldsWithDummies($lookupPSet->getBinaryFieldsIndices());
function update_report_totals() { $root =& $_SESSION["webreports"]; // ensure all fields in reports are listed in the tables $tables = getReportTablesList(); if (is_wr_custom()) { $fields = WRGetFieldsList(''); } $arr_unset = array(); foreach ($root["totals"] as $idx => $fld) { if (array_search($fld["table"], $tables) !== false || is_null($fld["table"]) && is_wr_custom()) { if (!is_wr_custom()) { $fields = WRGetFieldsList($fld["table"]); } if (array_search($fld["name"], $fields) !== false) { continue; } } // remove $total if found $arr_unset[] = $idx; } foreach ($arr_unset as $idx => $fld) { unset($root["totals"][$fld]); } // ensure all fields appear in the totals $all_fields = array(); foreach ($tables as $t) { $fields = WRGetFieldsList($t); foreach ($fields as $f) { if (is_wr_db()) { $all_fields[] = $t . "." . $f; } else { $all_fields[] = $f; } } } // ensure all series fields appear in the totals foreach ($all_fields as $fieldItem) { $f = $fieldItem; $table = ""; $fld = ""; if (is_wr_db()) { WRSplitFieldName($f, $table, $fld); } else { $table = $tables[0]; $fld = $f; $f = $table . "_" . $f; } if (array_key_exists(GoodFieldName($f), $root["totals"])) { continue; } $pSet = new ProjectSettings($table, PAGE_LIST); $root['totals'][GoodFieldName($f)] = array(); $root['totals'][GoodFieldName($f)]["name"] = $fld; $root['totals'][GoodFieldName($f)]["table"] = $table; $root['totals'][GoodFieldName($f)]["label"] = $pSet->label($fld); $root['totals'][GoodFieldName($f)]["show"] = "true"; $root['totals'][GoodFieldName($f)]["min"] = "false"; $root['totals'][GoodFieldName($f)]["max"] = "false"; $root['totals'][GoodFieldName($f)]["sum"] = "false"; $root['totals'][GoodFieldName($f)]["avg"] = "false"; $root['totals'][GoodFieldName($f)]["curr"] = "false"; $root['totals'][GoodFieldName($f)]["search"] = ""; $root['totals'][GoodFieldName($f)]["view_format"] = GetGenericViewFormat($table, $fld); $root['totals'][GoodFieldName($f)]["edit_format"] = GetGenericEditFormat($table, $fld); $root['totals'][GoodFieldName($f)]["display_field"] = $pSet->getDisplayField($fld); $root['totals'][GoodFieldName($f)]["linkfield"] = $pSet->getLinkField($fld); $root['totals'][GoodFieldName($f)]["show_thumbnail"] = $pSet->showThumbnail($fld); $root['totals'][GoodFieldName($f)]["need_encode"] = $pSet->NeedEncode($fld); $root['totals'][GoodFieldName($f)]["thumbnail"] = $pSet->getStrThumbnail($fld); $root['totals'][GoodFieldName($f)]["listformatobj_imgwidth"] = $pSet->getImageWidth($fld); $root['totals'][GoodFieldName($f)]["listformatobj_imgheight"] = $pSet->getImageHeight($fld); $root['totals'][GoodFieldName($f)]["hlprefix"] = $pSet->getLinkPrefix($fld); $root['totals'][GoodFieldName($f)]["listformatobj_filename"] = $pSet->getFilenameField($fld); $root['totals'][GoodFieldName($f)]["lookupobj_lookuptype"] = $pSet->getLookupType($fld); $root['totals'][GoodFieldName($f)]["editformatobj_lookupobj_customdispaly"] = $pSet->getDisplayField($fld); $root['totals'][GoodFieldName($f)]["editformatobj_lookupobj_table"] = $pSet->getLookupTable($fld); $root['totals'][GoodFieldName($f)]["editformatobj_lookupobj_where"] = GetLWWhere($fld, PAGE_REPORT); } $_SESSION["webreports"] = $root; }
/** * @param String field * @param String id (optional) * @param Array extraParmas (optional) * @return Control */ function getControl($field, $id = "", $extraParmas = array()) { if (count($extraParmas) && $extraParmas["getDetKeyReadOnlyCtrl"]) { include_once getabspath("classes/controls/Control.php"); $cTypes = new ControlTypes(); $className = $cTypes->forEdit[EDIT_FORMAT_READONLY]; $ctrl = createControlClass($className, $field, $this->pageObject != null ? $this->pageObject : $this, $id, $this->connection); $ctrl->container = $this; return $ctrl; } if (count($extraParmas) && $extraParmas["getConrirmFieldCtrl"]) { include_once getabspath("classes/controls/Control.php"); $cTypes = new ControlTypes(); $className = $cTypes->forEdit[EDIT_FORMAT_PASSWORD]; $ctrl = createControlClass($className, $field, $this->pageObject != null ? $this->pageObject : $this, $id, $this->connection); if ($extraParmas['isConfirm']) { $ctrl->field = GetPasswordField(); } $ctrl->container = $this; return $ctrl; } // if conrol does not created previously if (!array_key_exists($field, $this->controls)) { include_once getabspath("classes/controls/Control.php"); $userControl = false; $cTypes = new ControlTypes(); $editFormat = $this->pSetEdit->getEditFormat($field); if ($editFormat == EDIT_FORMAT_TEXT_FIELD && IsDateFieldType($this->pSetEdit->getFieldType($field))) { $editFormat = EDIT_FORMAT_DATE; } if ($this->pageType == PAGE_SEARCH || $this->pageType == PAGE_LIST) { // Text field may be Lookup field on some page $pageTypebyLookupFormat = $this->pSetEdit->getPageTypeByFieldEditFormat($field, EDIT_FORMAT_LOOKUP_WIZARD); if ($editFormat == EDIT_FORMAT_TEXT_FIELD && $pageTypebyLookupFormat != "") { $localPSet = new ProjectSettings($this->pSetEdit->_table, $pageTypebyLookupFormat); if ($localPSet->getLinkField($field) != $localPSet->getDisplayField($field)) { $className = "LookupTextField"; } else { $className = $cTypes->forSearch[$editFormat]; } } else { $className = $cTypes->forSearch[$editFormat]; } } else { $className = $cTypes->forEdit[$editFormat]; } if ($className == $cTypes->forEdit[EDIT_FORMAT_FILE] && $this->pSetEdit->isBasicUploadUsed($field)) { $className = "FileFieldSingle"; } if (!$className) { if ($editFormat != "") { $className = "Edit" . $editFormat; $userControl = true; include_once getabspath("classes/controls/UserControl.php"); if (!is_null($this->pageObject)) { $this->pageObject->AddJSFile("include/runnerJS/controls/" . $className . ".js", "include/runnerJS/Control.js"); } } else { $className = $cTypes->forEdit[EDIT_FORMAT_TEXT_FIELD]; } } $this->controls[$field] = createControlClass($className, $field, $this->pageObject != null ? $this->pageObject : $this, $id, $this->connection); $this->controls[$field]->container = $this; if ($userControl) { $this->controls[$field]->format = $className; $this->controls[$field]->initUserControl(); } } if ($id !== "") { $this->controls[$field]->setID($id); } return $this->controls[$field]; }
function buildLookupSQL($pageType, $field, $table, $parentVal, $childVal = "", $doCategoryFilter = true, $doValueFilter = false, $addCategoryField = false, $doWhereFilter = true, $oneRecordMode = false, $doValueFilterByLinkField = false) { global $strTableName; if (!strlen($table)) { $table = $strTableName; } $pSet = new ProjectSettings($table, $pageType); // read settings $nLookupType = $pSet->getLookupType($field); if ($nLookupType != LT_LOOKUPTABLE && $nLookupType != LT_QUERY) { return ""; } $lookupTable = $pSet->getLookupTable($field); $displayFieldName = $pSet->getDisplayField($field); $linkFieldName = $pSet->getLinkField($field); $linkAndDisplaySame = $displayFieldName == $linkFieldName; $bUnique = $pSet->isLookupUnique($field); $strLookupWhere = GetLWWhere($field, $pageType, $table); $strOrderBy = $pSet->getLookupOrderBy($field); if (strlen($strOrderBy)) { $strOrderBy = GetFullFieldName($strOrderBy, $lookupTable); if ($pSet->isLookupDesc($field)) { $strOrderBy .= ' DESC'; } } $bDesc = $pSet->isLookupDesc($field); $strCategoryFilter = $pSet->getCategoryFilter($field); if ($nLookupType == LT_QUERY) { $lookupPSet = new ProjectSettings($lookupTable, $pageType); $cipherer = new RunnerCipherer($lookupTable, $lookupPSet); } else { $cipherer = new RunnerCipherer($table, $pSet); } if ($doCategoryFilter) { if ($nLookupType == LT_QUERY) { $parentVal = $cipherer->MakeDBValue($strCategoryFilter, $parentVal, "", $lookupTable, true); } else { $parentVal = make_db_value($pSet->getCategoryControl($field), $parentVal, '', '', $table); } } if ($doValueFilter) { if ($pageType != PAGE_SEARCH || $doValueFilterByLinkField) { if ($nLookupType == LT_QUERY) { $childWhereField = $pSet->getLWLinkField($field, false); } else { $childWhereField = $pSet->getLWLinkField($field, true); } } else { if ($nLookupType == LT_QUERY) { $childWhereField = $pSet->getLWDisplayField($field, false); } else { $childWhereField = $pSet->getLWDisplayField($field, true); } } if ($nLookupType == LT_QUERY) { $childVal = $cipherer->MakeDBValue($childWhereField, $childVal, "", $lookupTable, true); } else { if ($linkAndDisplaySame) { $childVal = make_db_value($field, $childVal, '', '', $table); } else { $childVal = add_db_quotes($field, $childVal, $table, 200); } } } // build Where clause $categoryWhere = ""; $childWhere = ""; if ($pSet->useCategory($field) && $doCategoryFilter) { $condition = "=" . $parentVal; if ($parentVal === "null") { $condition = " is null"; } if ($nLookupType == LT_QUERY) { $categoryWhere = $cipherer->GetFieldName(AddFieldWrappers($strCategoryFilter), $strCategoryFilter) . $condition; } else { $categoryWhere = AddFieldWrappers($strCategoryFilter) . $condition; } } if ($doValueFilter) { $condition = "=" . $childVal; if ($childVal === "null") { $condition = " is null"; } if ($nLookupType == LT_QUERY) { if ($pageType != PAGE_SEARCH || $pSet->lookupControlType($field) == LCT_LIST || $doValueFilterByLinkField) { $childWhere = GetFullFieldName($pSet->getLinkField($field), $lookupTable, false) . $condition; } else { if (!$pSet->getCustomDisplay($field)) { $childWhere = $cipherer->GetFieldName($lookupPSet->getFullNameField($displayFieldName), $field) . $condition; } else { $childWhere = $pSet->getDisplayField($field) . $condition; } } } else { if ($pageType != PAGE_SEARCH || $doValueFilterByLinkField) { $childWhere = $pSet->getLWLinkField($field, true) . $condition; } else { $childWhere = $pSet->getLWDisplayField($field, true) . $condition; } } } $strWhere = ""; if ($doWhereFilter && strlen($strLookupWhere)) { $strWhere = "(" . $strLookupWhere . ")"; } if (strlen($categoryWhere)) { if (strlen($strWhere)) { $strWhere .= " AND "; } $strWhere .= $categoryWhere; } if (strlen($childWhere)) { if (strlen($strWhere)) { $strWhere .= " AND "; } $strWhere .= $childWhere; } // build SQL string if ($nLookupType == LT_QUERY) { $lookupQueryObj = $lookupPSet->getSQLQuery(); if ($pSet->getCustomDisplay($field)) { $lookupQueryObj->AddCustomExpression($displayFieldName, $lookupPSet, $table, $field); } $lookupQueryObj->ReplaceFieldsWithDummies($lookupPSet->getBinaryFieldsIndices()); $strWhere = whereAdd($lookupQueryObj->m_where->toSql($lookupQueryObj), $strWhere); $LookupSQL = $lookupQueryObj->toSql($strWhere, strlen($strOrderBy) ? ' ORDER BY ' . $strOrderBy : null, null, $oneRecordMode); } else { $LookupSQL = "SELECT "; if ($bUnique && !$oneRecordMode) { $LookupSQL .= "DISTINCT "; } $LookupSQL .= $pSet->getLWLinkField($field); if (!$linkAndDisplaySame) { $LookupSQL .= "," . $pSet->getLWDisplayField($field); } if ($addCategoryField && strlen($strCategoryFilter)) { $LookupSQL .= "," . AddFieldWrappers($strCategoryFilter); } $LookupSQL .= " FROM " . AddTableWrappers($lookupTable); if (strlen($strWhere)) { $LookupSQL .= " WHERE " . $strWhere; } // order by clause if (strlen($strOrderBy)) { $LookupSQL .= " ORDER BY " . AddTableWrappers($lookupTable) . "." . $strOrderBy; } if ($oneRecordMode) { $LookupSQL .= " limit 1"; } } return $LookupSQL; }
/** * Create new control (if needed) for view field, and return it * @param {string} field name * @param {string} predefined view format */ public function getControl($field, $format = null) { // if conrol does not created previously if (!array_key_exists($field, $this->viewControls)) { include_once getabspath("classes/controls/ViewControl.php"); $vcTypes = new ViewControlTypes(); $editFormat = $this->pSet->getEditFormat($field); if (is_null($format)) { $localPSet = $this->pSet; $lookupPageType = ""; if (!$this->isLocal) { $lookupPageType = $this->pSet->getPageTypeByFieldEditFormat($field, EDIT_FORMAT_LOOKUP_WIZARD); if ($lookupPageType != "") { $localPSet = new ProjectSettings($this->pSet->_table, $lookupPageType); } } if (!$this->isLocal && ($editFormat == EDIT_FORMAT_LOOKUP_WIZARD || $lookupPageType != "") && ($localPSet->getLookupType($field) == LT_LOOKUPTABLE || $localPSet->getLookupType($field) == LT_QUERY) && $localPSet->getLinkField($field) != $localPSet->getDisplayField($field)) { $viewFormat = FORMAT_LOOKUP_WIZARD; } else { $viewFormat = $this->pSet->getViewFormat($field); } } else { $viewFormat = $format; } $className = $vcTypes->viewTypes[$viewFormat]; if ($className == "" && $viewFormat != "") { $className = "View" . $viewFormat; $userControl = true; include_once getabspath("classes/controls/ViewUserControl.php"); } if ($className != "") { $this->viewControls[$field] = createViewControlClass($className, $field, $this, $this->pageObject); } else { $this->viewControls[$field] = new ViewControl($field, $this, $this->pageObject); } if ($userControl) { $this->viewControls[$field]->viewFormat = $className; $this->viewControls[$field]->init(); $this->viewControls[$field]->initUserControl(); } } return $this->viewControls[$field]; }
function comlete_report_session_default_values($isedit = "") { $root =& $_SESSION["webreports"]; $table = $root['tables'][0]; $arr_fields = WRGetNBFieldsList($table); $arr_fields_all = WRGetFieldsList($table); $gfield = $arr_fields[0]; if (is_wr_db()) { $gfield = $table . "." . $arr_fields[0]; } $garrfield = array("name" => $gfield, "int_type" => "0", "ss" => "true", "group_order" => "1", "color1" => "FF0000", "color2" => "CC0000"); $garrSummary = array(); $garrSummary["name"] = "Summary"; $garrSummary["crosstable"] = "false"; $garrSummary["sps"] = "true"; $garrSummary["sds"] = "true"; $garrSummary["sgs"] = "true"; $garrSummary["sum_x"] = "true"; $garrSummary["sum_y"] = "true"; $garrSummary["sum_total"] = "true"; $root['group_fields'] = array($garrfield, $garrSummary); $root['totals'] = array(); $pSet = new ProjectSettings($table); foreach ($arr_fields_all as $fld) { $root['totals'][GoodFieldName($table . "." . $fld)] = array(); $root['totals'][GoodFieldName($table . "." . $fld)]["name"] = $fld; $root['totals'][GoodFieldName($table . "." . $fld)]["table"] = $table; $root['totals'][GoodFieldName($table . "." . $fld)]["label"] = $pSet->label($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["show"] = "true"; $root['totals'][GoodFieldName($table . "." . $fld)]["min"] = "false"; $root['totals'][GoodFieldName($table . "." . $fld)]["max"] = "false"; $root['totals'][GoodFieldName($table . "." . $fld)]["sum"] = "false"; $root['totals'][GoodFieldName($table . "." . $fld)]["avg"] = "false"; $root['totals'][GoodFieldName($table . "." . $fld)]["curr"] = "false"; $root['totals'][GoodFieldName($table . "." . $fld)]["search"] = ""; $root['totals'][GoodFieldName($table . "." . $fld)]["view_format"] = GetGenericViewFormat($table, $fld); $root['totals'][GoodFieldName($table . "." . $fld)]["edit_format"] = GetGenericEditFormat($table, $fld); $root['totals'][GoodFieldName($table . "." . $fld)]["display_field"] = $pSet->getDisplayField($fld); if (is_wr_project()) { $root['totals'][GoodFieldName($table . "." . $fld)]["linkfield"] = $pSet->getLinkField($fld); } else { $root['totals'][GoodFieldName($table . "." . $fld)]["linkfield"] = ""; } $root['totals'][GoodFieldName($table . "." . $fld)]["show_thumbnail"] = $pSet->showThumbnail($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["need_encode"] = $pSet->NeedEncode($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["thumbnail"] = $pSet->getStrThumbnail($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["listformatobj_imgwidth"] = $pSet->getImageWidth($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["listformatobj_imgheight"] = $pSet->getImageHeight($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["hlprefix"] = $pSet->getLinkPrefix($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["listformatobj_filename"] = $pSet->getFilenameField($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["lookupobj_lookuptype"] = $pSet->getLookupType($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["editformatobj_lookupobj_customdispaly"] = $pSet->getDisplayField($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["editformatobj_lookupobj_table"] = $pSet->getLookupTable($fld); $root['totals'][GoodFieldName($table . "." . $fld)]["editformatobj_lookupobj_where"] = GetLWWhere($fld, PAGE_REPORT); } $root['sort_fields'] = array(array("name" => $gfield, "desc" => "false")); if (!$isedit) { $root['miscellaneous'] = array("type" => "stepped", "print_friendly" => "true", "lines_num" => "30"); $root['settings'] = array("name" => GoodFieldName($root['tables'][0]) . '_' . CheckLastID('report'), "title" => $root['tables'][0] . ' Report ' . CheckLastID('report'), "status" => "private"); $_SESSION["webobject"]["name"] = GoodFieldName($root['tables'][0]) . '_' . CheckLastID('report'); $root['owner'] = $_SESSION["UserID"]; $_SESSION['webreports']['tmp_active'] = "x"; } $root['table_name'] = $root['tables'][0]; $root['short_table_name'] = GetTableURL($root['tables'][0]); }