102
Ескерту:
Егер теңдік белгісін қойсақ және пайдаланушы «С» әріпін енгізсе, онда кестеде
ештеңе бейнеленбейді, себебі тегі «С» болатын адам жоқ. Ал үлкен белгісін қойсақ, онда «С»
әріпінен басталатын барлық тектер бейнеленеді.
Сүзгі соңында төрт бірегей тырнақша жазылды. Неліктен төртеу? Себебі, мәннен
кейін бір тырнақша жазуымыз керек. Ол үшін тырнақшасы бар жол қосуымыз керек.
Сондықтан осы жолды ашу және жабу үшін екі бірегей тырнақша тұр. Бұл тырнақшаны жол
ішіне қоямыз, ол үшін бірегей тырнақшадан екеу қоямыз, нәтижесінде ол бір бірегей
тырнақша болады.
Жоғарыда айтылғандай ADO-да сүзгі нашар жұмыс істейді. Бірақ сүзгілеу мүмкіндігін
кеңейтуге жақсы мүмкіндік береді. DataModuleUnit мәліметтер модуліне өтіңіз және
BookTable компоненті үшін OnFilterRecord оқиғасын өңдейік. Ол қосылған сүзгі кезінде
және программаның жолдың сүзгіге сәйкестігін әрбір анықтау кезінде шақырылады. Бұл
жерде біз өз бетімізбен сүзгілеу логикасын басқаруымызға болады. Дайындалған өңдеушіде
келесі кодты жазыңыз:
procedure TDataModule2.BookTableFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=false;
If
Copy(BookTableDSDesigner.AsString,1,Length(Form1.FindEdit.Text))=Form1.FindEdit.Text then
Accept:=true;
end;
Өңдеушіге екінші параметр ретінде Accept бульдік айнымалы беріледі. Егер біз оған
False мәнін енгізсек, онда ағымдағы жол сүзгіге сәйкес келмейді. Егер true болса, онда жол
сәйкес келеді және оны бейнелеуге болады.
Ең басында Accept айнымалысына false мәнін береміз. Осыдан кейін ағымдағы
жолдың сүзгіге сәйкестігі тексеріледі. Ол үшін екінші жолда не жазылғанын ұғу керек. Оны
бөліктерге бөліп қарастырайық.
Copy(BookTableDSDesigner.AsString,1,Length(Form1.FindEdit.Text))
Мұндағы BookTableDSDesigner – тегі жазылған өріс атауы. Егер BookTable
компонентіне екі рет шертіп пайда болған өріс редакторындағы Тегі өрісінің Name қасиетіне
қарайтын болсаңыз осы атауды көресіз.
Сонымен, Copy функциясы бірінші параметр ретінде көрсетілген жолдан, екінші
параметр ретінде көрсетілген орыннан бастап, үшінші параметрге тең символдар санын
қайтарады.
Нәтижені сүзгіге арналған енгізу жолының мазмұнымен салыстырамыз. Егер
ағымдағы жолдағы адамның тегі сүзгі ретінде көрсетілген мәтіннен басталса, онда бұл жол
бейнеленеді.
Енді мысалды жүктеп, оның дұрыс жұмыс істейтініне көз жеткізейік.
Тапсырма:
1. Осы нұсқаулықты пайдаланып, алдыңғы зертханалық жұмыста дайындалған
Студент жобасына Сұрыптау және Сүзгілеу мүмкіндіктерін қос.
2. Өз бетіңмен дайындаған Кітапханадағы кітап қоры туралы мәліметтер қорын да
жоғарыдағы нұсқауды пайдаланып жетілдір және түсіндіріп бер.
Достарыңызбен бөлісу: