function GetDropDownFilter(&$fld, $FldVal, $FldOpr)
 {
     $FldName = $fld->FldName;
     $FldExpression = $fld->FldExpression;
     $FldDataType = $fld->FldDataType;
     $FldDelimiter = $fld->FldDelimiter;
     $FldVal = strval($FldVal);
     $sWrk = "";
     if ($FldVal == EWR_NULL_VALUE) {
         $sWrk = $FldExpression . " IS NULL";
     } elseif ($FldVal == EWR_NOT_NULL_VALUE) {
         $sWrk = $FldExpression . " IS NOT NULL";
     } elseif ($FldVal == EWR_EMPTY_VALUE) {
         $sWrk = $FldExpression . " = ''";
     } elseif ($FldVal == EWR_ALL_VALUE) {
         $sWrk = "1 = 1";
     } else {
         if (substr($FldVal, 0, 2) == "@@") {
             $sWrk = $this->GetCustomFilter($fld, $FldVal);
         } elseif ($FldDelimiter != "" && trim($FldVal) != "") {
             $sWrk = ewr_GetMultiSearchSql($FldExpression, trim($FldVal));
         } else {
             if ($FldVal != "" && $FldVal != EWR_INIT_VALUE) {
                 if ($FldDataType == EWR_DATATYPE_DATE && $FldOpr != "") {
                     $sWrk = ewr_DateFilterString($FldExpression, $FldOpr, $FldVal, $FldDataType);
                 } else {
                     $sWrk = ewr_FilterString("=", $FldVal, $FldDataType);
                     if ($sWrk != "") {
                         $sWrk = $FldExpression . $sWrk;
                     }
                 }
             }
         }
     }
     return $sWrk;
 }
Example #2
0
function ewr_GetExtendedFilter(&$fld, $Default = FALSE)
{
    $FldName = $fld->FldName;
    $FldExpression = $fld->FldExpression;
    $FldDataType = $fld->FldDataType;
    $FldDateTimeFormat = $fld->FldDateTimeFormat;
    $FldVal1 = $Default ? $fld->DefaultSearchValue : $fld->SearchValue;
    if (ewr_IsFloatFormat($fld->FldType)) {
        $FldVal1 = ewr_StrToFloat($FldVal1);
    }
    $FldOpr1 = $Default ? $fld->DefaultSearchOperator : $fld->SearchOperator;
    $FldCond = $Default ? $fld->DefaultSearchCondition : $fld->SearchCondition;
    $FldVal2 = $Default ? $fld->DefaultSearchValue2 : $fld->SearchValue2;
    if (ewr_IsFloatFormat($fld->FldType)) {
        $FldVal2 = ewr_StrToFloat($FldVal2);
    }
    $FldOpr2 = $Default ? $fld->DefaultSearchOperator2 : $fld->SearchOperator2;
    $sWrk = "";
    $FldOpr1 = strtoupper(trim($FldOpr1));
    if ($FldOpr1 == "") {
        $FldOpr1 = "=";
    }
    $FldOpr2 = strtoupper(trim($FldOpr2));
    if ($FldOpr2 == "") {
        $FldOpr2 = "=";
    }
    $wrkFldVal1 = $FldVal1;
    $wrkFldVal2 = $FldVal2;
    if ($FldDataType == EWR_DATATYPE_BOOLEAN) {
        if (EWR_IS_MSACCESS) {
            if ($wrkFldVal1 != "") {
                $wrkFldVal1 = $wrkFldVal1 == "1" ? "True" : "False";
            }
            if ($wrkFldVal2 != "") {
                $wrkFldVal2 = $wrkFldVal2 == "1" ? "True" : "False";
            }
        } else {
            //if ($wrkFldVal1 <> "") $wrkFldVal1 = ($wrkFldVal1 == "1") ? EWR_TRUE_STRING : EWR_FALSE_STRING;
            //if ($wrkFldVal2 <> "") $wrkFldVal2 = ($wrkFldVal2 == "1") ? EWR_TRUE_STRING : EWR_FALSE_STRING;
            if ($wrkFldVal1 != "") {
                $wrkFldVal1 = $wrkFldVal1 == "1" ? "1" : "0";
            }
            if ($wrkFldVal2 != "") {
                $wrkFldVal2 = $wrkFldVal2 == "1" ? "1" : "0";
            }
        }
    } elseif ($FldDataType == EWR_DATATYPE_DATE) {
        if ($wrkFldVal1 != "") {
            $wrkFldVal1 = ewr_UnFormatDateTime($wrkFldVal1, $FldDateTimeFormat);
        }
        if ($wrkFldVal2 != "") {
            $wrkFldVal2 = ewr_UnFormatDateTime($wrkFldVal2, $FldDateTimeFormat);
        }
    }
    if ($FldOpr1 == "BETWEEN") {
        $IsValidValue = $FldDataType != EWR_DATATYPE_NUMBER || $FldDataType == EWR_DATATYPE_NUMBER && is_numeric($wrkFldVal1) && is_numeric($wrkFldVal2);
        if ($wrkFldVal1 != "" && $wrkFldVal2 != "" && $IsValidValue) {
            $sWrk = $FldExpression . " BETWEEN " . ewr_QuotedValue($wrkFldVal1, $FldDataType) . " AND " . ewr_QuotedValue($wrkFldVal2, $FldDataType);
        }
    } else {
        // Handle first value
        if ($FldVal1 == EWR_NULL_VALUE || $FldOpr1 == "IS NULL") {
            $sWrk = $FldExpression . " IS NULL";
        } elseif ($FldVal1 == EWR_NOT_NULL_VALUE || $FldOpr1 == "IS NOT NULL") {
            $sWrk = $FldExpression . " IS NOT NULL";
        } else {
            $IsValidValue = $FldDataType != EWR_DATATYPE_NUMBER || $FldDataType == EWR_DATATYPE_NUMBER && is_numeric($wrkFldVal1);
            if ($wrkFldVal1 != "" && $IsValidValue && ewr_IsValidOpr($FldOpr1, $FldDataType)) {
                $sWrk = $FldExpression . ewr_FilterString($FldOpr1, $wrkFldVal1, $FldDataType);
            }
        }
        // Handle second value
        $sWrk2 = "";
        if ($FldVal2 == EWR_NULL_VALUE || $FldOpr2 == "IS NULL") {
            $sWrk2 = $FldExpression . " IS NULL";
        } elseif ($FldVal2 == EWR_NOT_NULL_VALUE || $FldOpr2 == "IS NOT NULL") {
            $sWrk2 = $FldExpression . " IS NOT NULL";
        } else {
            $IsValidValue = $FldDataType != EWR_DATATYPE_NUMBER || $FldDataType == EWR_DATATYPE_NUMBER && is_numeric($wrkFldVal2);
            if ($wrkFldVal2 != "" && $IsValidValue && ewr_IsValidOpr($FldOpr2, $FldDataType)) {
                $sWrk2 = $FldExpression . ewr_FilterString($FldOpr2, $wrkFldVal2, $FldDataType);
            }
        }
        // Combine SQL
        if ($sWrk2 != "") {
            if ($sWrk != "") {
                $sWrk = "(" . $sWrk . " " . ($FldCond == "OR" ? "OR" : "AND") . " " . $sWrk2 . ")";
            } else {
                $sWrk = $sWrk2;
            }
        }
    }
    return $sWrk;
}