示例#1
0
 private function ApplyFilter()
 {
     $fieldNames = array();
     $fieldFilters = array();
     foreach ($this->dataset->GetFields() as $field) {
         if ($this->page->GetSimpleSearchAvailable() && $this->page->GetGrid()->SearchControl instanceof SimpleSearch) {
             if ($this->page->GetGrid()->SearchControl->ContainsField($field->GetName())) {
                 if ($field->GetEngFieldType() != ftBlob) {
                     $fieldNames[] = $field->GetName();
                     $fieldFilters[] = new FieldFilter('%' . $this->value . '%', 'ILIKE', true);
                 }
             } else {
                 if ($this->dataset->IsLookupFieldByPrimaryName($field->GetName()) != null) {
                     $lookupFieldName = $this->dataset->IsLookupFieldByPrimaryName($field->GetName());
                     if ($this->page->GetGrid()->SearchControl->ContainsField($lookupFieldName)) {
                         $fieldNames[] = $lookupFieldName;
                         $fieldFilters[] = new FieldFilter('%' . $this->value . '%', 'ILIKE', true);
                     }
                 }
             }
         }
     }
     if (count($fieldFilters) > 0) {
         $this->dataset->AddCompositeFieldFilter('OR', $fieldNames, $fieldFilters);
     }
 }
 private function ApplyFilterToDataset()
 {
     $fieldNames = array();
     $fieldFilters = array();
     foreach ($this->columns as $column) {
         if ($column->IsFilterActive()) {
             $fieldNames[] = $column->GetFieldName();
             $fieldFilters[] = $column->GetFilterForField();
         }
     }
     if (count($fieldFilters) > 0) {
         $this->dataset->AddCompositeFieldFilter($this->applyAndOperator ? 'AND' : 'OR', $fieldNames, $fieldFilters);
     }
     $this->isActive = count($fieldFilters) > 0;
 }