Sziasztok!
A programomban dbf tábláthasználok TDBF komponenssel.
a dbf állomány a program futás közben jön létre
If FileExists(ExtractFilePath(Application.ExeName)+'Adatok\\partner.dbf')= False Then
Begin
DbfPartner.FilePathFull:=ExtractFilePath(Application.ExeName)+'Adatok\\';
DbfPartner.TableName:='partner.dbf';
DbfPartner.LanguageID:=DbfLangId_HUN_852;
DbfPartner.TableLevel:=4;
DbfPartner.FieldDefs.Clear;
DbfPartner.FieldDefs.Add('Azon', ftString,5);
DbfPartner.FieldDefs.Add('Partner', ftString,55);
DbfPartner.FieldDefs.Add('Telepules', ftString,55);
DbfPartner.FieldDefs.Add('Cím', ftString,55);
DbfPartner.FieldDefs.Add('Adoszam', ftString,20);
DbfPartner.CreateTable;
DbfPartner.Active:=True;
DBGridPartner.Columns.Items[0].Title.Caption:='Azonosító';
DBGridPartner.Columns.Items[0].Width:=70;
DBGridPartner.Columns.Items[1].Title.Caption:='Partner neve';
DBGridPartner.Columns.Items[1].Width:=300;
DBGridPartner.Columns.Items[2].Title.Caption:='Település';
DBGridPartner.Columns.Items[2].Width:=300;
DBGridPartner.Columns.Items[3].Title.Caption:='Utca';
DBGridPartner.Columns.Items[3].Width:=300;
DBGridPartner.Columns.Items[4].Title.Caption:='Adószám';
DBGridPartner.Columns.Items[4].Width:=100;
Ebben a táblában szeretnék szűrni, azonosítóra, illetve a Partner nevére.
Az azonosítóra való keresés működik
DbfPartnerKeres.Filter := ('Azon='+QuotedStr(EditKeres.Text+'*'));
DbfPartnerKeres.Filtered:=True;
A Partner névre viszont nem, ékezetes karaktereknél nem szűr.
Pl Sárközi nevű partnert S betűig szűri.
DbfPartnerKeres.FilterOptions:=[foCaseInsensitive];
DbfPartnerKeres.Filter:=('Partner='+QuotedStr(EditKeres.Text+'*'));
DbfPartnerKeres.Filtered:=True;
DbfPartnerKeres.Filter :=('Partner=Sárközi');
Erre a következő hibával elszáll a program
Index based on Unknown field "S"
OnFilterRecord esemény-nél szűrés működik.
Accept:=DbfPartnerKeres.FieldValues='Sárközi';
Illetve a DbfPartnerKeres.Locate('Partner',EditKeres.Text, [loPartialKey,loCaseInsensitive]) is működik ékezetes betűkkel is.