Делфи және мәліметтер қоры

Автор работы: Пользователь скрыл имя, 08 Июня 2015 в 11:14, реферат

Описание работы

Бұл кезеңдерді локальды мәліметтер қорын қолданып BorlandDelphi7 ортасында орындау әрі жеңіл, әрі тиімді. Осы орайда мәліметтер қорын қолдана отырып ақпараттық жүйелерді құру және автоматтандырудың жобасы жасалынып, оның орындалуына әдістемелік нұсқаулар жазылды.
Оқу құралында келтірілген әр мысалдың Дельфи тілінде жобалық пішіні жасалып, бағдарламалары құрылуы оның практикалық маңыздылығын арттырады деген ойдамыз.

Содержание работы

Кіріспе
1 Мәліметтер қорын жобалау және ақпараттық жүйелер
1.1 Деректердің шамадан тыс қайталануы және аномалиялар
1.2 Ақпараттық жүйелерді жобалау
2 Delphi ортасында мәліметтер қорына рұқсат алу механизмдері
2.1 ADO провайдерлері
3 Мәліметтер қорын құру және басқару
3.1 Мәліметтер қоры кестелерін құру және басқару
3.2 Мәліметтер қоры кестесімен жұмыс
3.3 Клиенттік қосымшада жоғарғы мәзір құру
3.4 Мемо-өрістер, бағандарды жөндеу және деректерді іздеуді ұйымдастыру
3.5 Сұраныс құру
3.6 Есеп құру
4 Delphi7 ортасында локальды деректер қорын қолданып ақпараттық жүйелер құру
4.1 «Кадрлар бөлімі» ақпараттық жүйесінің жобасы
4.2 Мәліметтер қоры өзгерісін журналға тіркеу
5 Серверлік мәліметтер қоры және interbase серверімен танысу
5.1 INTERBASE локальды сервері
5.2 Индекс құру
5.3 Delphi7 және мәліметтер қоры серверлері
5.4 Генераторлар мен триггерлер
Қортынды
Әдебиеттер тізімі

Файлы: 1 файл

621.doc

— 2.30 Мб (Скачать файл)

form6.QRLabel30.caption:=form14.Edit1.Text;

form6.QuickRep1.Preview;

end;

 

50-сурет-Жұмыстан босату өкімі формасы

 

Бұл кодтың орындалуы үшін 6-форма құрып, оған жұмыстан босату үлгісін жасап қоямыз (51-сурет).

 

 

51-сурет-Жұмыстан босату бұйрығының үлгісі

 

Жұмыстан шығару туралы өкім шығарылғаннан кейін қызметкер туралы деректі кестеден өшіруге болады, ол үшін «Жұмыстан босату өкімі формасындағы» «Өшіру пернесін шерту оқиғасына мына кодты жазамыз:

procedure TForm14.Button2Click(Sender: TObject);

begin

  with dm.GetTempQuery do

    try

      Close;

      SQL.Text := 'DELETE FROM sapar WHERE fionom = ' +

        ADOQuery1.FieldByName('kod').AsString;

      ExecSQL;

    finally

      Free;

    end;

  ADOQuery1.Delete;

  Form10.ADOQuery1.Active := False;

  Form10.ADOQuery1.Active := True;

end;

«Іс-қимыл» бөлігінің «Статистика» бөлімінде жалпы мекеменің қызметкерлерінің орташа жас мөлшері, білімдері және қанша ер  адам мен әйел адам жұмыс істейтінін есептеп, статистиканы көрсетеді (52-сурет).

Бұл амалдарды орындау үшін «Есептеу» батырмасына мына кодты жазамыз:

 

52-сурет-«Статистика» пішіні

 

procedure TForm13.Button1Click(Sender: TObject);

var bilimi,otd:string;  t,i,s,d,dd,s1:integer;p:string;ddd:real;

begin

s1:=0;

Form13.ADOquery1.First;

i := 1;

while not(form13.ADOquery1.Eof) do begin

  inc(i);

s:=strtoint(mes_f(form13.ADOQuery1['tugankuni']));

p:=mes_f(DateToStr(Date));

d:=strtoint(p);

dd:=d-s;

s1:=s1+dd;

  form13.ADOquery1.Next;

ddd:=s1/form13.ADOQuery1.recordcount;

form13.Edit1.Text:=floattostr(ddd);

end;

begin

otd:='jinisi';

form13.ADOQuery1.Filtered:=false;

form13.ADOQuery1.Filter:='jinisi='+''''+'Ер'+'''';

ADOQuery1.Filtered:=true;

t:=ADOQuery1.RecordCount;

form13.Edit2.Text:=IntToStr(t);

end;

begin

otd:='jinisi';

form13.ADOQuery1.Filtered:=false;

form13.ADOQuery1.Filter:='jinisi='+''''+'Әйел'+'''';

ADOQuery1.Filtered:=true;

t:=ADOQuery1.RecordCount;

form13.Edit3.Text:=IntToStr(t);

end;

begin

otd:='bilimi';

form13.ADOQuery1.Filtered:=false;

form13.ADOQuery1.Filter:='bilimi='+''''+'жоғары'+'''';

ADOQuery1.Filtered:=true;

t:=ADOQuery1.RecordCount;

form13.Edit4.Text:=IntToStr(t);   end;

begin

otd:='bilimi';

form13.ADOQuery1.Filtered:=false;

form13.ADOQuery1.Filter:='bilimi='+''''+'орта арнаулы'+'''';

ADOQuery1.Filtered:=true;

t:=ADOQuery1.RecordCount;

form13.Edit5.Text:=IntToStr(t);   end;

begin

otd:='bilimi';

form13.ADOQuery1.Filtered:=false;

form13.ADOQuery1.Filter:='bilimi='+''''+'орта'+'''';

ADOQuery1.Filtered:=true;

t:=ADOQuery1.RecordCount;

form13.Edit6.Text:=IntToStr(t);   end;  

end;

Мұндағы  mes_f функциясы қызметкерлердің туған датасынан тек қана жылды қиып алуға жазылды. Оны модульдің бас жағына жазып қою керек:

function mes_f(d:String):string;

  var i:word;f:boolean;

  begin

  mes_f:='';

    i:=0;

    f:=false;

    repeat

    if d[i]='.' then begin

                         mes_f:=d[i+1]+d[i+2];

                         f:=true;

                     end;

    i:=i+1;

    until f;

  end;

Бас мәзірдің үшінші бөлігі «Анықтама» деп аталған. Мұнда біз жалпы кадрлар бөлімі  және осы бағдарлама жайлы ақпарат алатын боламыз. Яғни, кадрлар бөлімінде жалпы қазақстандық кадрлардың міндеттері мен құқықтары, жауаптылықтары мен мақсаттары, құрылымы мен жалпы жағдайы толық түрде html форматында көрсетілген (53-сурет).

 

53-сурет-«Кадрлар бөлімі» жайлы анықтама

 

Бұл форматтағы файлдарды оқыту үшін «Анықтама» пунктіндегі «Кадрлар бөлімі жайлы» командасына мына кодты жазамыз:

procedure TForm1.N5Click(Sender: TObject);

begin

ShellExecuteA(Application.Handle,nil,'index.htm',nil,nil,SW_SHOWNORMAL);

end;

«Анықтама» пунктіндегі «Бағдарлама жайлы» командасына мына кодты жазамыз:

procedure TForm1.N4Click(Sender: TObject);

begin

AboutBox.ShowModal;

end;

Бағдарлама жайлы мәтінді AboutBox формасына жазуға боады, ол үшін Дельфидің жоғарғы мәзірінен File – New – Other – Forms – AboutBox командасын орындау керек. Сосын пайда болған терезеде фото қоюға, мәтін жазуға болады.

«Анықтама» пунктіндегі «ҚР Еңбек Кодексі» командасына мына кодты жазамыз:

procedure TForm1.N9Click(Sender: TObject);

begin

ShellExecuteA(Application.Handle,nil,'index1.htm',nil,nil,SW_SHOWNORMAL);

end;

Бұл код орындалу үшін ҚР Еңбек кодексін htm форматпен сақтап қою керек.

Ал, жобаның екінші формасында күнтізбе орнатылған (54-сурет). Бұл бізге қызметкердің туған мерзімін көрсеткен кезде қолмен енгізіп жатуымызды қажет етпейді. Үнсіздік келісімі бойынша күнтізбеде ағымдағы мерзім көрсетіліп тұрады. Қажетті датаны күнтізбеден таңдап аламыз да «ок» пернесін басқан кезде автоматты түрде кестеге толтырылатын болады.

 

54-сурет-Күнтізбе

 

Бас мәзірдің 4-ші бөлігі «Өкімдер» деп аталады, онда «Жұмысқа қабылдау», «Жұмыстан босату» , «Еңбек демалысынан босату», «Тағайындау туралы», «Тәртіптік жаза беру туралы» өкімдердің үлгілерін автоматты түрде толтыруға болады.

«Өкімдер» пунктінің «Жұмысқа қабылдау» командасына мына кодты жазамыз:

 

55-сурет-Жұмысқа қабылдау өкімінің үлгісі

 

procedure TForm1.N12Click(Sender: TObject);

begin

form6.QRLabel21.caption:=form1.DBEd_fio.Text;

form6.QRLabel18.Caption:=form1.DBEd_dolzh.Text;

form6.QRLabel7.caption:=form1.DBEd_dat.Text;

form6.QRLabel4.Caption:=form1.DBEd_fio.Text;

form6.QRLabel6.Caption:=form1.DBEd_dat.Text;

form6.QuickRep3.Preview;

end;

Бұл команда орындалуы үшін 6-форма құрып, оған Жұмысқа қабылдау өкімінің үлгісін жасап қоямыз (55-сурет).

 «Өкімдер» пунктінің «Жұмыстан босату» командасына мына кодты жазамыз:

procedure TForm1.N13Click(Sender: TObject);

begin

form14.Show;

end;

Сонда 14-формадағы қызметтер атқарылады.

«Өкімдер» пунктінің «Еңбек демалысынан шақыру» командасына мына кодты жазамыз:

procedure TForm1.N16Click(Sender: TObject);

begin

form6.QRLabel68.caption:=form1.DBEd_dolzh.Text;

form6.QRLabel69.caption:=form1.DBEd_fio.Text;

form6.QRLabel70.caption:=form1.Edit1.Text;

form6.QuickRep4.Preview;

end;

Бұл код орындалуы үшін 6-формада «Еңбек демалысынан шақыру» өкімінің үлгісі жасалуы керек 56-сурет.

 

56-сурет-«Еңбек демалысынан шақыру» өкімінің ұлгісі

 

Егер қызметкерді басқа қызметке тағайындау керек болса, «Өкімдер» пунктінің «Тағайындау» командасына мына кодты жазамыз:

 

57-сурет-Қызметке тағайындау өкімінің үлгісі

 

 

procedure TForm1.N17Click(Sender: TObject);

begin

form6.QRLabel77.caption:=form1.DBEd_fio.Text;

form6.QRLabel80.caption:=form1.DBEd_dat.Text;

form6.QRLabel82.caption:=form1.DBEd_dolzh.Text;

form6.QRLabel85.caption:=form1.DBEd_dat.Text;

form6.QuickRep5.Preview;

end;

Бұл код орындалуы үшін 6-формада «Тағайындау» өкімінің үлгісін жасау керек (57-сурет). Егер қызметкерлер жұмыс тәртібін бұзған жағдайда оған тиісті шара қолдану үшін «Өкімдер» пунктінің «Тәртіптік жаза беру» командасына мына кодты жазамыз:

procedure TForm1.N18Click(Sender: TObject);

begin

form6.QRLabel97.caption:=form1.DBEd_dolzh.Text;

form6.QRLabel98.caption:=form1.DBEd_fio.Text;

form6.QRLabel104.caption:=form1.Edit1.Text;

form6.QRLabel105.Caption:=form1.DBEd_fio.Text;

form6.QuickRep6.Preview;

end;

Бұл код орындалуы үшін 6-формада «Тәртіптік жаза беру» өкімінің үлгісін жасап қою керек (58-сурет).

Бас мәзірдің келесі бөлігі «Бұйрықтар» деп аталады, онда «Ескерту жариялау», «Іс сапарға жіберу», «Еңбек демалысына жіберу», «Вакансиялар» деп аталатын командалар бар.

 

58-сурет-Тәртіптік жаза беру өкімінің үлгісі

 

Егер қызметкерге қандай да бір өрескелдігі үшін ескерту берілсе, «Бұйрықтар» пунктінің «Ескерту жариялау» командасын қолданады, ол үшін мына код жазамыз:

procedure TForm1.N20Click(Sender: TObject);

begin

form7.QRLabel3.caption:=form1.DBEd_dolzh.Text;

form7.QRLabel4.caption:=form1.DBEd_fio.Text;

form7.QRLabel12.caption:=form1.Edit1.Text;

form7.QuickRep1.Preview;

end;

Бұл код орындалу үшін 7-формада «Ескерту жариялау» бұйрығының үлгісін жасап қою керек  (59-сурет).

 

59-сурет-Ескерту жариялау бұйрығының үлгісі

 

«Бұйрықтар» пунктінің «Іс сапарға жіберу» командасына мына код жазылады:

procedure TForm1.N21Click(Sender: TObject);

begin

form10.Show;

end;

 

60-сурет-Іссапарға жіберу формасы

Жобаның 10-формасында қызметкерлерді іссапарға жіберу пішіні тағайындалған (60-сурет).

Мұнда кестедегі дайын деректерді пайдаланып, яғни іссапарға жіберілетін қызметкердің аты-жөні, қызметі, сапарға бару мақсаты және қай аймаққа баратыны анықталып алынады, іссапары қай уақыт аралығына

 

61-сурет-Іссапарға жіберу туралы бұйрық үлгісі

 

созылатынын пішінге әкелініп қойылған күнтізбеден көрсетілетін болады. Содан кейін осы деректерді QReport көмегімен жасалған есепке шақырылады. Осылайша автоматты түрде іссапарға жіберу туралы бұйрықтың үлгісі толтырылады. Ал, оның баспаға беру, яғни бұйрық үлгісі 61-суретте көрсетілген.

«Бұйрықтар» пунктінің «Еңбек демалысына жіберу» командасына мына кодты жазамыз:

procedure TForm1.N15Click(Sender: TObject);

begin

form9.Show;

end;

Жобаның 9-формасында қызметкерлерді еңбек демалысына жіберу пішіні жасалды (62-сурет) және соның негізінде еңбек демалысының бұйрығы толтырылатын болады. Мұнда да кестедегі дайын деректерден қызметкердің аты-жөні, қызметі шақырылады, және қосымша кестеге сол қызметкердің жұмысқа қабылданған мерзімі мен келісімшарт мерзімі көрсетіліп тұратын болады, яғни бұл бізге қай аралықтан бастап демалыс беруіміз керек болатынын анықтау үшін қажет. Ол күнтізбеден көрсетілетін болады, ал формадағы екінші күнтізбеде демалыс мерзімінің аралығын көрсетеміз және де ол әр қызметкерде әр түрлі ұзақтықта болуы мүмкін. Мысалы, жүргізушілерге 24 күн демалыс мерзімі берілсе, бастықтар 30 күн дем алады т.с.с.

 

62-сурет-Қызметкерлерді еңбек демалысына жіберу формасы

 

Бұл форманың «Растау» пернесін шерту оқиғасына мына кодты жазамыз:

procedure TForm9.Button2Click(Sender: TObject);

begin

form6.QRLabel47.Caption:=form9.DBEdit2.Text;

form6.QRLabel48.Caption:=form9.DBEdit1.Text;

form6.QRLabel59.Caption:=form9.DBEdit1.Text;

form6.QRLabel49.Caption:=form9.Edit3.Text;

form6.QRLabel52.Caption:=form9.Edit4.Text;

form6.QRLabel53.Caption:=form9.Edit1.Text;

form6.QRLabel55.Caption:=form9.Edit2.Text;

form6.QRLabel60.Caption:=form9.Edit1.Text;

form6.QuickRep2.Preview;

form1.show;

form1.enabled:=true;

end;

Бұл код орындалу үшін 6-формада «Еңбек демалысы туралы» бұйрығының үлгісі жасалуы керек (64-сурет).

Егер қызметкер жұмыстан шыққан болса, оның орны вакантты деп есептеліп, оған конкурс негізінде басқа адам жұмысқа қабылдануы үшін «Бұйрықтар» пунктінің «Вакансиялар» командасына мына кодты жазамыз:

procedure TForm1.N19Click(Sender: TObject);

begin

  Form12.Show; end;

64-сурет-Еңбек демалысы туралы бұйрықтың үлгісі

 

Бұл код орындалу үшін 12-формада Вакансияны анықтап, конкурс жариялау формасын жасап қою керек (65-сурет). 

 

65-сурет-Вакантты орындарды анықтау формасы.

 

Мұндағы «Конкурс» пернесін шерту оқиғасына мына код жазылады:

procedure TForm12.Button1Click(Sender: TObject);

begin

  Form7.lbKizmet.DataSet := Form12.qrGetVacant;

  Form7.lbKizmet.DataField := 'kizmet';

  Form7.QuickRep3.Preview;

end;

Бұл код орындалуы үшін 7-формада конкурс жариялау үлгісі жасалып тұруы керек (66-сурет). Вакантты орындарды анықтау формасына қойылған ADOQuery1  компонентінің атауын өзгерту үшін Name қасиетіндегі атауды qrGetVacant деп өзгертіп жазамыз. 7-формадағы QRDBText1компонентінің атауын lbKizmet деп өзгертіп жазамыз.

66-сурет-Конкурс дариялау үлгісі

 

Бас мәзірдің соңғы бөлігі «Сервис» деп аталады, онда «Журнализация» командасы бар. Оның негізгі қызметі ақпараттық жүйені қолданушыларды орындаған операцияларымен тіркеп отыру.

 

Өзін өзі бақылау сұрақтары

 

  1. Ақпараттық жүйе деген не?
  2. Ақпараттық жүйенің түрлері? Қолданысы?
  3. Ақпараттық жүйенің құрамы?
  4. Ақпараттық жүйелерді құру әдістері?
  5. Автоматтандырылған ақпараттық жүйелерді құру қай бағдарламаға негізделген?

 

4.2 Мәліметтер қоры өзгерісін журналға тіркеу

 

Дамыған мәліметтер қорын басқару жүйесіне қойылатын басты талаптардың бірі мәліметтер қорын сенімді сақтау болып табылады. Бұл кез келген аппараттық және бағдарламалық ақаулардан кейін деректерді қайта қалпына келтіру мақсатымен қойылады.

Информация о работе Делфи және мәліметтер қоры