Дәріс №1. Негізгі түсініктер Дәріс жоспары


Өрнек бойынша електен өткізу



бет24/26
Дата12.09.2020
өлшемі0,58 Mb.
#78333
1   ...   18   19   20   21   22   23   24   25   26
Байланысты:
Лекция

Өрнек бойынша електен өткізу.


  • Мәліметтер жиынын өрнек бойынша фильтрациялауды қолдану барысында, жазбаларды таңдау шартымен берілген фильтрдің өрнегін қанағаттандыратын жазбалармен шектеледі. Фильтрдің өрнегін беру үшін String типті Filter қасиеті қолданылады.
    79


  • Фильтрация шартын көрсетуге мысал ретінде келесі өрнекті келтірейік.

    Oklad <= 20000

    Post = ‘Инженер’ OR Post = ‘лаборант’

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

    Фильтрді екпінді етуге және оны алып тастауға Boolean типті Filter қасиеті қолданылады. Қалыпты жағдайда бұл қасиеттің мәні False, және фильтрация өшірілген болады. Filtered қасиетіне True мәнін қойғанда фильтрация қосылады, және Filter қасиетінде жазылған фильтрді қанағаттандыратын мәліметтер жиынында жазбалар іріктелінеді.

    Фильтрация параметрі TFilterOptions типті FilterOptions қасиетінің көмегімен беріледі. Бұл қасиет жиын типіне жатады, және екі мәннің комбинациясын қабылдайды:



        • foCaseInsensitive – әріптердің регистрі ескерілмейді, яғни Post = ‘преподаватель’ фильтр өрнегіндегі преподаватель, ПРЕПОДАВАТЕЛЬ немесе Преподаватель бірдей мағынада қабылдана береді.

        • foNoPartialCompare – іріктеу үшін, өріс және мәндерінің толық сәйкес болуын тексеруді орындайды. әдетте символдар жолы үшін қолданылады. Мысалы, Post = ‘П*’ фильтрі үшін foNoPartialCompare мәні қосылғанда Post өрісінде Преподаватель, Преп-ль, немесе Профессор мәндерінен тұратын жазбалар іріктелініп алынады.

    Өрнек бойынша мәліметтер жиынын фильтрациялау үшін, форма оқиғасын өңдеу мысалын қарастырайық. Форма 24-суретте келтірілген.



    24-сурет. Өрнек бойынша електен өткізу формасының мысалы

    Мәліметтер жиынын фильтрациялау екі түйменің және редакциялау өрісінің көмегімен орындалады. Фильтровать (btnFilter) түймесін басу барысында мәліметтер жиынының Filtered қасиетіне True мәні меншіктелу жолымен фильтр орындалады. edtFilter редакторы фильтр өрнегін қоюға

    арналған. Фильтрдің орындалуында өрнектегі шартты қанағаттандыратын жазбаларды іріктеу орындалады. Все записи (btnAllrecord) түймесін басқанда фильтр ажыратылады, барлық жазбалар көрсетіледі.
    80

    Төменде Form1 форма қосымшасының үш оқиғаны өңдеу модулі келтірілген.


    procedure TForm1.FormCreate(Sender: TObject); begin

    Table1.FilterOptions:=[foCaseInsensitive]; Table1.Filtered:=False;

    end;


    procedure TForm1.Button2Click(Sender: TObject); begin

    Table1.Filtered:=True; Table1.Filter:=edit1.Text; end;

    procedure TForm1.Button1Click(Sender: TObject); begin



    Table1.Filtered:=False; end;

    procedure TForm1.Button3Click(Sender: TObject); begin



    Form1.Close; end;

    end.


    Жазбаларды таңдау үшін дайын өрнектердің тізімін пайдаланған да ыңғайлы болады. Мұндай режим ComboBox және Memo компоненттерінің көмегімен жасалынады. Егер фильтрация шарты белгілі және өзгермейтін болса, онда пайдаланушы жазбаларды іріктеуді CheckBox жалаушасының және RadioButton айырып-қосқышының көмегімен басқара алады.

    Форма қосымшасы оқиғасын өңдеуге мысалы ретінде, пайдаланушы фильтрацияны екі өріс бойынша немесе өрнегі бойынша басқару мүмкіндігін қолданатын, әйтпесе фильтрацияны алып тастайтын қарастырайық.




    25-сурет. Бірнеше өріс бойынша електен өткізу формасына мысал

    procedure TForm1.FormCreate(Sender: TObject); begin


    81

    Table1.Filter:=''; Table1.FilterOptions:=[foCaseInsensitive]; Table1.Filtered:=True;

    end;

    procedure TForm1.Button1Click(Sender: TObject); begin



    Table1.Filtered:=True;

    // оклад бойынша фильтрациялау

    if Radiobutton1.Checked then table1.Filter:='Salary >'+ Edit1.Text+ 'AND Salary <'+Edit2.Text;

    // туған күні бойынша

    if Radiobutton2.Checked then table1.Filter:='Birthday >'+ DateToStr(DateTimePicker1.Date)+'AND Brithday < '+DateToStr(DateTimePicker2.Date);

    // өрнек бойынша фильтрациялау

    if Radiobutton3.Checked then Table1.filter:=edit3.Text; if Radiobutton4.Checked then Table1.Filter:='';

    end;
    Ең кіші және ең үлкен датаның мәнін енгізу үшін екі TDateTimePicker (DateTimePicker1.Date және DateTimePicker2.Date) типті компоненттер қолданылады. Окладтың мәндеріне шек қою үшін Edit1.Text және Edit2.Text бір жолды редакторлары қолданылды.





      1. Достарыңызбен бөлісу:
  • 1   ...   18   19   20   21   22   23   24   25   26




    ©engime.org 2024
    әкімшілігінің қараңыз

        Басты бет