DBGrid, wyszukiwanie pozycji

0

Cześć,
Mam prośbę o pomoc, pisze program na zaliczenie który operuje na bazie danych (plikowej - dBase), baza jest prosta, składa się z kolumn (Imie, Nazwisko, Pesel). Do programu chcę zaimplementować wyszukiwarkę, żeby szukała rekordów w DBGrid, i wyświetlała tam te które tylko pasują. Czy mógłbym prosić o pomoc? Dzięki

0

właściwość FILTER komponentu table :>

0

mam coś takiego:


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
var
wpisane: string;
szukane: string;
begin
wpisane := Form1.Edit1.Text;
if wpisane <> then szukane := 'IMIE =' + wpisane + `';
if szukane <> '' then
begin
myDbf.Filter := szukane;
myDbf.Filtered := True;
end;
end;

działa ok, ale:
1) wpisując jakies imię z polskimi znakami - nie wyświetla nic
2) jeżeli wpiszę Waldemar, potem skasuję to jak zrobić żeby wróciło do starej wersji tabeli

0
ensim napisał(a)

1) wpisując jakies imię z polskimi znakami - nie wyświetla nic
najprawdopodobniej kodowanie się nie zgadza (tabele w innym niż WIN1250)

2) jeżeli wpiszę Waldemar, potem skasuję to jak zrobić żeby wróciło do starej wersji tabeli
myDbf.Filtered := False;

0

Misiekd, a w jaki sposób mogę sprawdzić w jakim kodowaniu są tabele, ew. jak przekonwertować na CP1250 ?,

Z wyszukiwaniem sobie poradziłem, nie rozumiem jeszcze w jaki sposób zrobić PartialSearch. Zebym jak wpiszę 'demar' żeby znalazło Waldemara, Odemara

0

zobacz '%demar%'

0

Niestety ale :

wpisane := '%'+Form1.Edit1.Text+'%';

nie pomaga, nie wyświetla żadnego rekordu. W czym może być problem?

0

brak koncepcji? czyli wychodzi na to że nie da się wyszukiwać w bazie DBF po części kolumny?

0

nie mam pojęcia, już próbowałem w różnoraki sposób, czy ma ktoś koncepcję w jaki sposób zrobić wyszukiwanie po cześci pola ?

0

Witam
Ja co prawda pisze w Lazarusie, ale w Delphi powinno być tak samo. U mnie działa w taki sposób:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
var
  wpisane: string;
  szukane: string;
begin
  wpisane := Form1.Edit1.Text;
  if wpisane <> '' then szukane := 'IMIE = ''*' + wpisane + '*''';
  if szukane <> '' then
  begin
    myDbf.Filter := szukane;
    myDbf.Filtered := True;
  end;
end; 

Pozdrawiam
Paweł Dmitruk

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0