18 сурет – Ақпаратты іздеу
Lookup әдісі іздеу шартына сәйкес келетін жазуды табады, бірақ оны
ағымдағы қылдырмайды, бірақ оның кейбір өрістерінің мәндерін қайтарады.
Жазуды іздеу нәтижелеріне қарамастан ДҚ ағымдағы жазу көрсеткіші
өзгермейді. Locate әдісіне қарағанда, Lookup әдісі тек қана жазуды іздеу
өрісінің мәнідерді іздеу критерийлеріне дәл сәйкестігі бойынша іздеуді іске
асырылады.
Function Lookup (const KeyFields: String; const KeyValues: Variant;
const ResultFields: String): Variant;
Сәтті іздеу нәтижесінде мәндерін алу қажет өрістер ResultFields
параметрінде келтіріледі. Нәтиже типі – Variant немесе нұсқаулық массив.
Бас формаға жаңа «Іздеу» батырмасын қосу.
19-суретте көрсетілгендей жаңа форма ашу және компоненттерді енгізу.
Бұл форма бас формадағы іздеу батырмасын басу арқылы шақырылады [6].
19 сурет – Lookup әдісімен іздеу
Формадағы «Lookup әдісімен іздеу» батырмасын басқаннан кейін, іздеу
Edit1 компонентіне енгізілген тегі бойынша орындалады.
procedure TForm5.Button1Click(Sender: TObject);
var LookupResult: Variant;
begin
LookupResult:=Form1.Table1.Lookup('SFio', Edit1.Text, 'SData; SOsn;
SNom; SSpec; SKurs'); //' дүниеге келу күні '
//’Негіз’, ’Сынақ кітапшасы нөмірі’, ’Мамандық’, ’Курс’ өрістері
ізделеді
if VarIsArray (LookupResult) then
begin
Edit2.Text:=LookupResult[0]; //ізделетін өрістерде
Edit3.Text:=LookupResult[1]; // тиісті компоненттерге
Edit4.Text:=LookupResult[2]; //мәндер
Edit5.Text:=LookupResult[3]; //жазады
if Edit5.Text='False' then
Edit5.Text:='Физика' //логикалық типтегі өрістерді
іздеу
else Edit5.Text:='Математика';
Edit6.Text:=LookupResult[4];
end;
end;
Бақылау сұрақтары.
1. «Lookup әдісімен іздеу» батырмасының бағдарлама мәтіні.
2. «Edit» компонентінің OnChange оқиғасы үшін процедура мәтіні.
3. Ақпаратты іздеу қалай іске асырылады?
4. Ақпаратты іріктеу деген не?
5. Іздеу әдістері.
6. Индекстер деген не?
7. Locate әдісі.
8. Lookup әдісі.
4 Зертханалық жұмыс № 4. Жазбаларды фильтрлеу
Жұмыс мақсаты:
1) Жазуларды фильтрлеумен танысу.
2) Ақпаратты іздеу мүмкіндігі бар форманы құру.
Жалпы мағлұмат
Фильтрация – мәліметтер жиынының арасынан таңдау (тек қана нақты
шарттарға сәйкес келетін жазулар арасынан ғана) [7].
Мысалы, «Тегі» өрісі «Ахметов» мәнінен ғана тұратын жазуларды ғана
шығаруды көрсетуге болады. Фильтрлерді мәліметтер жиынына қолдану
логикалық типтің Filtered қасиеттерімен анықталады. True мәні фильтр
ретінде Filter қасиетінде көрсетілген жазуды қолдануды анықтайды:
Өріс [Салыстыру операторы] ‘Мән’.
Мысалы, егер «Тегі» өрісі «Алмасов» мәніне тең болатын барлық
жазуларды көрсетсе, келесіні көрсету қажет:
Table1.Filter:=’Тегі=’’ Алмасов’’;
А, Б тапсырмалары
Керекті нұсқаны таңдап, Delphi ортасында ақпаратты іздеу және
жазуларды фильтрлеу мүмкіндігі бар формаларын құру (А қосымшасы).
Студенттер барлық тапсырмаларды екі нұсқа бойынша орындаулары қажет
(А, Б).
Әдістемелік нұсқаулықтар
Жазуларды фильтрлеу
«Студенттер» қосымшасын ашу.
Формаға TEdit компонентін қосу.
OnChange оқиғасы үшін процедура мәтіні:
begin
Table1.Filtered:=true;
//фильтрлеуді қосу
Table1.Filter:='SNom = ‘+Edit2.Text;
//фильтрлеу критерийлерін береді
end;
Фильтрлеудің бұл әдісі тек қана сандық өрістерге жарамды (20 сурет).
20 сурет – Сандық өрістерге жарамды фильтрлеу
Фильтрлерді қолданғанда келесі қасиеттерді көрсетуге болады:
1) foCaseInsensitive – Әріп регистріне сезімтал еместік;
2) foNoPartialCompare – нақты сәйкестікті іздеу [7].
Мәтіндік өрістерді фильтрлеу үшін, мысалы «Тегі» өрісі бойынша,
процедура мәтінін өзгерту қажет.
procedure TForm1.Edit2Change(Sender: TObject);
begin
Table1.Filtered:=true;
Table1.Filter:='SFio='+#39+Edit2.Text+'*'+#39;
end;
Бұл жағдайда фильтрлеу мәтіндік өріс бойынша іске асырылады. «#39»
белгісі апострофа белгісін білдіреді (өйткені фильтрді қолдануда тегін енгізу
апострофтармен ісе асады). «*» белгісі кез келген белгілерді білдіреді,
дәлірек айтқанда тек қана бір әріпті ғана енгізген кезде экранда берілген
әріпке басталатын барлық тектер шығады (21 сурет) [7].
21 сурет – Бір әріпті енгізіп фильтрлеу
Бақылау сұрақтары.
1. «#39»белгісі нені білдіреді?
2. Мәтіндік өрістерді фильтрлеу үшін процедураның қандай мәтіні
қажет?
3. OnChange оқиғасы үшін процедура мәтіні.
4. foCaseInsensitive қасиетінің міндеті.
5. foNoPartialCompare қасиетінің міндеті.
6. Мәліметтер жиынына фильтр қолдану қандай қасиеттермен
анықталады?
7. Мәтіндік өрістерді фильтрлеу үшін қандай командалар қажет?
8. Фильтрлеу критерийлері қалай беріледі?
5 Зертханалық жұмыс № 5. Кестелер арасында байланыс орнату
Жұмыс мақсаты:
1) Кестелер арасындағы байланысты оқып білу.
2) Кестелер арасында байланыс орнату.
Жалпы мағлұмат
Мәліметтерді ұйымдастыру және кестелер арасындағы байланыс.
Достарыңызбен бөлісу: |