Автор работы: Пользователь скрыл имя, 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 Генераторлар мен триггерлер
Қортынды
Әдебиеттер тізімі
Келісім мезгілінен бұрын тоқтатылған болса ол жайлы екі жақ бір біріне мерзімінен 15 жұмыс күн бұрын жазбаша хабарлау керек.» деп жазамыз. QRLabel5 компонентін қойып Caption қасиетіне «Екі жактың мекен-жайы мен реквизиттері:» деп жазамыз. QRMemo6 компонентін қойып, Lines қасиетіне
«№2 автобаза
Өскемен қаласы,
Абай көшесі, 45
тел.52-89-87» деп жазамыз.
QRMemo7 компонентін қойып, Lines қасиетіне
«"Жұмысшы"
Аты - жөні
Мекен жайы:
Телефон » деп жазамыз.
QRMemo8 компонентін қойып, Lines қасиетіне
«№2 Автобаза бөлімінің меңгерушісі
________________ Нусіпов Е.Н.
Бас бухгалтер
________________ Комекова Р.
Заңгер консультант
________________Аукенова А. деп жазамыз.
28-сурет-Есеп құру қалыбы
Мөрдің суретін жасау үшін QRShape1 компонентін қойып, Shape қасиетіне qrsCircle мәнін көрсетеміз. Сонда шеңбер сызылады. QRLabel6 компонентін қойып Caption қасиетіне «МО» деп жазамыз, бұл мөрдің орны дегенді білдіреді.
Осылардың бәрін орындап болған соң, 2-ші қалыптағы «Келісім шарт (Баспаға)» деген пернеге мына кодты жазамыз:
procedure Tform2.Button1Click(Sender: TObject);
begin
Form3.QRLabel2.Caption:= form2.Ed_dataR.Text ;
Form3.QRLabel3.Caption:= form1.Ed_fio.Text ;
Form3.QRLabel5:= Form1. Ed_dolzh.Text;
Form3. QRMemo7 .Lines.Add('Adres: '+Ed_adres.Text);
Form3. QRMemo7 .Lines.Add('Telephon: '+Ed_tel.Text);
Form3.QuickRep1.Preview;
end;
Қосымшаны орындап, нәтижесін қараңыз. Сонда есеп көмегімен құжаттардың үлгісін өз қалауыңызша жасауға болатынына көз жеткізесіз (28-сурет).
Сұраныстар кестесіне деректерді қалып арқылы енгізу және қалыптар арасында байланыс орнату.
29-суреттегідей қалып құрыңыз да, ФАЙЛ жоғарғы мәзірін құрып, оған ішкі мәзір: 3-қалыпқа көшу, 2-қалыпқа көшу пункттерін жасаңыз.
29-сурет-Деректерді қалып көмегімен сақтау жобасы
FormCreate оқиғасына мына кодты жазыңыз:
procedure TForm1.FormCreate(Sender: TObject);
var otd:string;
begin
otd:='Барлығы';
form1.Caption:='
'+IntToStr(Query1.RecordCount)
end;
3-қалыпқа көшу мәзір пунктіне мына кодты жазыңыз:
procedure TForm1.N31Click(Sender: TObject);
begin
Form3.Show;
form1.Enabled:=false;
end;
2-қалыпқа көшу мәзір пунктіне мына кодты жазыңыз:
procedure TForm1.N21Click(Sender: TObject);
begin
Form2.ShowModal;
form3.Enabled:=false;
form1.Enabled:=false;
end;
«Шығу» пернесіне мына кодты жазыңыз:
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
30-суреттегідей 2-ші қалып құрыңыз. Оған Win32 қатпарынан MonthCalendar1
30-сурет-2-ші қалып
компонентін қойыңыз. Студенттердің туған мерзімі күнтізбенің көмегімен орындалатындай етіп, «Жазуды қорға енгізу» пернесін жасаңыз. MonthCalendar компонентінің Date қасиетіне қай жылдың күнтізбесі керек болса, сол жылды көрсетіңіз.
TForm2.FormCreate оқиғасына мына кодты жазыңыз:
procedure TForm2.FormCreate(Sender: TObject);
begin
MonthCalendar1.Date:=Date;
end;
TForm2.Button1Click оқиғасына мына кодты жазыңыз:
procedure TForm2.Button1Click(Sender: TObject);
begin
Form3.Ed_god_rozh.Text:=
form2.Hide;
Form1.Show;
form1.Enabled:=true;
end;
TForm2.Button2Click оқиғасына мына кодты жазыңыз:
procedure TForm2.Button2Click(Sender: TObject);
begin
form3.Show;
form3.Enabled:=true;
end;
31-суреттегідей 3-қалыпты құрыңыз.
31-сурет-3-ші қалып
6 дана DBEdit компонентін қойыңыз, олардың
Name қасиетін сәйкесінше
procedure TForm3.SpeedButton1Click(
begin
Form2.Show;
end;
ComboBox1 компонентін қойып келесі қасиеттерін орнатыңыз:
Name - CB_Sem_pol
Text - таңдау
Items
Жанұялы
тұрмыста
бойдақ
CheckBox1 компонентін қойып келесі қасие
Name - CB_child
Caption - Баласы бар ма?
Standart қатпарынан Panel компонентін қойып келесі қасиеттерін орнатыңыз:
Align - alCustom
Панельдің үстіне үш перне қойып атауларын «ОК», «Cancel», «Шарт жасау» деп атаңыз.
«ОК» батырмасын шерту оқиғасына мына кодты жазыңыз:
procedure TForm3.Button2Click(Sender: TObject);
begin
if (CB_Sem_pol.Text<>'таңдау') then
begin
Form1.Table1.Insert;
Form1.Table1['Fio']:=Ed_fio.
Form1.Table1['Adres']:=Ed_
Form1.Table1['Data']:=Ed_god_
Form1.Table1['SemPol']:=CB_
Form1.Table1['Telephon']:=Ed_
Form1.Table1['Spez']:=Ed_spez.
Form1.Table1['N_bilet']:=Ed_
if CB_child.Checked then Form1.Table1['Child']:=true
else Form1.Table1['Child']:=false;
Form1.Table1.Post;
Form3.Hide;
form1.Enabled:=true;
end else ShowMessage('!!!');
end;
«Cancel» батырмасын шерту оқиғасына мына кодты жазыңыз:
procedure TForm3.Button3Click(Sender: TObject);
begin
Form3.Hide;
Form1.Show;
form1.Enabled:=true;
end;
«Шарт жасау» пернесіне алдыңғы мысалдағы «Келісім шарт (Баспаға)» деген пернеге жазылған procedure Tform2.Button1Click(Sender: TObject); кодты жазуға болады. Бағдарламада өзгертілетін жолдары бар болса, өздеріңіз анықтаңыздар.
Ескерту.
Егер есепке деректер қоры кестесінің барлық жазбалары шығарылуы керек болса, TquickRep компонентін белгілеп, оның DataSet қасиетіне деректер көзін көрсету керек. Мысалы: Form1.Table1 десе, 1-ші формадағы 1-кестедегі деректер толығымен есепке шақырылады.
Қортынды есеп кестедегі бағандардың, жолдардың қосындысын есептеу арқылы аяқталған құжат жасау керек болса қолданылады. Мысалы: кестеде қоймадағы тауарлар мен олардың құны берілсін, барлық тауарлардың құнын есептеу керек болса, негізгі қалыпқа кестедегі деректерді шақырып аламыз (27а-сурет), сосын 2-ші қалыпта TquickRep компонентін қойып, оның DataSet қасиетіне Form1.Table1 деп жазамыз. Бұл компоненттің үстіне жасалуы керек есептің үлгісін көрсететін компоненттерді қоямыз (32-сурет).
32-сурет-Қоймадағы тауарлар кестесі
QRBand1 компонентін қойып BandType қасиетіне rbTitle мәнін көрсетеміз. Оның үстіне QRLabel1 компонентін қойып, Caption қасиетіне «Қортынды есеп» деп жазамыз. QRBand2 компонентін қойып BandType қасиетіне rbColumnHeader мәнін көрсетеміз. Оның үстінен QRLabel2 компонентін қойып, Caption қасиетіне «Қоймадағы тауарлар атаулары» деп жазамыз. QRLabel3 компонентін қойып, Caption қасиетіне «Тауар құны» деп жазамыз. QRBand3
33-сурет. Қортынды есептің үлгісі
компонентін қойып BandType қасиетіне rbDetail деп көрсетеміз де, кестелерден алған деректерді есепте көрсету үшін шығару өрісі компоненті деп аталатын TQRDBText1 қоямыз да, DataSet қасиетіне Form1.Table1 деп жазамыз, DataField қасиетінде көрінетін тізімнен тауардың маркасын көрсететін «markalari» деген өрісті таңдаймыз. TQRDBText2 қоямыз да, DataSet қасиетіне Form1.Table1 деп жазамыз, DataField қасиетінде көрінетін тізімнен тауардың құнын көрсететін «kuni» деген өрісті таңдаймыз. QRBand4 компонентін қойып BandType
қасиетіне rbSummary деп көрсетеміз де, оның үстіне QRLabel4 компонентін қойып, Caption қасиетіне «Барлығы» деп жазамыз, QRLabel5 компонентін қойып, Caption қасиетін тазалап қоямыз, немесе ештеңе өзгертпесе де болады. Қайтадан 1-ші формаға көшіп, оның модулін ашып type бөлігіне
procedure summa2Click(Sender:TObject); деп жазамыз. Сосын {$R *.dfm} директивасынан кейін осы процедураны жазамыз:
34 – сурет-Қортынды есептің нәтижесі
procedure Tform1.summa2Click(Sender:
begin
summ1:=0;
with form1.Table1 do
begin
First;
repeat
summ1:=summ1+strtoint(form1.
until not FindNext;
end;
end;
1-ші формадағы «Қортынды есеп»
procedure Tform1.Button2Click(Sender: TObject);
begin
Form1.summa2Click(Form1.
form2.QRLabel5.Caption:=
form2.QuickRep1.Preview;
end;
Орындауға жіберіп, қортынды есептің нәтижесін алуға болады (34- сурет).
Өзін өзі бақылау сұрақтары
4-БӨЛІМ. DELPHI7 ОРТАСЫНДА ЛОКАЛЬДЫ ДЕРЕКТЕР ҚОРЫН ҚОЛДАНЫП АҚПАРАТТЫҚ ЖҮЙЕЛЕР ҚҰРУ
Мәліметтер қоры бар ақпараттық жүйелерді жобалау физикалық және логикалық деңгейде жүреді. Жобалауды физикалық тұрғыда жүргізу мәліметтер қорын басқару жүйелерінен тәуелді, көбіне автоматтандырылған және қолданушыдан жасырылған болады.
Логикалық жобалау мәліметтер қорының кесте санын және структурасын анықтау, мәліметтер қоры бойынша сұраныстар құру, есеп беру құжаттарының типін анықтау, деректерді енгізу форматы, т.б. мәселелерді шешеді.
Логикалық жобалау мәселесін шешу заттық аумақтың қасиеттерін ескереді, мұнда ең маңыздысы болып деректерді структуризациялау болып табылады. Деректердің структурасын құруда 3 негізгі әдіс бар:
Осындай ерекшеліктері бар мәліметтер қорын қолданып ақпараттық жүйелерді құру және жобалау өте көкейтесті мәселе. Біз бұл тарауда желілік емес жергілікті мәліметтер қорын қолданып ақпараттық жүйе құруды қарастырамыз.
4.1 «Кадрлар бөлімі» ақпараттық жүйесінің жобасы
Алдымен Access-те «Қызметкерлер» мәліметтер қорын құрып алайық (35-сурет). Онда қызметкерлердің коды, аты-жөні, туған күні, мекен жайы, үйдегі телефоны, ұялы телефоны, атқаратын қызметінің коды, қызметінің атауы, білімі, азаматтығы, ұлты, жынысы, жанұялық жағдайы, жұмыс өтілі (стаж), бөлімі, фотосы, балалары, жұмысқа қабылдау күні, шартқа отырған күні, логин, пароль туралы деректер сақталады. Мұндағы фотосының типі «поле объекта OLE» болуы керек. Логин, балалары туралы өрістердің типі логикалық болғаны дұрыс, себебі олар ақиқат немесе жалған мәндерін қабылдау арқылы бар немесе жоқ деген мағынаны ашады. Қалған өрістердің типтері сіздерге бұрынна таныс. Осы кестемен байланысты болатын қызметтер кестесін құрамыз (36-сурет). Бұл кестеде жұмыс орнында бар қызметтердің атаулары және саны сақталады. Мысалы 1-категориялы маман болып 3 адам қызмет атқара алады. Сонымен қатар бұл кестенің қажеттілігі -қызметкер жұмыстан шыққан кезде оның қызметі бос қалатыны белгілі оны вакантты қызмет деп табу керек.
Сонымен қатар логиндарды сақтау кестесі құрылады (37-сурет). Онда ақпараттық жүйемен жұмыс істеуге құқылы адамдардың логині мен қай уақытта, қандай өзгерістер жасағаны туралы мәліметтер сақталуы керек. Бұл кестедегі Id-санаушы, user-қолданушы логині, action-операция коды, evtdate-уақыт пен дата, message-хабарлама. Ақпараттық жүйеде қандай операцияны кім орындағанын анықтау үшін «actions» кестесі құрылады (38-сурет). Онда операцияның коды мен операция амалы жазылады.
Әрбір қызметкер қандай да бір мақсатпен іс-сапарға жіберілуі мүмкін.
35-сурет-Bd_rabotniki кестесі
Сондықтан «Сапар» кестесін құру керек (39-сурет). Онда сапарға жіберілетін аймақтың коды, аймақтың атауы және қызметкердің коды сақталады. Сол арқылы кестедегі нешінші қызметкер қай аймаққа баратынын анықтауға болады.
36-сурет-Kizmetter кестесі
37-сурет-Logs кестесінің өрістер типі мен толтырылған түрі
Бұл кесте «Сапар мақсаты» кестесімен байланысты болады (40-сурет). Себебі іс-сапарға қандай мақсатпен жіберілетінін анықтау үшін аймақтың коды мен іс-сапардың мақсаты сақталуы керек. Сонда қызметкердің қай аймаққа