AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Filterproblem mit TTable
Thema durchsuchen
Ansicht
Themen-Optionen

Filterproblem mit TTable

Ein Thema von Grolle · begonnen am 7. Dez 2006 · letzter Beitrag vom 22. Aug 2007
Antwort Antwort
Seite 3 von 4     123 4      
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#21

Re: Filterproblem mit TTable

  Alt 10. Dez 2006, 20:27
Hi,
hier der Text:
Delphi-Quellcode:
procedure TForm1.AdsTable1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  //if not AdsTable1.FieldByName('def3').IsNull then
  Accept := Form6.Match(VarToStr(DataSet['def3']),Form6.sMatch);
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
  sMatch := MatchStr(Edit1.Text);
  Form1.AdsTable1.Filtered := true;
  edit1.Text := '';
  Close;
end;
Die anderen Filter rufe ich aus einem PopUp-Menü auf:
Delphi-Quellcode:
procedure TForm1.MenuItemClick(sender : TObject);
var
s, g : string;
begin
  with Sender as TMenuItem do
    if count = 0 then
      begin
        s := Caption;
        s := StringReplace(s,'&','',[rfReplaceAll]);
        g := parent.Caption;
        g := StringReplace(g,'&','',[rfReplaceAll]);
        if s = lng.GetValue('topitem') then ADSTable1.Filtered := False
        else if s = 'Special Filterthen Form6.Show
        else if s = lng.GetValue('nodeitem') then
          begin
            AdsTable1.Filter := 'node = "'+g+'"';
            AdsTable1.Filtered := true;
          end
        else
          begin
            if g = 'then
            begin
              AdsTable1.Filter := 'node="'+s+'"';
              AdsTable1.Filtered := true;
            end
            else
            begin
              AdsTable1.Filter := 'node = "'+g+'" .AND. tree="'+s+'"';
              AdsTable1.Filtered := true;
            end;
          end;
      end;
end;

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#22

Re: Filterproblem mit TTable

  Alt 10. Dez 2006, 22:04
Hallo Stefan,

bevor du den Filter neu setzt, solltest du Filtered auf False setzen. Und schau mal hier:

Delphi-Quellcode:
// s := Caption;
// s := StringReplace(s, '&', '', [rfReplaceAll]);
s := Menus.StripHotKey(Caption);
Gute Nacht
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#23

Re: Filterproblem mit TTable

  Alt 11. Dez 2006, 10:25
Hallo,
habe jetzt jedesmal bevor der filter neu gesetzt wird fltered auf false gesetzt.
Aber es geht immer noch durcheinander. Wird onfilterrecord bei jedem filtern aus-
gelöst? Kann das der Fehler sein?

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#24

Re: Filterproblem mit TTable

  Alt 11. Dez 2006, 10:54
Hallo,

ich kann mir gar nichts darunter vorstellen, wenn du schreibst "Aber es geht immer noch durcheinander". Auch wüsste ich nicht, wie die Auswertung des Filterkriteriums im Ereignis OnFilterRecord() ein wechselndes Ergebnis liefern könnte, je nachdem wie oft die Routine durchlaufen wird. Ich fürchte du musst das alles etwas besser beschreiben, damit ich verstehe.

Freundliche Grüße
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#25

Re: Filterproblem mit TTable

  Alt 11. Dez 2006, 11:05
Hi,
einmal geschieht ja eine Filterzuweisung durch das PopUpMenü.
Unabhängig davon soll aber auch wenn der User es wünscht über
eine andere Maske (im onfilterrecord) die Daten filtern können.
Ich meine, dass die Daten zusammengewürfelt werden (onfilterrecord
und der eigentliche filter). das geht soweit, bis ich gar nix mehr
angezeigt bekomme.

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#26

Re: Filterproblem mit TTable

  Alt 11. Dez 2006, 11:15
Okay, verstehe.

Die Kombination der beiden Filtertechniken (OnFilterRecord() und Filter/ed) ist zulässig. Die entsprechende Hilfeseite in der Online Hilfe hast du sicher gelesen. Ich bin sicher, dass du den Fehler irgendwo in deinem Code stecken hast. Wenn du nicht weiter kommst, dann kannst du eine Demo erstellen mit der man dein Problem sehen kann. Fehler die ich reproduzieren kann, kann ich auch beseitigen - oder zumindest erklären.

Freundliche Grüße
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#27

Re: Filterproblem mit TTable

  Alt 19. Dez 2006, 09:21
Hallo Marabu,
habe nochmal ein bischen rumprobiert und alles läuft einwandfrei.
Es lag einfach daran, dass ich den Filter bzw. sMatch nicht an der
richtigen Stelle zurückgesetzt hatte. Jetzt klappt alles einwandfrei!
Besten Dank nochmal

  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#28

Re: Filterproblem mit TTable

  Alt 21. Aug 2007, 16:41
Hallo,

ich habe zu diesem alten Thema nochmal eine Frage:
Im Moment suche ich ja so mit onfilterrecord():
Accept := Match(VarToStr(DataSet['JAHRE']), sMatch); Der übergebene String lautet dann z. B.: %2%45%
Das Ergebnis ist dann z. B.: 123456 - also alles, was diese 3 Ziffern enthält.
Nun die Frage: Ist das auch möglich, über eine oder-Verknüpfung zu suchen? also
enthalten sein muss 2 oder 4 oder 5? (Mit einer Ziffer (%2%) geht das ja schon).

Viele Grüße,
Stefan Göppert

  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#29

Re: Filterproblem mit TTable

  Alt 22. Aug 2007, 08:06
Hallo,

glaube ich nicht,
dazu brauchst du dann ne Query.


Heiko
Heiko
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#30

Re: Filterproblem mit TTable

  Alt 22. Aug 2007, 11:32
Hallo,

eine Query kommt leider nicht in Frage. Bei normalen Filtern kann
man doch auch eine oder-Verknüpfung für ein Feld einbauen? Irgendwie
muss das doch gehen. Ich habe leider auch die Delphi-Hilfe nicht
parat. Vielleicht kann mir jemand schreiben was sie zu onfilterrecord()
sagt.

Viele Grüße ...

  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 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