示例#1
0
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());
示例#2
0
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];
 }
示例#4
0
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];
 }
示例#6
0
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]);
}