Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: DevExpress: DBView-FilterRow ohne Wildcard

  Alt 17. Apr 2023, 17:22
Delphi-Quellcode:
function TcxGridFilterRow.GetOperator(Index: Integer; AValue: Variant): TcxFilterOperatorKind;
var
  AFilterCriteriaItem: TcxFilterCriteriaItem;
begin
  if GridView.FilterRow.OperatorCustomization then
  begin
    ....
  end
  else
    Result := GetDefaultFilterOperatorKind(AValue, True);
end;

function TcxGridFilterRow.GetDefaultFilterOperatorKind(const AValue: Variant; ACheckMask: Boolean): TcxFilterOperatorKind;

  function HasMask(const AValue: string): Boolean;
  begin
    Result :=
      (Pos(DataController.Filter.PercentWildcard, AValue) <> 0) or
      (Pos(DataController.Filter.UnderscoreWildcard, AValue) <> 0);
  end;

begin
  if VarIsStr(AValue) and (not ACheckMask or HasMask(AValue)) then
    Result := foLike
  else
    Result := foEqual;
end;
In den Sourcen von DevExpress sieht man, dass es nur funktioniert, wenn GridView.FilterRow.OperatorCustomization True ist.
Man muss also mit den Symbolen in der FilterRow leben (siehe Anhang) oder auf Contains verzichten.
Standard bei Text ist dann foLike...


Frank
Miniaturansicht angehängter Grafiken
filter_contains.jpg  
Frank Reim
  Mit Zitat antworten Zitat