00001 <?php
00025 function inputValToRule($fieldName, $inputVal, $formObj)
00026 {
00027
00028
00029
00030
00031 $val = strtoupper(trim($inputVal));
00032
00033 if (($pos=strpos($val, " AND "))!==false)
00034 {
00035 $inputArr = explode(" AND ", $val);
00036 $retStr = null;
00037 foreach($inputArr as $v)
00038 $retStr .= ($retStr) ? " AND ".inputValToRule($fieldName, $v, $formObj) : inputValToRule($fieldName, $v, $formObj);
00039 return $retStr;
00040 }
00041 else if (($pos=strpos($val, " OR "))!==false)
00042 {
00043 $inputArr = explode(" OR ", $val);
00044 $retStr = null;
00045 foreach($inputArr as $v)
00046 $retStr .= ($retStr) ? " OR ".inputValToRule($fieldName, $v, $formObj) : inputValToRule($fieldName, $v, $formObj);
00047 return "(".$retStr.")";
00048 }
00049
00050
00051 if (($pos=strpos($val, "<>"))!==false || ($pos=strpos($val, "!="))!==false)
00052 {
00053 $opr = "<>";
00054 $oprlen = 2;
00055 }
00056 else if (($pos=strpos($val, ">="))!==false)
00057 {
00058 $opr = ">=";
00059 $oprlen = 2;
00060 }
00061 else if (($pos=strpos($val, ">"))!==false)
00062 {
00063 $opr = ">";
00064 $oprlen = 1;
00065 }
00066 else if (($pos=strpos($val, "<="))!==false)
00067 {
00068 $opr = "<=";
00069 $oprlen = 2;
00070 }
00071 else if (($pos=strpos($val, "<"))!==false)
00072 {
00073 $opr = "<";
00074 $oprlen = 1;
00075 }
00076 else if (($pos=strpos($val, "="))!==false)
00077 {
00078 $opr = "=";
00079 $oprlen = 1;
00080 }
00081 if ($opr)
00082 {
00083 $val = trim(substr($val, $pos+$oprlen));
00084 }
00085
00086 if (strpos($val, "*") !== false)
00087 {
00088 $opr = "LIKE";
00089 $val = str_replace("*", "%", $val);
00090 }
00091
00092
00093
00094 if (!$opr)
00095 $opr = "=";
00096
00097
00098 $bizField = $formObj->getDataObj()->getField($fieldName);
00099 $realValue = BizSystem::typeManager()->formattedStringToValue($bizField->m_Type, $bizField->m_Format, $val);
00100
00101
00102 $queryString = QueryStringParam::formatQueryString("[$fieldName]", $opr, $realValue);
00103 return $queryString;
00104
00105
00106 }
00107
00108 ?>