Lazarus 3.0 (2023.12.21.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz: TDBF szűrés 2014 aug. 02 07:43 #1352

  • ejbenjaro
  • ejbenjaro profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 66
  • Köszönetek: 4
A uses után vedd fel az LConvEncoding unitot, akkor fog működni ez a függvény.
lazarus-ccr.sourceforge.net/docs/lcl/lconvencoding/
Mottó:
"Az ember sokszor más mint aminek látszik. De ritkán jobb..."
--
Gép : Asus P5G41T-M LX, Intel Celeron DC E3400, 4GB DDR3, 320GB SATA2, minden más integrált.
OS : Ubuntu 14.04
--
web: lassuviz.blogspot.hu/

Válasz: TDBF szűrés 2014 aug. 02 07:38 #1351

  • Calogero
  • Calogero profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 2
  • Köszönetek: 0
Erre a következőt kapom:

partnerkeresesunit.pas(109,67) Error: Identifier not found "UTF8toCP852"

Válasz: TDBF szűrés 2014 júl. 30 10:58 #1349

  • ejbenjaro
  • ejbenjaro profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 66
  • Köszönetek: 4
Szerintem karakterkódolási probléma lehet a dolog hátterében. Esetleg próbáld a keresett szöveget 852-es kódlap szerint kódolva átadni valahogy így:
DbfPartnerKeres.Filter := ('Azon='+QuotedStr(UTF8toCP852(EditKeres.Text)+'*'));
Mottó:
"Az ember sokszor más mint aminek látszik. De ritkán jobb..."
--
Gép : Asus P5G41T-M LX, Intel Celeron DC E3400, 4GB DDR3, 320GB SATA2, minden más integrált.
OS : Ubuntu 14.04
--
web: lassuviz.blogspot.hu/

TDBF szűrés 2014 júl. 26 11:14 #1348

  • Calogero
  • Calogero profilkép Témaindító
  • Új tag
  • Új tag
  • Hozzászólások: 2
  • Köszönetek: 0
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.

  • Oldal:
  • 1