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; }