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;
 }
Exemplo n.º 2
0
function ewr_FilterSQL(&$fld, $fn, $ft)
{
    $ar = $fld->SelectionList;
    $af = $fld->AdvancedFilters;
    $gt = $fld->FldGroupByType;
    $gi = $fld->FldGroupInt;
    $sql = $fld->FldGroupSql;
    $dlm = $fld->FldDelimiter;
    if (!is_array($ar)) {
        return TRUE;
    } else {
        $sqlwrk = "";
        $i = 0;
        foreach ($ar as $value) {
            if ($value == EWR_EMPTY_VALUE) {
                // Empty string
                $sqlwrk .= "{$fn} = '' OR ";
            } elseif ($value == EWR_NULL_VALUE) {
                // Null value
                $sqlwrk .= "{$fn} IS NULL OR ";
            } elseif (substr($value, 0, 2) == "@@") {
                // Advanced filter
                if (is_array($af)) {
                    $afsql = ewr_AdvancedFilterSQL($af, $fn, $value);
                    // Process popup filter
                    if (!is_null($afsql)) {
                        $sqlwrk .= $afsql . " OR ";
                    }
                }
            } elseif ($sql != "") {
                $sqlwrk .= str_replace("%s", $fn, $sql) . " = '" . $value . "' OR ";
            } elseif ($dlm != "") {
                $sql = ewr_GetMultiSearchSql($fn, trim($value));
                if ($sql != "") {
                    $sqlwrk .= $sql . " OR ";
                }
            } else {
                $sqlwrk .= "{$fn} IN (" . ewr_JoinArray($ar, ", ", $ft, $i) . ") OR ";
                break;
            }
            $i++;
        }
    }
    if ($sqlwrk != "") {
        $sqlwrk = "(" . substr($sqlwrk, 0, -4) . ")";
    }
    return $sqlwrk;
}