Поиск в непроиндексированном поле таблицы

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Оформил: DeeCo

Автор: http://www.swissdelphicenter.ch

{The following function can be added to your to your unit and called as follows:}

Locate(Table1, Table1LName, ‘Beman’);

{Table1 is your table component, Table1LName is TField you’ve add with the fields

editor (double click on the table component) and ‘Beman’ is the name you want to find.}

{Locate will find SValue in a non-indexed table}

function Locate(const oTable: TTable; const oField: TField;

const sValue: string): Boolean;

var

bmPos: TBookMark;

bFound: Boolean;

begin

Locate := False;

bFound := False;

if not oTable.Active then Exit;

if oTable.FieldDefs.IndexOf(oField.FieldName) < 0 then Exit;

bmPos := oTable.GetBookMark;

with oTable do

begin

DisableControls;

First;

while not EOF do

if oField.AsString = sValue then

begin

Locate := True;

bFound := True;

Break;

end

else

Next;

end;

if (not bFound) then

oTable.GotoBookMark(bmPos);

oTable.FreeBookMark(bmPos);

oTable.EnableControls;

end;

{/codecitation}

Добавить комментарий