Example #1
0
 protected function _partConfig(Db_Query $query, Db_Query_Part $part)
 {
     $cfg = array();
     $fields = $part->getFields();
     $objectConfig = Db_Object_Config::getInstance($part->getObject());
     $mainPanel = new stdClass();
     $mainPanel->xtype = 'panel';
     $mainPanel->border = false;
     ksort($fields);
     foreach ($fields as $name => $config) {
         $obj = new stdClass();
         $obj->xtype = 'reportfield';
         $obj->valueSelected = $config['select'];
         $obj->valueTitle = $config['title'];
         $obj->valueAlias = $config['alias'];
         $obj->valueField = $name;
         $obj->valueIsLink = false;
         $obj->valueSelectSub = $config['selectSub'];
         $obj->valueObject = $part->getObject();
         $obj->valuePartId = $part->getId();
         $obj->valueSubObject = '';
         $obj->valueSubObjectTtile = '';
         if ($config['isLink'] && !$objectConfig->isDictionaryLink($name)) {
             $obj->valueIsLink = true;
             $child = $query->findChild($part->getId(), $name);
             if ($child !== false) {
                 $linked = $child->getObject();
             } else {
                 $linked = $objectConfig->getLinkedObject($name);
             }
             if ($linked) {
                 $obj->valueSubObject = $linked;
                 $obj->valueSubObjectTtile = Db_Object_Config::getInstance($linked)->get('title');
             }
         }
         $cfg[] = $obj;
     }
     $mainPanel->items = $cfg;
     return array('items' => $mainPanel, 'objectcfg' => array('join' => $part->joinType, 'title' => $objectConfig->get('title'), 'object' => $part->getObject(), 'childField' => $part->getChildField()));
 }
Example #2
0
 protected function _addSqlPart(Db_Query_Part $part, $sql, Db_Query_Part $parenPart, $countOnly = false)
 {
     if ($countOnly) {
         $fields = array();
     } else {
         $fields = $this->_extractFields($part);
         if (empty($fields)) {
             return;
         }
     }
     $parentTable = Db_Object_Config::getInstance($parenPart->getObject())->getTable();
     $curTable = Db_Object_Config::getInstance($part->getObject())->getTable();
     $condition = '`' . $parentTable . '`.`' . $part->parentField . '` = `' . $curTable . '`.`' . $part->childField . '`';
     switch ($part->joinType) {
         case Db_Query_Part::JOIN_INNER:
             $sql->joinInner($curTable, $condition, $fields);
             break;
         case Db_Query_Part::JOIN_LEFT:
             $sql->joinLeft($curTable, $condition, $fields);
             break;
         case Db_Query_Part::JOIN_RIGHT:
             $sql->joinRight($curTable, $condition, $fields);
             break;
     }
 }