Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МКАЖ Конспект лекции.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.47 Mб
Скачать

11.1. Мәліметтер жиынын сұрыптау

Мәліметтер жиынының сұрыпталған жазбаларымен жұмыс істеу ыңғайлы болады. Сұрыптау жазбалардың анықталған өрістері бойынша өсі реті немесе кему реті бойынша сұрыпталады.

Сұрыптау бағыттаy ағымдағы индекстің ixDescending параметрі анықтайды, қалыпты жағдайда қосылмаған болады және сұрыптау мәндерініғ өсу реті бойынша орындалады. Егер ixDescending индексінің белгісі қосылған болса, онда сұрыптау мәндердің кему реті бойынша орындалады. Жазбаларды сұрыптауды орындалатын индексті қою, IndexName немесе IndexFieldNames қасиеттерінің көмегімен орындалады. IndexName қасиетінің мәні негізінде, оны құрғандағы индекс аты көрсетіледі. IndexFieldNames қасиетін пайдалану барысында сәйкес индекстердің өріс аттары көрсетіледі.

Paradox кестесінің басты индексінің (кілтінің) аты болмауына байланысты, бұл индекс бойынша сұрыптауды IndexFieldNames қасиетінің көмегімен орындауға болады.

Индекстің атын көрсетумен сұрыптауды мысалмен көрсетейік.

Procedure TForm1.Button4Click(Sender: Tobject);

Begin

Case Radiogroup1.ItemIndex of

0: Table1.IndexName:=’IndName’;

1: Table1.IndexName:=’indBirthday’;

end;

end;

Мәліметтер жиыны негізінде Table1 компоненті пайдалынады, ал сұрыптау екі тәсілмен орындалады: Name өрісі үшін құрылған IndName индексі бойынша, және Birthday өрісі үшін құрылған indBirthday индексі бойынша.

Индекстік өрістердің атын көрсетумен тағы бір сұрыптау мысалын көрсетейік.

Procedure TForm1.Button5Click(Sender: Tobject);

Begin

Case Radiogroup1.ItemIndex of

0: Table1.IndexFieldNames:=’Name’;

1: Table1.IndexFieldNames:=’Name;Birthday’;

2: Table1.IndexFieldNames:=’Code’;

end;

end;

Мұнда сұрыптау келесі өрістер бойынша орындалады: Name (IndName индексі), Name және Birthday (indNameBirthday индексі), Code (басты индекс).

Енді қиынырақ сұрыптау мысалын қарастырайық. Мәліметтер қоры ретінде Table1 компоненті қолданылады. Пайдаланушы жазбаларды сұрыптауды екі айырып-қосқыштың көмегімен басқара алады: бірінші сұрыптаудың түрі, ал екінші сұрыптаудың бағыты көрсетіледі. Сұрыптау Сортировать түймесін басқан соң орындалады. Форма түрі 21-суретте көрсетілген.

21-сурет. Сұрыптау формасының мысалы

Procedure TForm1.Button5Click(Sender: Tobject);

Begin

Case Radiogroup1.ItemIndex of

0: Table1.IndexName:=’IndName’;

1: Table1.IndexName:=’IndBirthday’;

2: Table1.IndexName:=’’;

end;

Case Radiogroup1.ItemIndex of

0: Table1.IndexDefs[Table1.IndexDefs.IndexOf(Table1.IndexName)].Options:=

Table1.Indexdefs[Table1.IndexDefs.IndexOf(Table1.IndexName)].Options+[ixdescending];

1: Table1.IndexDefs[Table1.IndexDefs.IndexOf(Table1.IndexName)].Options:=

Table1.Indexdefs[Table1.IndexDefs.IndexOf(Table1.IndexName)].Options-

[ixdescending];

End;

End;

Жазба сұрыпталатын өріс IndexName қасиеті арқылы қойылады.

Сұрыптау болмаған жағдайда бұл өріске бос жол меншіктеледі. Бұл Paradox кестесі үшін, бірінші өріс бойынша сұрыптауды білдіреді. dBase кестесі үшін кесте файлына жазбалардың енуіне байланысты орналастырылады.

Сұрыптау бағытын басқару ағымдағы индекстің ixDescending параметрінің көмегімен жүзеге асырылады. IndexDefs тізіміндегі ағымдағы индекс нөмерін анықтау үшін IndexOf әдісі қолданылады.