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



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

2. Жазбаларды іздеу


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

  • Locate (const keyFields: String; const KeyValues: Variant; Options: TLocateOptions):Boolean функциясы өрістің берілген мәнімен іздейді. Егер жазба табылса, онда функция True мәнін, ал басқа жағдайда False қайтарады. Іздеу жүргізілетін өріс тізімдері KeyFields параметрінде беріледі, өріс нүктелі үтірмен (;) бөлінеді. Variant типті KeyValues параметрі іздеу үшін өріс мәнін көрсетеді.

  • Options параметрі келісім бойынша символдық жолды іздеуге пайдалынады. Бұл параметр жиын типіне TLocateOptions жатады, және келесі мәндерді қабылдайды:

      • loCaseInsensitive (әріптердің регистрі ескерілмейді);

  • loPartialKey (мәндердің кейбір бөлігі сәйкес болуды білдіреді);



  • Бір өріс бойынша іздеуге мысал:

  • Table1.Locate(‘Number’, 123, []);

  • Іздеу Number өрісі бойынша орындалады, және бұл өрістің мәні 123 саны болатын бірінші жазба ізделінеді.

  • Мысал ретінде мәліметтер жиынынан іздеуді қамтамасыз ететін оқиғаны өңдеуді қарастырамыз. Форма түрі 22-суретте келтірілген.



  • 22-сурет.Іздеу формасының мысалы



  • Пайдаланушы товар аты (Name) және құны (Price) өрістері бойынша іздеуді жүзеге асырады. Іздеу процесі «Іздеу» түймесін шерткен соң басталады. Төмендегі оқиғаны өңдеу модулінің мәтіні келтірілген.

  • procedure TForm1.Button1Click(Sender: TObject); Var Keyfields: String;

  • KeyValues: Variant; Options: TLocateOptions;

  • begin

  • if not (CheckBox1.Checked or CheckBox2.Checked) then begin MessageDlg('yt pflfys eckjdbt gjbcrf', mtInformation, [mbOK],0); exit;

  • end;

  • // Бір уақытта Name, Price екі өрісі бойынша іздеу

  • if CheckBox1.Checked and CheckBox2.Checked then begin KeyFields:='Name;Price'; KeyValues:=VararrayOf([edit1.Text,edit2.Text]);

  • end

  • // Екі өрістің біреуі бойынша іздеу

  • else begin

  • // Name өрісі бойынша іздеу

  • if CheckBox1.checked then begin Keyfields:='Name'; keyvalues:=edit1.Text;

  • end;

  • // Price өрісі бойынша іздеу

  • if CheckBox2.Checked then begin KeyFields:='Price'; KeyValues:=edit2.Text;

  • end; end;

  • // Іздеу әріптердің регистріне байланысты емес орындалады

  • // кейбірелері сәйкес болатын мүмкіндіктерімен іздеу

  • Options:=[loCaseInsensitive,loPartialKey];
    77


  • // Жазба табылған жоқ

  • if not Table1.Locate(KeyFields,KeyValues,Options) then begin Beep;

  • MessageDlg('Жазба табылмады, mtInformation, [mbOK],0); exit;

  • end; end;

  • Тізбектеп іздеуді, жазба өрістері мәні мен іздеу үшін берілген мәннің ұқсас сәйкестерін іздеуге арналған FindNearest, SetNearest, EditNearest және GotoNearest әдістерінің көмегімен ұйымдастыруға болады.

  • Жазбаларды тізбектеп іздеу үшін, қосымша форма оқиғасын өңдеуге мысал қарастырайық.





  • 23-сурет. Тізбектеп іздеу формасына мысал



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



  • procedure TForm1.Edit1Change(Sender: TObject); Var strField: String;

  • begin

  • // егер іздеу режимі қосырмаған болса, онда процедурадан шығу

  • if not CheckBox1.Checked then exit;

  • // іздеу үшін өрісті таңдау

  • case RadioGroup1.ItemIndex of 0:strField:= 'Name'; 1:strField:= 'Firm'; 2:strField:= 'City';

  • end;

  • // іздеуді орындау

  • Table1.Locate(strField,edit1.Text,

  • [loCaseInsensitive,loPartialKey]); end;

  • procedure TForm1.CheckBox1Click(Sender: TObject); begin

  • edit1Change(Sender); end;

  • procedure TForm1.RadioGroup1Click(Sender: TObject); begin

  • edit1Change(Sender); end;

  • procedure TForm1.Button1Click(Sender: TObject); begin

  • Form1.Close; end;


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




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

    Басты бет