Esempio n. 1
0
 /**
  * Replase field expression with value from $bizObj
  *
  * @param string $expression
  * @param BizDataObj $bizObj
  * @return mixed
  */
 protected static function replaceFieldsExpr($expression, $bizObj)
 {
     $script = "";
     $start = 0;
     // replace [field] with field value
     while (true) {
         $pos0 = strpos($expression, "[", $start);
         $pos1 = strpos($expression, "]", $start);
         if ($pos0 === false) {
             $script .= substr($expression, $start);
             break;
         }
         if ($pos0 >= 0 && $pos1 > $pos0) {
             $script .= substr($expression, $start, $pos0 - $start);
             $start = $pos1 + 1;
             $fieldName = substr($expression, $pos0 + 1, $pos1 - $pos0 - 1);
             // get field value
             $fieldValue = $bizObj->getField($fieldName)->value;
             if ($fieldValue == null) {
                 $fieldValue = $bizObj->getFieldValue($fieldName);
             }
             if ($fieldValue !== null) {
                 $script .= $fieldValue;
             } else {
                 //$script .= substr($expression, $pos0, $pos1 - $pos0);
                 //return "fail to evaluate $expression";
                 return "";
             }
         } elseif ($pos0 >= 0 && $pos1 <= $pos0) {
             break;
         }
     }
     return $script;
 }
 /**
  * Set the association of the object
  *
  * @param ObjReference $objRef
  * @param BizDataObj $asscObj
  * @return void
  */
 protected function setAssociation($objRef, $asscObj)
 {
     $this->m_Association["AsscObjName"] = $asscObj->m_Name;
     $this->m_Association["Relationship"] = $objRef->m_Relationship;
     $this->m_Association["Table"] = $objRef->m_Table;
     $this->m_Association["Column"] = $objRef->m_Column;
     $this->m_Association["FieldRef"] = $objRef->m_FieldRef;
     $this->m_Association["FieldRefVal"] = $asscObj->getFieldValue($objRef->m_FieldRef);
     if ($objRef->m_Relationship == "M-M") {
         $this->m_Association["XTable"] = $objRef->m_XTable;
         $this->m_Association["XColumn1"] = $objRef->m_XColumn1;
         $this->m_Association["XColumn2"] = $objRef->m_XColumn2;
         $this->m_Association["XKeyColumn"] = $objRef->m_XKeyColumn;
         $this->m_Association["XDataObj"] = $objRef->m_XDataObj;
     }
 }