AW: DevExpress Grid: Filter mit Sonderzeichen
Der Support von DevExpress schlägt auch die Verwendung von OnFilterRecord vor.
Ich werde erst mal bei der Normalisierung der Daten mit der Function bleiben. Da frage ich mich, ob man an meiner Funktion noch etwas Geschwindigkeit rausholen kann. Aber dafür mache ich ein eigenes Topic auf. |
AW: DevExpress Grid: Filter mit Sonderzeichen
OnFilterRecord ist doch sauber, dort rufst Du deine 'CompareNormalized' Funktion auf. Der nette Nebeneffekt: Du kannst die Funktion nicht nur zum Vergleich / Filtern sondern auch noch zum Sortieren verwenden.
Wo ist dein Problem? Das kriegen wir auch noch gebacken (himitsu hats ja schon gesagt).
Delphi-Quellcode:
Function CompareNormalized(a,b : String) : integer;
begin Result := CompareText(Normalized(a), Normalized(b)); end; Function Normalized (const a : String) : String; Var c : Char; Begin Result := ''; for c in a do Result := NormalizedChar(c); End; Function NormalizedChar (c : Char) : Char; Begin if c='Ł' then result := 'L' else if c='ą' then result := 'a'; ... else result := c; end; |
AW: DevExpress Grid: Filter mit Sonderzeichen
Zitat:
Aber ich beschäftige mich nochmal mit der Ereignissen von DataController.Filter. Da kann ich vielleicht einhaken. |
AW: DevExpress Grid: Filter mit Sonderzeichen
Ich sehe gerade, OnFilterRecord im Grid ist wohl auch nicht das richtige (ich habe aber ein ziemlich altes TcxGrid).
Echt kniffelig. Ich rudere zurück. Ich würde das auch über die View lösen, allerdings über eine zweite Spalte (z.B. 'NormalisiertesFeld'). Im DataController.Filter.OnBeforeChanged würde ich dann den aDataSet.Filter so setzen:
Delphi-Quellcode:
So siehst Du im Grid die polnischen Namen, kannst aber über 'L' und 'a' filtern.
ADataset.Filter := StringReplace(aFilterText,'PolnischesFeld','NormalisiertesFeld',[]);
aDataset.Filter := True; |
AW: DevExpress Grid: Filter mit Sonderzeichen
Zitat:
xyzView.DataController.Options.dcoSortByDisplayTex t := True Greetz Data |
AW: DevExpress Grid: Filter mit Sonderzeichen
Zitat:
|
AW: DevExpress Grid: Filter mit Sonderzeichen
Das Problem mit dem Filter habe ich so gelöst, das ich eine weitere unsichtbare Spalte(mit dem DisplayValue) habe
über die ich dann den Filter laufen lasse. |
AW: DevExpress Grid: Filter mit Sonderzeichen
Wie machst Du das, das Du im FilterRow über der z.B. Spalte 'Namen' die Filterkriterien eintippst, aber er die unsichtbare Spalte zum Filtern verwendet?
|
AW: DevExpress Grid: Filter mit Sonderzeichen
Zitat:
Aber was spricht dann dagegen die Orginal-Column auszublenden und die Column mit dem DisplayText einzublenden und damit das suchen über die FilterRow zu ermöglichen ?! |
AW: DevExpress Grid: Filter mit Sonderzeichen
Also na ja.. In Polen sollte man schon die polnische Schreibweise sehen.
Es ist ja eher eine Krücke für Leute, die in polnischen Namen mit Hilfe einer deutsche Tastatur suchen wollen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz