“Персонал” бағдарламасының SQL тіліндегі негіздері

М А З М Ұ Н Ы

1. Кіріспе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2. Жалпы бөлім. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1. Бағдарлама құруға қажетті Деректер қоймасын басқару
жүйесі (ДҚБЖ) туралы түсінік . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.2. Деректер қорын нормальдау, модельдеу, жобалау және
деректер қоймасының эффектілігі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3. Арнайы бөлім. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1. “Персонал” бағдарламасының SQL тіліндегі негіздері. . . . . . . . . . . . 20
3.2. Серверге қосылу. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.3. SQL тілінде бағдарлама кестесін құру . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4. Есептің қойылымы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
3.5. Staff.gdb деректер қоймасына қосылу. . . . . . . . . . . . . . . . . . . . . . . . . . . ..38
3.6. Қызметкерлер жайлы жалпы мәліметтерді көрсету. . . . . . . . . . . . . . . . 71
4. Жобаны іске асыру. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . .. .85
5. Қауіпсіздік техникасының шаралары. . . . . . . . . . . . . . . . . .. . . . . . . . . .. .87
5.1. ДЭЕМ және бейнедисплейлік терминалға сұраныс. . . . . . . . . . . . . . . . 89
5.2. Жасөспірімдерге арналған компьютерлік бөлмелердің жабдықтары
және оны ұйымдастыру шаралары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
5.3. БДТ, ДЭЕМ және дербес компьютермен жұмыс істеу кезінде еңбек
режимі мен демалуды ұйымдастыру шаралары. . . . . . . . . . . . . . . . . . . . .92
6. Экономикалық бөлім. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.1. Экономикалық қызметтің пайдалылығы. . . . . . . . . . . . . . . . . . . . . . . 95
6.2. Бағдарламаны енгізуге дейінгі шығындар есебі. . . . . . . . . . . . . . . . .. . 99
6.3. Экономикалық шығындар есебі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7. Қорытынды. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8. Қысқартылған сөздер мен терминдер. . . . . . . . . . . . . . . . . . . . . . . . . . 103
9. Қолданылған әдебиеттер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
        
        М А З М Ұ Н Ы 
1. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2. ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... құруға қажетті Деректер қоймасын басқару
жүйесі (ДҚБЖ) ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... Деректер қорын нормальдау, модельдеу, ... және ... ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... Арнайы бөлім. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... SQL тіліндегі негіздері. . . . . . . . . . . . 20
3.2. ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... SQL ... ... ... құру . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 ... ... деректер қоймасына қосылу. . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... ... ... ... көрсету. . . . . . . . . . . . . . . . 71
4. ... іске ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . .. ... ... техникасының шаралары. . . . . . . . . . . . . . . . . .. . . . . . . . . .. ... ДЭЕМ және ... ... ... . . . . . . . . . . . . . . . ... Жасөспірімдерге арналған компьютерлік бөлмелердің жабдықтары
және оны ұйымдастыру шаралары. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... БДТ, ДЭЕМ және ... ... ... істеу кезінде еңбек
режимі мен демалуды ұйымдастыру шаралары. . . . . . . . . . . . . . . . . . . . ... ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 ... ... ... ... . . . . . . . . . . . . . . . . . . . . . . ... Бағдарламаны енгізуге дейінгі шығындар ... . . . . . . . . . . . . . . . .. . ... ... шығындар есебі. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8. ... ... мен ... . . . . . . . . . . . . . . . . . . . . . . . . . 103
9. ... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... К І Р І С П Е ... ... адамзатта әлдеқашан пайда болды. Ал, өркениет дамыған ... ... ... арта ... ... ... жолдарын іздеуге мәжбүр ... Сол ... ... ... ... ... ... алғашқы машиналардың бірін 1642 жылы француз ғалымы Блез Паскаль жасаған болатын. ... ... ... - ... ... ... ... тізбегін орындайтын құрылғы. ... - ... ... (ЭЕМ) ... есеп үшін ғана ... ... білдірсе, ал "компьютер" ұғымы одан ... ... ... ... машинасы жаңа принципте жасалған ... бірі ... ... ... есептеуіш техниканың дамуына ықпалын жасап, осы машина негізінде ... ... ... ... ... ... жылы Лейбниц әлемдегі алғашқы арифметикалық ... ... ... ... ... ...
1975 жылдың аяғында Пол ... мен Билл ... осы ... ... тілінің интерпретаторын ойлап тапты. Қазіргі уақытта IBM РС тектес ... MS DOS Windows 95; 98; 2000; ХР ... ... ... Microsoft фирмасы ең үлкен фирма ... ал оның ... ... Билл ... ... ... ең бай адам болып есептеледі.
Компьютер бағдарламаларын ... ... Borland ... ... ... ... ... жасау құралдарын ұсынды. Ол қарапайым Паскаль ... ... ... Borland Pascal 7, Object Pascal ... ... ... негізінде объектіге бағытталған бағдарламалау амалдары мен Windows ... жүйе ... ... шолу ... қосып бұл компания жаңа ... ... ... паш етті. Оның атын грек ... ... ... Delphi атынмен атағаны бұл ұйымның ... ... ... ... Delphi ... ортасында тұтынушының қарапайым ... іске ... ... ... ... ... қолдану арқылы суретті дыбысты қозғалатын ойыншықтарды экранға ... ... ... ... Көптеген жұмыс орындарында туатын көп сауалдарды шешуге мүмкіндік ... ... ... және осы бағдарламалау ... ... ... ... ... ақпараттарға кіруге болады.
Деректер базасы - бұл әртүрлі типтегі ... ... ... ... ... ... ... жобада, дәл осы Delphi бағдарламалау ортасында "Персонал" ... ... ... құрып, ондағы қызметкерлердің аты- жөнін, тізімін, туған жылын, ... ... ... ... ... ... т.б деректерін, ... ... SQL - ... жазып, Delphi - мен Деректер базасын бір- бірімен байланыстыра ... ... ... ... қызметкерлердің деректерін жіктеуіміз деректер қоймасы болып табылады. Бұл ... ... ... ... яғни бір- ... ... белгілері бойынша топтастыру ... ... ... ... ... басында есеп шығару үшін ғана ... ... ... ... ... және ... өздерінің дамуына қарай басқа да ... ... ... ... ... ... компьютерлер тек қана сандар мен ... ғана ... ... ... ... ақпараттарды (суреттерді, схемаларды), бейнефильмдерді, музыканы да ... ... ... қатар Delphi - мен Деректер базасын және т.б. ... бір - ... ... ... ... ... ... түрлі станоктарды, ұшақтармен жолсеріктерін және ... ... ... банк ... ... ... туралы деректерді, сол кәсіпорынның атқаратын қызметтерін, ... оқу ... ... ... онда ... студенттердің сандарын шығарып беретін және ... ... ... ... кез- ... қызмет орынның жалпы деректері туралы мәліметтер беретін бағдарламаларды ... ... ... болады. Қазіргі кезде міне осы компьютердің арқасында ... да жыл ... ... ... жатыр. Соның барлығы да бағдарламамен қамтамассыз етілген.
Мен дипломдық жоба ... ... ... ... және ... колледжінде өткіздім. Сол уақыт ... ... ... ... ... осы ... қызметкерлерінің толық деректерін ендіруге ... ... ... ... ... ұйғардым. Міне, осы тұрғыда ... ... атты ... ... ... айта ... ... осы колледжде бұрыннан жұмыс істейтін қызметкерлердің, жұмысқа ... ... ... және жұмыстан шығарылған қызметкерлердің деректерін ендіріп үнемі Кадр ... ... ... ... Ал ... ... толығымен тоқталатын болсам, бұл бағдарламада бір кәсіпорында жұмыс ... ... ... ... сол ... ... ... жеке - жеке қызметкерлер туралы және қызметтен ... ... ... ... ... ... қызметкерлердің қандай қызметте, қандай мамандықпен жұмыс істейтіндігі туралы толық ... ... ... бөлімінен, ұйым яғни кәсіпорын туралы мәліметтер беретін Қосымша ... ... және ... ... істейтін барлық қызметкерлер туралы ... ... ... Қызметкерлер бөлімінен тұрады. ... ... ... орындалған бағдарламаны "Электрондық үкімет" ... ... да ... ... ... бұл бағдарламаны кейіннен кез - келген ... оқу ... ... фирмалар өздерінің қызметкерлері туралы, жалпы ұйым ... ... ... ... ... ... кадр ... қолдануларына да болады.
"Электрондық үкімет" - интернетке ... ... ... басын біріктіріп, 377 ақпараттық қызмет түрін көрсетеді. Мемлекеттік органдардың ведмствоаралық ... ... үшін де осы ... түрі пайдаланылады.
4 кезеңге жоспарланған "электрондық үкіметті" жүзеге асыру үшін ... ... ... ... және өзге де елдердің тәжірибелері алынған. "Ұлттық ақпараттық ... АҚ ... ... ... ... кіретін Орталық құрылып, оған Эстония, АҚШ, Үндістан және ... ... ... жұмылдырып отыр. Аталған міндеттерді ... ... үшін ... өз тарапынан "Ақпараттандыру туралы" және ... ... ... ... ... ... ... туралы" заң жобаларына басымдық ... ... ... ... ... үкімет" құру жоспары ... 2008 жылы ... 20 ... ... ... шығуы тиіс.
Енді осы "Электронды үкімет" ... және ... ... ... ... өзіміздің алғашқы жер серігіміз "KazSat - 2" ... ... осы ... 18- інде ... Бұл ... ұшырылуы біздің елімізді өздерінің дербес жер ... бар 25 ... ... ... ... ... ... күрделі, пайдалы бағдарламаларды құрастырушыларға, яғни біздерге де өте ...
А Р Н А Й Ы Б Ө Л І М ... "П е р с о н а ... SQL ... ... ... Query Language ... құрылымдық тілі) тілі бұл декларациялық тіл. Декларациялық тіл оператор көмегімен деректерді сипаттауға мүмкіндік береді. Ол ... ... ... ... ... операциялардың тізбесін трансляциялайды.
SQL - деректер базасынан ... ... ... ... базасын құрып оның қауіпсіздігін қамтамассыз етуге де мүмкіндік береді. Локальдік деректер қоймасымен жұмыс істеген кезде SQL командаларының орындалуы ... Delphi - мен ... ... SQL Explorer ... Database Desktop ... ... болады.
IBConsole. InterBase 6.5 деректер қоймасымен жұмыс істеуге арналған ... ... ... ... құрылғылар IBConsole -да орналасқан. Жоғарыдағы ... ... соң, Delphi ... ... ... ... қажетті деректерді, деректер ... SQL ... ... ... толтыру арқылы бір - бірімен байланыстыруымыз керек. Ол үшін мына ... ... Енді ... кіріспес бұрын InterBase серверінің жүктелгеніне көз ... Ол ... іс ... ... Пуск ... меню ... ... бағдарламасын жүктеңіз. Нәтижесінде пайда болған терезе 1- суреттегідей ... ... ... IBConsole
3.2. Серверге қосылу
1- суретте IBConsole -дың сол жақ ... ... - ге ... ... тізімдері орналасқан. Қазіргі кезде бұл жерде бір ғана ... ... , ол ... ... Енді бұл ... қалай қосылу керек екендігі туралы қысқаша түсініктеме бере кететін болсақ:
* 10287009144000Server Register ... ... ... ... бұтақ тәріздес орналасқан InterВase Servers - ке ... ... 2 рет ... ... ... терезеде серверді тіркеу терезесі пайда болады.
(2-сурет).
* сурет. Register Server and Connect ... ... ... қай ... ... ... екендігін көрсетуіміз керек.
* Біз Локальдік серверге қосылатын болғандықтан, Local Server ... ... ... ... ... ... ... қолданушының аты мен парольі көрсету керек. InterВase - да ... ... аты ... SYSDBA, ал ... ... - ... ... Бірақ қалауыңызша өзгертсеңіз де болады.
* User Name өрісіне SYSDBA, ал Password ... ... ... ... ... ... ... жазылады.
* Пайда болған Local Servers - ке ... ... 2 рет ... ішіндегі тізімдерін көруге болады. Ол 3- суретте көрсетілген.
* сурет. Локальдік серверге қосылу ... ... ... ... ... бірнеше элемент байланысқан. Қазіргі кезде бізге солардың ішінде екеуі ғана: DataBases және Users ... ... Егер Users -ке ... ... ... ... онда ... оң жақ бөлігінде серверде тіркелген барлық қолданушылардың тізімдері шығады. Қолданушылар аты мен ... ... үшін Server - User Security ... орындасақ жеткілікті.
Серверде жаңа деректер қоймасын тіркеу. DataBases элементі көмегімен InterВase деректер қоймасында бар деректерді серверге тіркеуге ... жаңа ... ... ... ... ... ... құруды кейінірек қарастырамыз. Ал қазір деректер қорын тіркейік:
1257300114300001. DataBases Register ... ... DataBase ... оң жағында орналасқан 3 нүктеге тышқан тетігін басыңыз.
* InterBase деректер қоймасының файлдары .gdb. кеңейтілуінде болады.
Деректер ... ... ... ... SQL ... негізгі командалары көмегімен және IBConsole құрылымдары көмегімен де құруға болады. Біз қазір IBConsole ... ... ... Ол ... ... ... ... оң жақ батырмасын басып, пайда болған жанама менюден Create Database - ді ... ... ... ... ... ... ... диалогтық терезе пайда болады.(4- сурет).
4-сурет. Create Database диалогтық терезесі
2. Бұл терезеде деректер қоймасының файлының атын және ... ... ... ... ... Беттің өлшемін Page Size өрісінде 4096 байт (4 Кбайт) түрінде көрсетіңіз
3. Default Character Set өрісінде деректер қоймасының ... ... ... ... көрсетіледі. Бұл өрісте None мәнін қалдырыңыз.
4. SQL Dialect өрісінде көрсетілген мән екі тырнақшаны, үлкен көлемдегі ... және ... ... ... анықтайды. Көптеген жағдайлар үшін міндетті түрде 3 ... ... Ал Alias ... ... тіркелген деректер қоймасының атын көрсетіңіз. Мысалы STAFF.GDB.
6. ... ... ... ... ... ... ОК ... басыңыз. Нәтижесінде File өрісінде аты мен өлшем бірлігі ... ... ... құрылады.
"Персонал" бағдарламасын құру үшін біз ең бірінші деректер ... ... ... ... проектісін сақтайтын жеке каталог құруымыз ... Ол үшін ... деп ... ... ... ... ... бағдарламасының деректер қоймасын STAFF.GDB деп сақтаймыз.
217170027686000 Деректер қоймасын және оның ... құру үшін ... ... Tools ... SQL ... ... Сонда 5- суреттегідей терезе пайда болады:
5-сурет. Interactive SQL құрылымы
Енді осы терезеде SQL - ... ... үшін ... әрекеттерді орындаңыз:
+ Interactive SQL терезесінің жоғарғы ... SQL- ... ... мына ... ...
SET SQL DIALECT 3
+ ... деректер қоймасын құрайық. SQL - да деректер қоймасын құру үшін CREATE DATABASE командасы қолданылады. Interactive SQL ... ... SQL ... ... DATABASE ... "SYSDBA" PASSWORD ... ... d:\programs\staff\base каталогында Staff.gdb деректер қоймасының файлы құрылады.
3.3. SQL ... ... ... құру
Кесте құру үшін SQL операторы CREATE TABLE қолданамыз. "Персонал" бағдарламасы үшін 6 ... ... ...
* STAFF - ... қызметкерлердің тізімдері
* REGIONS - Тұрғылықты жері көрсетілген қызметкерлердің тізімдері
* DEPS - Кәсіпорын бөлімінің тізімі
* POSS - ... ... JOBS - ... қызмет жағдайы туралы мәліметтер ... ... FAMILY - ... ... ... мәліметтер сақтайтын кесте
1. Енді, кесте құруға кірісейік. Interactive SQL ... STAFF ... үшін ... SQL ... жазыңыз:
CREATE TABLE STAFF
( ID integer NOT NULL PRIMARY KEY,
LastName varchar(30) NOT NULL,
FirstName ... NOT ... ... ... varchar(30),
House varchar(10),
Tel varchar(20),
TaxCode numeric(12,0) DEFAULT 0 NOT NULL,
TabNum varchar(10),
BirthDate date NOT NULL,
DepID smallint NOT NULL,
PosID smallint NOT NULL,
BornPlace varchar(50),
Salary numeric(15,2) DEFAULT 200.0 NOT ... ... ... ... ... кейін Query Execute командасын орындаңыз немесе найзағай бейнеленген ... ... ... STAFF ... ... ... Бұл кестедегі STAFF. ID- алғашқы кітті құру үшін қолданылатын жазба идентификаторы;
* LastName, FirstName, FatherName - ... ... аты және ... аты;
* Zip, Street, House, Tel - ... ... ... ... көше, үйдің немесе пәтерінің номері және телефон номері;
* TaxCode - ... ... ... ... (РНН);
* TabNum - Кәсіпорын реестрі бойынша қызметкердің табельдік номері;
* ... - ... ... айы, ... DepID, PosID - Бөлім және ... ... ... - ... ... Salary - ... PasspNum, PasspDate - Төлқұжат номері және ... ... Photo - ... ... ... SQL ... REGIONS кестесі үшін келесі SQL операторды жазыңыз:
CREATE TABLE REGIONS
( Zip integer NOT NULL PRIMARY ... ... ... ... NOT ... ... ... пошталық индекс, аймақ аты және тұрғылықты жері көрсетілген.
+ DEPS кестесі үшін ... SQL ... ... TABLE ... DeptID integer NOT NULL PRIMARY ... ... NOT NULL,
DeptShortName varchar(10) NOT NULL,
ParentDeptID integer DEFAULT 0 NOT NULL,
Parents varchar(100))
Бұл кестеде бөлімнің толық аты және қысқартылған аты көрсетіледі.
+ POSS ... үшін ... SQL ... ... TABLE ... PosID integer NOT NULL PRIMARY ... varchar (100) NOT NULL,
PosShortName varchar (20) NOT NULL,
PosLevel smallint DEFAULT 1 NOT NULL)
Бұл кестеде идентификатор, қызметтің ... аты және ... аты, ... жағдайы туралы мәлімет көрсетіледі.
+ JOBS кестесі үшін келесі SQL ... ... TABLE ... EmpID integer NOT NULL,
StartDate date NOT NULL,
StopDate date,
Organization varchar(100) NOT NULL,
Dep varchar(100),
Pos varchar(100) NOT NULL,
StopCauses ... ... ... varchar(10))
Бұл кестенің құрамында қызметкер идентификаторы, қызметкердің жұмыс ... ... және ... ... аты, бөлімінің аты, қызметі, жұмысын ауыстыру немесе жұмыстан шығу себебі, ағымдағы ұйым таңбасы және қызметтен босату ... ... ... бар.
+ FAMILY кестесі үшін келесі SQL операторды ... TABLE ... EmpID integer NOT ... ... NOT ... ... varchar(50) NOT NULL)
Ал, бұл кестенің құрамында қызметкер идентификаторы, отбасы(әйелі, күйеуі, ұлы, ... т.б.), ... аты және ... жылы ... егер ... ... ... оны өшіріп тастау керек болса, онда келесі оператор ... ... ... TABLE ... ... STAFF кестесі үшін тегі, аты, әкесінің аты өрістері бойынша сорттайтын индекстер құрайық:
CREATE INDEX ... ON STAFF ... ... Осы ... тағы да ... ... салық төлеушінің коды және баған бойынша табельдік номері бар екі индекс құрыңыз:
CREATE UNIQUE INDEX ... ON STAFF ... ... UNIQUE INDEX ... ON STAFF (TabNum)
UNIQUE кілттік сөзі берілген индекстер ... ... ... ... Енді JOBS кестесіне индекс құрыңыз:
CREATE INDEX JOBS_INDEX1 ON JOBS (EmpID, StartDate)
Бұл индекс жұмыс барысын айы, күні, жылы ... ... үшін ... ... ... ... үшін INSERT ... қолданылады. Мысалы, Staff.gdb деректер қоймасындағы REGIONS кестесіне біраз өрістер ендірейік:
INSERT INTO ... ... INTO ... ... REGIONS ... Алматы облысы Талғар ауданы Рысқұлова ауылы қосылады. Енді INSERT ... ... ... ... ... қарастырайық. STAFF кестесіне бір өріс ендірейік. ... ... ... аударыңыз аа/кк/жж):
INSERT INTO STAFF(ID, LastName, FirstName, FatherName,
Zip, BirthDate, DepID,PosID,TabNum)
VALUES(0, `Карынбаев','Койшыбай','Балхышович',8303,'26/08/1950',0,0,'0')
Нәтижесінде STAFF кестесіне 0 ... бар ... ... Бұл жазбаларды SQL -да жазғаннан кейін ... ... ... ... ... өзгерістер ендіретін транзакция (Transaction) деп аталатын менюдің ішіндегі Commit командасын ... Ал Rollback ... ... ... ... қайтадан бұрынғы қалпына келтіруге ... Егер ... ... ... қоймасында сақталып қалса, онда оны бұрынғы қалпына қайта келтіре ... ... ... ендірілген деректерді көру үшін, SQL -да SELECT ... ... ... ... бұл ... мына ... ... болады:
SELECT * FROM REGIONS
1. Осы команданы орындауға жіберіңіз, сонда терезенің ең ... ... REGIONS ... таңдап алынған өрістер пайда болады. Мұндағы ... REGIONS ... ... ... ... ... мүмкіндік береді.
* Осы командаға кішкене өзегрістер ендіріңіз:
SELECT Zip, City FROM REGIONS
Нәтижесінде Zip және City ... ... ғана ... ...
* Енді ... команданы орындаңыз:
SELECT Area FROM ... ... ... мәні бар екі өріс ... ...
* ... команданы сәл өзгертіңіз:
SELECT DISTINCT Area FROM REGIONS
Кестелерді байланыстыру
Кестелерді ... ... екі ... ... бірінші SELECT операторындағы FROM кілттік сөзімен ... ... ... ... содан кейін WHERE кілттік сөзі ... ... ... ... кестелер байланысады. Келесі мысалды қарастырайық:
SELECT STAFF. LastName, STAFF.FirstName, STAFF.FatherName,REGIONS.City
FROM STAFF, ... ... = ... ... ... нәтижесінде деген төрт өрістен тұратын жол пайда болады. Бұл жерде ZIP ... ... REGIONS ... STAFF кестесі байланысады. Деректер қоймасында сақталған кестелерге өзгерістер енгізу үшін SQL ... UPDATE ... ал ... ... ... ... үшін DELETE командасы және кестенің өзін ... ... DROP TABLE ... қолданылады. InterBase деректер қоймасына қосылу үшін CONNECT ... ... ...
710565092011500710565092011500710565092011500 CONNECT "d:\programs\staff\base\staff.gdb"
USER "SYSDBA" PASSWORD "masterkey"
Ал деректер қоймасынан шығу үшін ... ALL ... ... ... - GEN_ID() ... көмегімен автоматты түрде бағанға ... ... ... ... сан болып табылады. Генераторлар көп жағдайда бірінші кілт құрамына ... ... ... ... үшін қолданылады. InterBase деректер қоймасы құрамында көптеген генераторлар орналастыруға ... және олар кез- ... ... ... ... ... ... деректер қоймасында STAFF, DEPS, және POSS кестелерінің бірінші жолдарына (идентификатор ... ... ... үшін ... үш ... ... Ол үшін ... SQL команданы орындаңыз:
CREATE GENERATOR STAFF_ID_GEN;
CREATE GENERATOR STAFF_ID_GEN;
CREATE GENERATOR STAFF_ID_GEN;
514350057150000434340057150000 Нәтижесінде деректер қоймасында үш ... ... Оған көз ... үшін IBConsole программасындағы негізгі терезеге ... ... ... ... ... Servers Local Server ... STAFF.GDB Generators командаларын орындаңыз. Сонда 6- суреттегідей ... ... ... ... ... ... ... үш генератор
Генераторлар құрғаннан кейін ағымдағы ... жаңа ... қосу ... ... ... ... да бір ... үлкейту керек. Сол үшін біз триггерді қолданамыз.
Триггер (trigger) - бұл ... ... ... ... орындалатын, SQL тіліндегі бағдаралама. Staff.gdb деректер қоймасына бірнеше триггер ... STAFF ... ... ... FAMILY және JOBS ... ... ... өшіретін триггер құрайық:
SET TERM ^ ... TRIGGER ... FOR ... ... ... FROM ... EmpID = ... FROM JOBS
WHERE EmpID = OLD.ID;
END
Мұндағы кілттік сөз BEFORE ... INSERT, UPDATE және DELETE ... ... ... білдіреді. Бірнеше операциялардан кейін орындалатын триггерді құру үшін BEFORE ... ... AFTER ... қолданамыз.
2. Енді STAFF, DEPS және POSS кестелері үшін генераторға сәйкес ... ... ... үшін GEN_ID ... ... үші ... құрайық:
SET TERM ^ ;
CREATE TRIGGER STAFFInsert FOR STAFF
BEFORE INSERT POSITION 0
AS BEGIN ... = ... ... ... TRIGGER DEPSInsert FOR DEPS
BEFORE INSERT POSITION 0
AS BEGIN ... = DeptID = ... ... ... TRIGGER ... FOR ... INSERT POSITION 0
AS BEGIN ... = PosID = GEN_ID(POSS_ID_GEN, 1);
END ^
POSITION кілттік сөзі бір ... ... ... ... ... ... анықтау үшін қолданылады. Қазіргі жағдайда POSITION 0 INSERT операциясымен байланысқан ... ... ... ... орындалатын триггер болып саналады.
Индекстер. ... - да ... құру үшін CREATE INDEX ... ... процедурасы
Staff.gdb деректер қоймасында бөлімге бағынатындар тізімдерін реттестіретін процедураны ... ... ... ... құрамында бөлімінің иерархиялық құрылымы қарастырылады. DEPS ... ... ... ... ... көрсетіледі. Егер бөлім болмаса , онда ... мәні 0 ... TERM ^ ... ... ... (pDeptID ... ... BEGIN
FOR SELECT DeptFullName FROM DEPS
WHERE ParentDeptID = :pDeptID
INTO :rDeptFullName
DO SUSPEND;
END
Бұл процедураға ... ... ... pDeptID параметрі, ал нәтижесі ретінде бөлімге бағынатын қызметкерлердің тізімі беріледі. ... ... ... ... RETURNS ... сөзі ... анықталады. Процедураның атынан кейін есептелетін параметрлер ендіру(input), ал RETURNS ... ... ... есептелгендер шығару(output) деп аталады. Енді қызметкер ... ... ... ... ... TERM ^ ... ... DeleteEmp (pEmpID integer)
AS BEGIN
DELETE FROM STAFF
WHERE ID ... ... ... ... арқылы анықталған қателер туралы хабарлама механизмі ... ... Бұл ... ... сақталған процедуралар мен триггерлердің көмегімен жүзеге ... ... - да жаңа ... ... үшін CREATE ... ал өшіру үшін DROP EXCEPTION командасы ... ... ... ... ... DEPS, POSS, REGIONS кестелеріндегі жолдарды біреу өшіргісі келгенде, дәл сол ... ... үш ... ... Ол үшін ... ... негізгі терезеден бұтақ тәріздес құрылымның STAFF.GDB ... ... ... ... қатарындағы SQL белгішесіне тышқан тетігінің сол жақ ... ... ... ... ... ... операторларды жазыңыз:
CREATE EXCEPTION Dept_Is_Busy `Бұл ... ... ... бар. ... мүмкін емес.';
CREATE EXCEPTION Pos_Is_Busy `Бұл қызметке қызметкерлер
кестесінде ... бар. ... ... ... ... ... `Бұл регионға қызметкерлер
кестесінде ... бар. ... ... емес.'
CREATE EXCEPTION Dept_Has_Children `Бұл ... ... ... бар ... ... Staff.gdb деректер қоймасында 4 ... ... ... ... Staff.gdb деректер қоймасында анықталған 4 шығару
Енді осы шығаруды шақыруға арналған ... ... ... ... - бұл ... ... ...
SET TERM ^ ;
CREATE TRIGGER DEPSDelete FOR DEPS
BEFORE ... ... VARIABLE ... ... ... FROM ... DepID ... : CountOfRefs;
IF (:CountOfRefs > 0) THEN
EXCEPTION Dept_Is_Busy;
SELECT COUNT(ID) FROM STAFF
WHERE DepIDIN (SELECT DeptID FROM ... ... = ... : ... (:CountOfRefs > 0) THEN
EXCEPTION Dept_Has_Children;
END^
CREATE TRIGGER POSSDelete FOR POSS
BEFORE DELETE
AS
DECLARE VARIABLE CountOfRefs integer;
BEGIN
SELECT COUNT(ID) FROM ... PosID ... : ... ... > 0) ... Pos_Is_Busy;
END^
CREATE TRIGGER REGIONDelete FOR REGIONS
BEFORE DELETE
AS
DECLARE VARIABLE CountOfRefs integer;
BEGIN
SELECT COUNT(ID) FROM STAFF
WHERE Zip =OLD.Zip
INTO : ... ... > 0) ... ... ... бағдарламасындағы негізгі терезедегі көрініс(view). Мұнда ешқандай деректер сақталмайды. Бұл - ... ғана SQL ... ... ... ... CREATE VIEW ... көмегімен құрылады. Соған сәйкес біз қызметкерлер жайлы барлық мәліметтерді ... FullList ... ... VIEW FullList ... ... staff.LastName, staff.FirstName, staff.FatherName,
staff.Zip, regions.Area, regions.Region, regions.City,
staff.Street, staff.House, staff.Tel, staff.TaxCode,
staff.TabNum, staff.BirthDate, staff.DepID, deps.DeptShortName,
deps.ParentDeptID, ... ... ... poss.PosLevel, staff.BornPlace, staff.Salary,
staff.PasspNum, staff.PasspDate, staff.Photo
FROM staff INNER JOIN regions ON staff.Zip = regions.zip
INNER JOIN deps ON ... = ... JOIN possON ... = ... ... ... тек STAFF ... ғана емес, сонымен қатар REGIONS, DEPS және POSS кестелеріндегі әрбір қызметкердің деректері ... да ... ... ...
Міне сонымен, біздің алдағы құратын ... ... ... де SQL - да ... ... Енді осы ... ... құрылымын бастауға кірісейік. Ол үшін:
* Delphi 7 ... ... ... 10210809017000File New Application командасын ... ... жаңа ... ... ... Save All ... ... негізгі форманың бағдарламалық ... ... ал файл ... атын - ... деп жаңа ... ... 2400300939800017145009398000102870010477500File New Data Module ... ... ... ... жаңа ... ... қосыңыз. Мәліметтер модулінде SQL- серверге кіру үшін және мәліметтер тобымен жұмыс істеуге ... ... ... ...
* Save All ... ... бағдарламалық модульдің атын StfDMod.pas деп сақтаңыз.
Бірден проектіге SQL- серверге қосылу ... ... тағы да бір ... қосыңыз. Ол формада деректер қоймасын орналастыру, ... аты және ... ... ...
* ... үшін File New Form ... ... кейін File Save командаларын орындап бағдараламалық ... аты ... ... ... StfMain ... ... INTERFACE бөлімінде StfDMod және StfLogin модульдеріне тапсырысын қосыңыз және StfLogin - нің де дәл сол ... StfDMod ... ... ... Негізгі форманың Инспектор ... ... Name ... fmMain мәнін жазыңыз. Екінші форма және мәліметтер ... дәл осы ... fmLogin және dmStaff ... ... fmMain және fmLogin ... ... қасиеттеріне 1- кестедегідей мәндерді ... ... fmMain және fmLogin ... қасиеті
Қасиеті
Мәні
Түсініктеме
fmMain формасының қасиеті
Caption
Персонал
Форманың тақырыбы
Position
poScreenCenter
Қосымшаны жүктеген кезде негізгі ... ... ... орналасады.
Visible
False
Қосымшаны жүктеген кезде негізгі форма, fmLogin ... ... ... ... ... ... ғана ...
fmLogin формасының қасиеті
Border Style
bsDialog
Форма өлшемдердің өзгерісіне қарамайды
Caption
Деректер қоймасына қосылу
Height
130
Пиксель мен форманың биіктігі
Position
poScreenCenter
Width
460
Пиксель мен ... ... ... ... формасының конструктор режиміндегі ... ... мына ... ... ... .
8-сурет. fmLogin формасы
Бұл формада Additional бөлімінде орналасқан LabeledEdit компонентінің үшеуін және BitBtn ... ... ... Енді осы компоненттердің мәндерін 2- кестемен сәйкестіріп ... fmLogin ... ... ... компоненттері
Name қасиеті - компонент аты
* Name = laedDatabase
* Name = laedUser
* Name = ... ... ... ... үшін
Left
8
laedDatabase laedUser үшін
164
laedPassword үшін
PasswordChar
*
laedPassword үшін-пернетақтадан ендірілген белгілердің орнына ендірілетін белгі
Top
24
laedDatabase үшін
72
laedUser және ... ... ... және ... ... компоненттері
* Name = bbFind
* Name =bbConnect
3. Name = bbCancel
Kind
bkCancel
bbCancel үшін
Caption
Деректер қоймасын табу
bbFind үшін
Қосылу
bbConnect үшін
Қайтару
bbCancel ... үшін - ... ... Бұл ... тышқан мен "Enter" батырмаларының қызметтерінің бірдей екендігін білдіреді.
Enabled
False
bbConnect үшін-қосылу ... ... ... Батырма істен шығарылулы
Left
324
Top
12
bbFind үшін
40
bbConnect үшін
68
bbCancel үшін
Width
120
Енді ... ... үшін ... ... тапсырыс жасаңыз. Бұл fmLogin ... ... ... курсор автоматты түрде Деректер ... ... ... білдіреді.
3.5. Staff.gdb деректер қоймасына қосылу
Staff.gdb деректер ... ... үшін ... ... ... ... компонентін қолданамыз. Сонымен қатар StfLogin және StfDMod модульдеріне кішкене бағдарламалық код ... тура ... ... ... Мәліметтер модуліне SQLConnection компонентін орналаcтырып, оның Name қасиетіне ... ... ... ... ... ... екі файл ... Олар: dbxdrivers.ini және dbxconnections.ini. бұл файлдар ... ... ... ... ... қолданылуын тоқтату үшін, sqlcStaff.LoadParamsOnConnect қасиетіне ... ... False ... ... керек. Нақты бір деректер қоймасына қосылу үшін міндетті ... оның ... ... ...
3. ... деректер қоймасына қосылу үшін, инспектор объектісі терезесінен sqlcStaff.Connection-Name ... ... ... ... Нәтижесінде DriverName, GetDriverFunc, LibraryName және VendorLib ... ... ... ... ... Бұл ... драйвер және қосылу ... ... ... ... ... ... ... қолданушылардың аты және парольді ендіру үшін ... ... ... ... ... ... түрде шығаруды тоқтатуымыз керек.
4. Ол үшін sqlcStaff. LoginPrompt қасиетінде False ... ... fmLogin ... ... қоймасына қосылуды ұйымдастырайық.
Деректер қоймасына қосылудың бағдараламалық коды
* Мәліметтер ... ... ... Dialogs ... OpenDialog компонентін орналастырыңыз. Ол қолданушы fmLogin формасындағы bbFind ... ... ... ... ... staff.gdb деректер қоймасын іздеу үшін ...
* ... ... od_1 атын ... fmLogin ... барып bbFind батырмасына тышқан көрсеткішін 2 рет ... ... ... ... ... ... келесі жолдарды ендіріңіз:
with dmStaff.od_1 do
begin
Filter:= ` Деректер қоймасы InterBase/*.gdb';
FileName:=laedDatabase.Text;
If Execute then
Begin
laedDatabase.Text:=FileName;
laedUser.SetFocus;
end;
end;
Бұл жерде стандатты ... ... ... .gdb ... ... деректер қоймасының файлдарын іздеу орындалады.
5. Конструктор формасындағы ... ... ... ... 2 рет ... ... ... әдісіне келесі операторды ендіріңіз:
bbConnect.Enabled:= (laedDatabase.Text `') and
(laedUser.Text `') and
(laedPassword.Text `');
6. Формадан laedUser және ... ... ... ... ... ... Events ... таңдаңыз.
7. OnChange қасиеті үшін қазір ғана құрылған laedDatabaseChange әдісін таңдаңыз.
Енді барлық өзгерістерден кейін ... ... іске ... ... ... ... fmLogin ... bbConnect батырмасының OnClick қасиетін таңдап, оны мына ... ... ... do
begin
Params.Values[`Database']:=laedDatabase.Text;
Params.Values[`User_Name']:=laedUser.Text;
Params.Values[`Password']:=laedPassword.Text;
Params.Values[`SQLDialect']:='3';
end;
try
Screen.Cursor:=crSQLWait;
dmStaff.sqlcStaff.Open;
Screen.Cursor:=crDefault;
ModalResult:=mrOK;
except
Screen.Cursor:=crDefault;
MessageDlg(`,' +
`!', mtError,[mbOK],0);
laedDatabase.SetFocus;
end;
Бұл жерде негізгі төрт ... ... ... ... ... fmLogin формасының көрінуін орындайық. fmMain формасы ... ... ... ... ... fmLogin ... ... көрінуі керек.
125730072390001. Project ViewSource командасын ... ... код ... ... ... файл ... ашылады.
2. Оған төмендегі листингта қарайтылтылып көрсетілгендей өзгерістер ендіріңіз.
program Staff;
uses
Forms, ... in ... ... in ... ... TDataModule},
StfLogin in 'StfLogin.pas' {fmLogin},
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfmMain, fmMain);
Application.CreateForm(TfmLogin, fmLogin);
Application.CreateForm(TdmStaff, dmStaff);
if fmLogin.ShowModal=mrCancel
then Application.Terminate
else begin
fmMain.Visible:= True;
Application.Run;
end;
end.
* Бағдарламаны жүктемес бұрын ... ... ... оған ... жолды қосыңыз:
dmStaff.sqlcStaff.Close;
Бұл жолда staff.gdb деректер қоймасының жұмысын аяқтағаннан ... ... ... ... ... Проектіні сақтап, оны жүктеуге жіберіңіз.
* fmLogin формасында staff.gdb деректер ... ... ... қолданушының атын (SYSDBA) және парольді (masterkey) жазып көрсетіңіз.
* Содан кейін ... ... ... ... ... ... ... қосылу
Сонда нәтижесінде staff.gdb деректер қоймасына қосылу әрекеті орындалады да экранда fmMain ... ... ... жауып проектіні тағы да жүктеуге ... Бір ... ... ба? ... ... ... жолды және қолданушының атын тағы да ... тура ... ... біз ... ... Windows ... реестрында HKEY_CURRENT_USER\SoftWare\Staff деп сақтауымыз керек. Сонда ... біз тек қана ... ғана ... ... Delphi- да ... ... ... істеген онша да қиын емес.
* TRegistry класының ... ... ... ... ... құру және ... Ағымдағы реестр бөлімінде сақталған бір немесе бірнеше параметрлердің мәндерін ... және ... ... бөлімді жабыңыз.
* TRegistry класының объектісін өшіру.
бағдарламасында оған барлық қалған ... кіре ... ... ... ... оқу және жазу ... қарастырамыз. Ең алдымен жолдық параметрлердің мәндерінің функцияларын құрамыз.
* StfDMod ... ... ... TdmStaff ьәліметтер модулінің хабарлау класы және var кілттік ... ... ... ... ... . .
Procedure WriteStrParam(sName,sValue: string);
Function ReadStrParam(sName: String): string;
Var
dmStaff: TdmStaff;
* StfDMod ... ... ... екі ... құрылымын көрсетіңіз:
Implementation
{SR *.dfm}
Procedure WriteStrParam(sName,sValue: string);
Var Reg: TRegistry;
Begin
Reg:= TRegistry.Create;
With Reg do
Begin
OpenKey(`Software\Staff',True);
WriteString(sName,sValue);
CloseKey;
Free;
End;
End;
Function ReadStrParam(sName: String): string;
Var Reg: ... Reg ... fmLogin ... ... модуліне толықтырылулар ендіріңіз. Бірақ алдымен, ... ... екі ... ... . .
try
. . .
WriteStrParam (`Деректер ... ... . . ... ... ... жақсы орындалса, онда нәтижесінде қолданушы аты және ... ... ... ... ... реестрінде сақталатын болады.
* Енді fmLoginOnCreate ... ... оның ... ... ... ендіріңіз:
laedDatabase.Text:=ReadStrParam(`Деректер қоймасы ');
laedUser.Text:=ReadStrParam(`Қолданушы');
Осындай әдіспен fmLogin формасын құрған ... ... ... және ... ... ... ... параметрдің мәндері ендіріледі.
* ... ... ... ішіне мына төмендегі жолды ... ... `' then ... жол ... ... құрған кезде деректер ... және ... аты ... ... оқылып, курсор Пароль өрісіне орналасатындығын білдіреді.
* Проектіні сақтап, ... ... ... staff.gdb файлына баратын жолды , қолданушының атын және парольді ... ... ... ... әрекетін орындаңыз.
* Осыдан кейін бағдарламаны жауып, ... тағы да ... ... жіберіңіз.
Нәтижесінде fmLogin форма бетінде біз тек қана ... ғана ... ... ... ... одан ары ... ... dbExpress - тің қалған компоненттерімен қысқаша танысып ... Оның ... ... ... ... ... SQLMonitor және SimpleDataSet компоненттері кіреді. SQLTable, SQLQuery, SQLStoredProc компоненттерінің функциялары SQLDataSet компонентінде де ... ... олар жеке ... ... компоненті - біз осы бағдарламаны құрар алдында естеріңізде болса, SQL - да ... ... ... ... міне сол ... ... ... осы компонент жұмыс істейді. ТSQLDataSet ... ... ... CommandType және CommandText болып табылады. CommandType қасиетінің мәні ... ... ... ... орындалады.
ctQuery - бұл SQL оператор.
ctStoredProc- сақталған процедураның ... - ... ... ... ... ... ... компоненті кестенің барлық жазбалары мен өрістерін автоматты түрде SQL - операторы Select ... ... енді ... құрамыз:
Мәліметтер модулі. Алдыңғы бөлімдерде SQLConnection компоненті көмегімен ... ... ... ... ... ... Енді ... сақталған кестелерге кіруді қарастырамыз. Кестелермен жұмыс істеу үшін ... ал ... ... кіру үшін SQLDataSet және SQLQuery компоненттерін қолданамыз.
1. ... ... ... ... ... бөлімінен жеті SimpleDataSet компонентін орналастырып, олардың қасиеттеріне 3- кестедегідей ... ... ... ...
Қасиеті
Мәні
Түсініктеме
Name
sidsStaff
FullList кестесімен жұмыс істеу үшін
sidsDeps
Deps кестесімен жұмыс істеу үшін
sidsPoss
Poss кестесімен жұмыс ... ... ... ... ... ... кестесімен жұмыс істеу үшін
sidsFamily
Family кестесімен жұмыс істеу үшін
sidsStaffMid
Staff ... ... ... ... деректер тобы
Connection
sqlcStaff
DataSet.CommandType
ctQuery
sidsStaff үшін деректерді таңдауда SELECT операторы қолданылады.
ctTable
Ал қалғандарына осы ... ... * from ... ... үшін
POSS
sidsPoss үшін
REGIONS
sidsRegions үшін
JOBS
sidsJobs үшін
FAMILY
sidsFamily үшін
STAFF
sidsStaffMid ... үшін ... ... ... ... ... StartDate
sidsJobs үшін
EmpID,Kin, BirthDate
sidsFamily үшін
ID
sidsStaffMid үшін
SimpleDataSet компоненті ... ... ... ... үшін ... ... ... Егер де TSimpleDataSet.ApplyUpdates әдісін шақырмасақ, онда бұл ... ... ... ... ... арқылы ендірілген өзгерістердің барлығы да ... ... ... sidsStaff деректер тобы негізгі болып табылады.
Серверде сақталған процедураларға ... ... ... ... және ... Олардың біріншісі Deps кестесінің ішінен бөлімге ... ... ... Ал ... кіру үшін ... SQLQuery ... ... Екіншісі сақталған процедура ... ... ... ... ... ... Ал оған кіру үшін ... ... ... ...
* ... ... SQLQuery компонентін орналастырыңыз.
* Оның Name қасиетіне ... ... ... SQLConnection қасиетінде sqlcStaff компонентіне тапсырыс жасаңыз.
* Инспектор объектісі терезесіндегі SQL ... ... ... ... 2 рет басып, пайда болған редакторда келесі SQL ... ... * from ... ... ... үшін ОК ... тышқан тетігін басыңыз.
* Содан кейін инспектор ... ... Params ... ... ... ... 2 рет ... Нәтижесінде сұраныс параметрлері редакторы ... ... ... ... тек бір ғана ... - pDeptID қолданылады. тізім ішінен оны ... ... да, ... ... ... DataType қасиетін таңдап, оған ftInteger мәнін беріңіз. Ал ParamType қасиетінен ptInput ... ...
* ... ... ... ... компоненті
* Мәліметтер модуліне SQLDataSet компонентін орналастырыңыз.
* Оның Name қасиетіне SQLDeleteEmp мәнін ... ... ... ... ... тапсырыс жасаңыз.
* sqldsDeleteEmp.CommandType қасиетінде ctStoredProc мәнін таңдаңыз. Ал sqldsDeleteEmp.CommandText қасиетіне DeleteEmp мәнін беріңіз.
* Енді ... ... ... Params ... ... ... тетігін 2 рет шертіңіз. Нәтижесінде сақталған процедураның параметрлерінің тізімдері автоматты ... ... ... ... ... құрылымы
Деректер бөлімінде өрістердің ... ... ... ... міндетті түрде TField класындағы объектілерді құруымыз керек:
* Ол үшін ... ... ... ... 2 рет ... ... ... редакторды өрісін пайдаланамыз.
* Редактор өрісін ашу үшін sidsStaff компонентіне ... ... 2 рет ... Оған ... ... оң жақ ... ... пайда болған жанама менюден AddAllFields (Барлық ... ... ... ... ... ... ... FullList өрісінің толық тізімі пайда болады.
* Дәл ... ... ... ... ... ... объектілерін құрыңыз.
* Объек өрістерінің қасиеттерін 4- кестеге сәйкестендіріп толтырыңыз.
4- ... ... ... ... ... да ... компоненті
LastName
Тегі
FirstName
Аты
FatherName
Әкесінің аты
DeptShortName
Бөлімі
PosShortName
Қызметі
sidsDeps компоненті
DeptID
ID
DeptFullName
Толық атауы
DeptShortName
Қысқартылған атауы
ParentDeptID
ID
sidsPoss компоненті
PosFullName
Толық ... ... ... = 00000- ... ... компоненті
StartDate
Басы
DisplayFormat =
dd/mm/yyyy- айдың, күннің, жылдың көріну форматы
DisplayWidth=9
StopDate
Соңы
DisplayFormat =
dd/mm/yyyy
DisplayWidth=9
CurOrg
Тек.орг.
sidsFamily компоненті
Kin
Туыстық
BirthDate
Туған жылы
DisplayFormat =
dd/mm/yyyy
DisplayWidth=9
KinName
Аты
4- кестеде көрсетілген ... Visible ... True, ... ... False болады.
Ескерту: Деректер қоймасынан ... ... ... ... бұрын sqlcStaff.Connected қасиетін False деп беріңіз.
Басты форма
* fmMain формасына ToolBar компонентін ... Оның Name ... tlbName ... ал EdgeBorders және Indent қасиеттеріне [edBottom] және 5 мәндерін беріңіз. Indent қасиеті инструменттер панелінде ... ... сол ... анықтайды.
* Формаға компонентер палитрасындағы ... ... TВitBtn ... ... Оның Name ... bbExit деп, Kind ... bkClose және Caption қасиетіне Шығу деп жазып таңбалаңыз.
* форманың кез- келген бос ... ... ... ... Оның Name қасиетіне pcMain, ал Align қасиетінде alClient мәнін ... Оған ... оң жақ ... ... ... ... ... менюден NewPage командасын орындаңыз.
Нәтижесінде TTabSheet класының ... ... ... ... ... қарапайым панель болып табылады. Оған аталған бөлімдегі ... ... ... ... ... ... ... PageControl компонентінің құрамында бір-біріне тәуелді емес ... ... ... компоненттері орналасады.
"Персонал" қосымшасының Қызметкерлер, Анықтамалар және Қосымша параметрлері деп ... үш ... ... қолданушы интерфейсінің барлық басқару элементтерін ...
8. ... ... өзін ... ... ... тақырыбына тышқан тетігін басу керек, ал TТabSheet ... ... ... ... ... басу ...
9. ... құрылған TabSheet компонентін таңдаңыз, оның Name қасиетіне tsStaff мәнін, ал Caption ... ... ... ... Осындай әдіспен тағы да екі бөлік орналастырып, олардың Name ... tsDicts және ... ... ал Caption қасиетіне Анықтамалар және Қосымша ... ... ... pcMain.TabWidth қасиетіне 200 мәнін беріңіз.
12. ... ... ... fmMain.OnCreate, fmMain.OnActivate, fmMain.OnClose өңдеу оқиғаларын құрыңыз. (fmMain формасын бөліп алу ... ... ... ашылған тізімнің көмегімен ... Object TreeView ... ... орындалады. Түсіндірмелерін ендірмесеңіз де ... ... ... ... // ... ... кезде
// "Қызметкерлер" бөлігі істеп тұрады.
end;
procedure TfmMain.FormActivate(Sender: TObject);
begin
with dmStaff ... ... ... ... шығарамыз
begin
sidsDeps.Open;
sidsPoss.Open;
sidsRegions.Open;
sidsJobs.Open;
sidsFamily.Open;
end;
end;
procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// Деректердің барлық клиенттік ... ... dmStaff ... // ... ... ... ... сақтап, қосымшаны жүктеңіз.
14. Қосымшаны жауып, форма құрастырушыға келіңіз. ... ... ... ... ... ... ... екі Анықтамалар және Қосымша параметрлері бөліктерінің ... ... ... ... ... ... DataAccess бөлігінен DataSource компонентінің екеуін формаға орналастырыңыз.
16. Олардың Name қасиеттеріне dsStaff және dsDicts ... ... ... ... ... ... ... ал dsStaff.DataSet компоненті үшін, dmStaff.sidsDepts компонентіне тапсырыс жасаңыз.
Анықтамалар бөлігі
* ... ... ... ... барыңыз, сосын оған 1- листингтағы ... ... ... листинг. Анықтамалар бөлігіне орналастырылатын басқару элементтері
Object tlbDicts: TToolBar
Height = ... = ... = ... cbDicts ... = ... = 3
Width = 121
Height = 21
Style = csDropDownList
ItemIndex = 0
TabOrder = 0 ... = ( ... ... ... ... ... ... = 121
Top = 2
Width = 113
Height = ... = ... ... = ... = [fsBold]
end
object dnaDicts: TDBNavigator
Left = ... = ... = ... = 23
DataSource = dsDicts
end
end
object dgrDicts: TDBGrid
Align = alClient
DataSource = dsDicts
end
Сонда нәтижесінде құрастырушыдағы Анықтамалар бөлігінің сыртқы ... 10- ... ... ... ... Форма құрастырушыдағы Анықтамалар ... ... ... оқиғасын құрамыз.
* pcMain компонентін қарайтып, оған бөліктен - бөлікке ... ... ... OnChange ... ... ... TfmMain.pcMainChange(Sender: TObject);
begin
// ағымдығы таңдалған бөлікті индексі бойынша тексеру
case pcMain.TabIndex of
0: ;
1: with dmStaff ... // Deps ... ... ... // Poss кестесінің ... ... // Regions ... ... ... // ... торына курсорды апарамыз
end;
2: ;
end;
end;
* Құрастырушы ... cbDict ... ... ... екі рет ... ... cbDictChange әдісіне келесі бағдарламалық кодты қосыңыз:
case cbDict.ItemIndex of
// "Бөлім" ... ... ... ... ... ... ... таңдау
1: dsDicts.DataSet:=dmStaff.sidsPoss;
//"Региондар" элементі тізімінен ... dsDicts ... ... ... екі рет ... ... ... жазбадағы деректер тобының кез- келген өзгерісі кезінде ... ... ... ... ... Оның көмегімен ағымдағы ... ... ... ...
5. ... әдісіне келесі фрагмент кодын орналастырыңыз:
paCountRef.Caption:= ... + ... ... IntToStr ... ... ... мәндерді мәтіндікке ауыстыру үшін қолданылады. Осындай әдіспен ... ... ... күйі ... ... / форматында көрінеді.
* Проектіні сақтап, қосымшаны ... ... ... ... ... тізімнен әртүрлі элементтерді бірінен соң ... ... ... ... ... деректер торы 11- суреттегідей ... ... ... ... ... Анықтамалар бөлігі
* Қосымшаны жауып форма құрастырушыға ... ... ... ... деректер тобын редактірлеумен байланысқан бірнеше өңдеу ... ... ... ... операциялардан кейін шақырылатын, серверге деректер тобындағы өзгертулерді тасмалдау мақсатында қолданылатын операцияларды ... ... ... ... ... интерфейстік бөлігіне ApplyOperation функциясын хабарлаңыз:
type
TdmStaff = class(TDataModule)
. . .
function ApplyOperation(sids: TSimpleDataset): integer; ... . .
2. ... ... осы функцияның алмасуын құрыңыз:
function TdmStaff.ApplyOperation(sids: TSimpleDataset): integer;
begin
with sids do
begin
Result:=ApplyUpdates(0); // ... ... саны ... // ... ... ... кейін
// деректер тобының жаңартылуы
end;
end;
sidsDeps деректер тобының оқиғаларыy өңдеу
sidsDeps деректер тобы Deps кестесіне ... ...
* ... ... sidsDeps ... таңдаңыз.
* Инспектор объектісі көмегімен ... ... ... ... оған ... ... орн.аластырыңыз:
sidsDeps.Parents.Clear;
* OnAfterPost өңдеу оқиғасын құрыңыз:
procedure TdmStaff.sidsDepsAfterPost(DataSet: TDataSet);
var Parents: string[100]; ... ... ... ... ... integer; // ... ... идентификаторы
begin
DepsChanged:=True;
if ApplyOperation(sidsDeps)=0 then // Деректер ...
// ... ... ... ... ...
// уақытша жасыра тұрамыз
with sidsDeps do
begin
Parents:='';
First;
while not EOF do
begin
if (sidsDepsParentDeptID.AsInteger>0) and
(sidsDepsParents.AsString= '')
then begin
// Ағымдағы ... еске ... ... ... Parents '' ... else ... орындауда кеткен қате!',
mtError,[mbok],0);
end;
* Деректер тобынан жолдарды өшіргеннен кейін шақырылатын sidsDepsOnAfterDelete өңдеу ... ... Оған ... ... орналастырыңыз:
if ApplyOperation(sidsDeps)>0 then
MessageDlg('Операция жарамсыз!', mtError, [mbok],0);
* sidsDepsOnReconcileError ... ... ... Оған ... ... ... mtError, ...
Мұндағы Е параметрі - ЕreconcileError класының объектісі.
sidsPoss деректер тобының оқиғаларын өңдеу
Бұл жерде ... ... ... ... ...
* ... өңдеу оқиғасын құрыңыз. Оған келесі ... ... ... ... оқиғасын құрыңыз. Оған келесі ... ... ... ... терезесіндегі sidsPoss.OnAfterPost оқиғасы үшін sidsPossAfterDelete өңдеу ... ... ... ... ... ... үшін sidsDepsOnReconcileError өңдеу әдісін ... ... ... оқиғаларын өңдеу
* sidsRegions.OnAfterDelete өңдеу оқиғасын құрып, оның ішіне ... ... ... sidsPoss ... тобындағыдай, инспектор объектісі терезесінен sidsRegions.OnAfterPost оқиғасы үшін sidsRegionsAfterDelete ... ... ... ... тәсілмен sidsRegions.OnReconcileError оқиғасы үшін ... ... ... ... sidsJobs, sidsFamily, sidsStaffMid деректер топтарына да OnReconcileError оқиғасы үшін sidsDepsOnReconcileError ... ... ... ... ... бұрын StfDMod.pas модулінің implementation бөлімінде StfMain.pas модуліне төмендегідей түрде ... ... ... Енді ... сақтап, қосымшаны жүктеуге жіберуге болады.
DEPS, POSS, REGIONS ... ... ... ...
* ... үшін құрылған қосымшаға төмендегідей деректер ендірілген. (12-сурет-ке ... ... DEPS ... ... ... тағы да 4 ... ... көрсетіңіз. Олар: Директор, Директордың орынбасары, Бөлімше ... ... ... ... POSS ... құрамындағылар
* REGIONS кестесіне қызметкерлердің тұратын мекен жайлары туралы ... ... ... ... ... ... ... параметрлері бөлімі
1. Форма құрастырушыдағы Қосымша параметрлері бөліміне ... 2- ... ... ... ... листинг. Қосымша параметрлері орналастырылатын басқару элементтері
Object valeParams: TValueListEditor
Height = ... = ... = ... = ... ... = ... ... коды='
`Ұйым басшысы (қызметі)='
`Ұйым басшысы ... ... ... = ... = ... = 117
Height = 25
Caption = `Қалпына ... btSave: ... = ... = ... = ... = ... = ... = False
End
Сонда бағдарламаның сыртқы көрінісі 13- ... ... ... Бұл ... ... ... жұмыс істемейді. Ол үшін ол ... ... ... ... ... ... жұмыс істейтін болады. Содан кейін ендірген деректерді сақтаймыз. (14-суретке ... ... ... ... ... ... бөліміндегі басқару элементтері үшін өңдеу ... ... ... құрастырушыдағы fmLogin ... ашып ... ... ... ... 2 рет шертіңіз.
3. Пайда болған bbConnectClick әдісіне ... ... ... ... ... ендіріңіз:
procedure TfmLogin.bbConnectClick(Sender: TObject);
var Reg: TRegistry;
begin
with dmStaff.sqlcStaff do
begin
Params.Values['Database']:=laedDatabase.Text;
Params.Values['User_Name']:=laedUser.Text;
Params.Values['Password']:=laedPassword.Text;
Params.Values['SQLDialect']:='3';
end;
try
Screen.Cursor:=crSQLWait;
dmStaff.sqlcStaff.Open;
Screen.Cursor:=crDefault;
Reg:=TRegistry.Create;
if not Reg.KeyExists('Software\Staff') then
begin
WriteStrParam('Уйым','Біздін уйым');
WriteStrParam('Уйым коды','');
WriteStrParam('Уйым басшысы ... ... ... базасы',laedDatabase.Text);
WriteStrParam('Қолданушы',laedUser.Text);
ModalResult:=mrOK;
except
Screen.Cursor:=crDefault;
MessageDlg('Деректер базасы дурыс көрсетілген жоқ, '+
'колданушы немесе пароль!',mtError,[mbOK], 0);
laedDatabase.SetFocus;
end;
end;
4. TRegistry класын қолдану үшін StfLogin.pas ... ... ... uses ... Registry деп хабарлаңыз.
5. Форма құрастырушыдағы fmMain формасына барыңыз.
6. Ағымдағы ... ... ... оқиғасын тауып, оның ... ... ... ... ... ... ... of
. . .
2: with valeParams do
begin
Col:=1; // ... ... ... TfmMain ... private ... ... процедурасын хабарлаңыз. Ол мына түрде:
private
{ Private declarations }
procedure ... ... ... ... ... құрыңыз:
procedure TfmMain.LoadParams;
var i: integer;
begin
with valeParams do
begin
ItemProps[0].EditStyle:=esEllipsis;
for i:=0 to ... ... ... ... ... ... ... барлығына арналған қасиеттер ... ... да ... листингтағыдай қасиеттерді таңдаймыз.
9. Бірінші параметр өрісінде ... және ... ... ... басқан кезде пайда болатын ... өдеу ... ... ... ... dmStaff.od_1, valeParams Do
begin
Filter:='Деректер базасы InterBase/*.gdb';
FileName:=Cells[Col,Row];
if Execute then
begin
Cells[Col,Row]:=FileName;
btSave.Enabled:=True;
end;
end;
end;
10. Қолданушы пернетақтаның пернесін ... ... ... ... ... ... құрыңыз және оның ішіне төмендегі бір ғана ... ... ... өңдеу оқиғасын құрып, оның ішіне келесі жолдарды ендіріңіз:
LoadParams
btSave.Enabled:=True;
12. Сонымен ... тағы да ... ... оқиғасын құрып, ішіне келесі операторларды ендіріңіз:
procedure TfmMain.btSaveClick(Sender: TObject);
var i: ... ... ... i:=0 to ... do
WriteStrParam(Keys[i], Values[Keys[i]]);
btSave.Enabled:=False;
end;
Осындай әдіспен, параметр мәніне өзгерістер ... ... ... ... ... ... бассақ онда жүйелік реестрдағы мәндерін қайтадан қалпына ... ... Ал егер де, ... ... соң ... ... ... онда сол күйінде жүйелік ... ... ... ...
13. Енді fmMain.OnActivate өңдеу оқиғасында LoadParams ... ... қосу ғана ... Оны мына түрде шақырамыз:
procedure TfmMain.FormActivate(Sender: TObject);
begin
. . .
LoadParams;
end;
14. Проектіні сақтап, қосымшаны жүктеуге ... ... жаңа ... ... тышқан тетігін Сақтау батырмасына ... ... ... ... ... келіңіз.
Қызметкерлер бөлімі
Енді "Персонал" қосымшасының негізгі бөлігін өңдеуге ... ... ... ... ... ... ... орналасуы керек. Форма құрастырушыдағы ... ... ... оның ... 3- ... ... ... орналастырыңыз:
3-листинг. Қызметкерлер бөлігіне орналастырылатын басқару ... slMain: ... = ... ... ... = 200
Align = alLeft
HideSelection = False
end
object paStaff: TPanel
Align = alClient
BevelOuter = bvLowered
Visible = False
object laSearch: TLabel
Left = 128
Top = ... = ... ... ... = ... = alTop
end
object paCount: TPanel
Left = 8
Top = 8
Width = 113 ... = ... = ... = '0/0'
Font.Style = [fsBold]
end
object ckByPoss: TCheckBox
Left = 392
Top = 24
Width = 173
Caption = ... ... ... ... ... = ... = ... = 129
Style = csDropDownList
ItemHeight = 13
TabOrder = 3
OnChange = cbSearchChange
ItemIndex = 0
Items.Strings = ('Тегі бойынша
'идентификациялық коды бойынша'
'табельдік № бойынша'
'телефоны ... ... ... edSearch: TEdit
Left = 260
Top = 20
Width = 105
end
object dgrStaff: TDBGrid
Height = 180
Align = alTop
DataSource = dsStaff
Options = [dgTitles, dgColumnResize, ... ... dgTabs, ... ... ... = ... ... TToolBar
Height = 26
AutoSize = True
object dnaStaffList: TDBNavigator
Left = 0
Top = ... = ... = ... = ... = [nbFirst, nbPrior, nbNext, nbLast]
end
object btNewEmp: TButton
Left = 224
Top = 2
Width = ... = ... = ... ... ... = ... = ... = 84
Height = 22
Caption = 'Деректер'
end
object btDeleteEmp: TButton
Left = ... = ... = ... = ... = ... paData: TPanel
Align = alClient
object sgData: TStringGrid
Width = 350
Align = ... = ... = ... = ... = False
FixedCols = 0
RowCount = 17
FixedRows = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine]
end
object dimPhoto: TDBImage
Align = alClient
Color = clScrollBar
DataField = ... = ... ... ... ... құрылымын көрсетеміз.
Ол үшін TreeViewItems Editor терезесін қолданамыз. (15-сурет).
15-сурет. TreeViewItems редакторының қасиеті
1. ... ... ... ретінде қолданылатын tvStructure.Items қасиеті редакторында бір элемент ... Ол үшін New Item ... ... ... ... және Text ... жолына Толық тізім деп жазыңыз.
2. ... ... ... ... Apply ... ... ... компонентінің екі қасиетіне өңдеу ... ... ... OnChange және OnClick:
procedure TfmMain.tvStructureChange(Sender: TObject; Node: TTreeNode);
begin
paStaff.Visible:=True;
end;
procedure TfmMain.tvStructureClick(Sender: ... ... ... құрылымы
Deps кестесінен алынатын ақпарат негізіндегі бөлімнің иерархиялық ... құру ... ... процедурасын құрамыз.
1. StfMain.pas модулінде LoadStructure процедурасын хабарлаңыз:. . .
type
TfmMain = class(TForm)
. . . ... ... . .
2. ... ... осы ... құрылымын құрыңыз:
procedure TfmMain.LoadStructure;
var CurElement, CurParentID: integer;
begin
CurElement:=0; // ... ... ... саны
with tvStructure, dmStaff do
begin
Items[0].DeleteChildren; // иерархиядағы түбірінен басқа элементтердің
// барлығын өшіру
repeat
// егер ... ... ... ... ... then CurParentID:=0
else begin
sidsDeps.Locate('DeptFullName', Items[CurElement].Text,[]);
CurParentID:=sidsDeps.FieldByName('DeptID').AsInteger;
end;
with sqlqChildDeptsList do
begin
Close;
ParamByName('pDeptID').AsInteger:=CurParentID;
Open;
while not EOF do
begin
Items.AddChild(Items[CurElement],
FieldByName('rDeptFullName').AsString);
Next;
end;
end;
inc(CurElement); // ... ... ... 1-ге ... ... ... процедурасын шақыратын өңдеу оқиғасы, бұл, әрине fmMain формасындағы FormActivate әдісі:
рrocedure ... ... . . ... DEPS кестесіне қандай да бір өзгерістер ... ... онда ... ... ... ... жаңарту керек. Осындай өзгерістерді қадағалап отыру үшін, StfDMod.pas ... типі boolean ... ... глобальді айнымалысын (бұл айнымалы типі тек қана True және False ... ... . . ... ... boolean;
. . .
5. Келесі өңдеу оқиғасына керекті өзгерістерді ендіріңіз:
procedure TdmStaff.sidsDepsAfterDelete(DataSet: TDataSet);
begin
DepsChanged:=True;
. . . ... ... ... Parents: ... ... . . ... Енді қолданушы Қызметкерлер бөліміне ... ... ұйым ... ... жаңартамыз (pcMain.OnChange):
procedure TfmMain.pcMainChange(Sender: TObject);
var CurItemIdx: integer;
begin
case pcMain.TabIndex of
0: if ... ... ... ... CurItemIdx>(Items.Count-1)
then Select(Items[Items.Count-1])
else Select(Items[CurItemIdx]);
if paStaff.Visible
then dgrStaff.SetFocus else SetFocus;
end;
1: with dmStaff do
begin
DepsChanged:=False;
. . . ... . ... ... ... ... ... ... Енді tvStructure компоненті иерархиялық құрылым ... ... ... ... бөліміне барып, Қызметкерлер бөліміне жататын Кадр бөлімін 16- суреттегідей құрыңыз:
16-сурет. Жаңа Кадр ... ... - ... ... ... кестесінен қызметкерлердің деректерін таңдау, tvStructure иерархиясы элементтері көмегімен және Қызметі бойынша ... ... ... көмегімен орындалады. Бұл үшін жеке процедура құруымыз керек.
1. StfMain.pas ... TfmMain ... ... ... ... ... ... хабарлаңыз:
. . .
Type
TfmMain = class(TForm)
. . .
private
{Private declaration }
procedure SetSelection;
. . .
2. ... ... ... ... ... ... ... dmStaff, sidsStaff, tvStructure.Selected do
begin
Close;
DataSet.CommandText:='select * from FULLLIST ';
if AbsoluteIndex > 0 ... DepID=' + ... Parents starting with ... ... > 0 ... ',''';
end;
if ckByPoss.Checked then
DataSet.CommandText:=DataSet.CommandText+
'order by PosLevel, LastName, FirstName, FatherName'
else
Dataset.CommandText:=DataSet.CommandText+
'order by LastName, FirstName, FatherName';
Open;
Screen.Cursor:=crDefault;
end;
end;
* Проектіні сақтап, қосымшаны ... ... ... да бір ... ... ... бұл деректер тобының ішінде ешқандайда жол ... ең ... ... ... ... ...
* Қосымшаны жауып, форма құрастырушыға оралыңыз. ... меню және dgrStaff ... ... ... ... ... операцияларды жылдам орындау үшін интерфейс элементіне тышқан тетігінің оң жақ батырмасын ... ... ... болатын жанама менюлер қолданылады. Сол үшін:
* fmMain ... ... ... екеуін орналастырыңыз.
* Олардың біріншісіне puStaff, екіншісіне puData атын беріңіз.
* Бұл жанама менюлерді 5 - ... ... ... PuStaff және puData ... ... ... ... қасиетінің мәні
puStaff компоненті
pmiNewEmp
Жаңа
pmiEmpData
Деректер
pmiDeleteEmp
Өшіру
pmi1
-
pmiStaffCancel
Қайтару
puData компоненті
pmiCommonData
Жалпы
pmiAdditData
Толықтауыш
pmi2
-
pmiDataCancel
Қайтару
* puData жанама ... үшін ... ... OnClick өңдеу оқиғасын құрыңыз:
procedure TfmMain.btEmpDataClick(Sender: TObject);
begin
puData.Popup(btEmpData.ClientOrigin.X,btEmpData.ClientOrigin.Y);
end;
* Енді dgrStaffOnDblClick өңдеу ... ... ... );
* ... ... үшін, dgrStaffDblClick әдісін таңдаңыз.
* Курсор деректер торында орналасқан ... ... ... ... ... TfmMain.dgrStaffKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key ... if ... ... ... if ... and
(btDeleteEmp.Enabled)
then btDeleteEmp.Click
end;
end;
8. Проектіні сақтап бағдарламаны ... ... ... жайлы жалпы мәліметтерді
көрсету
Жалпы қызметкерлер туралы деректер FullList ... ... ... да біз төмендегі әрекеттерді ... ... ... ... ... ... кодьы ендіріңіз.
procedure TfmMain.dsStaffDataChange(Sender: TObject; Field: TField);
begin
with dmStaff.sidsStaff, sgData do
begin
paCount.Caption:=IntToStr(RecNo)+ '/' +
IntToStr(RecordCount);
btDeleteEmp.Enabled:=RecNo > 0;
btEmpData.Enabled:=btDeleteEmp.Enabled;
pmiDeleteEmp.Enabled:=btDeleteEmp.Enabled;
pmiEmpData.Enabled:=btEmpData.Enabled;
Cells[0,0]:='Қызметтік деректер';
Cells[0,1]:='Бөлім';
Cells[0,2]:='Қызметі';
Cells[0,3]:='Табельдік номер';
Cells[0,4]:='Енбекакысы';
Cells[0,5]:='Озі туралы ... ... ... ... Уйдін номері';
Cells[0,16]:='Телефон';
Cells[1,1]:=FieldByName('DeptShortName').AsString;
Cells[1,2]:=FieldByName('PosShortName').AsString;
Cells[1,3]:=FieldByName('TabNum').AsString;
Cells[1,4]:=FloatToStrF(FieldByName('Salary').AsFloat,
ffCurrency,15,2);
if FieldByName('BirthDate').IsNull
then Cells[1,6]:=''
else Cells[1,6]:=
DateToStr(FieldByName('BirthDate').AsDateTime);
Cells[1,7]:=FieldByName('BornPlace').AsString;
Cells[1,8]:=
FloatToStrF(FieldByName('TaxCode').AsFloat,ffFixed,12,0);
if FieldByName('PasspNum').IsNull
then Cells[1,9]:=''
else Cells[1,9]:=FieldByName('PasspNum').AsString+'от'+
DateToStr(FieldByName('PasspDate').AsDateTime);
Cells[1,11]:=IntToStr(FieldByName('Zip').AsInteger);
Cells[1,12]:=FieldByName('Area').AsString;
Cells[1,13]:=FieldByName('Region').AsString;
sgData.Cells[1,14]:=FieldByName('City').AsString;
Cells[1,15]:=FieldByName('Street').AsString + ', '+
FieldByName('House').AsString;
Cells[1,16]:=FieldByName('Tel').AsString;
end;
end;
2. ... ... ... ... ... ... ARow: Integer; Rect: ... TGridDrawState);
begin
with sgData, Canvas do
if ARow in [0,5,10] then
begin
Brush.Color:=clPurple;
Font.Style:=[fsBold];
Font.Color:=clWhite;
FillRect(Rect);
TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol,Arow]);
end else
if ACol=0 then
begin
Brush.Color:=clScrollBar;
Font.Style:=[];
Font.Color:=clBlack;
FillRect(Rect);
TextOut(Rect.Left+2, ... ... ... ... Cells[ACol,Arow]);
end;
end;
3. sgData.OnClick оқиғасының құрамында бір ғана ... ... оған мына ... ендіріңіз: sgData.Refresh;
Қызметкерлер туралы жалпы ақпаратты редактрлеу және жаңа ... ... Ол үшін біз жеке ... ... ...
1. Жаңа ... құрыңыз. Форма атын fmNew, ал модуль атын ... деп ...
2. StfMain ... ... uses ... StfNew ... және StfNew ... модулінің uses бөлігінде StfDMod модуліне тапсырыс ... ... ... ... орналастырып бірнеше қасиеттеріне өзгерістер ендіріңіз:
object paData: Tpanel
Height = 310
Align = alTop
object imPhoto: ... ... = ... ... ... = ... = ... = [doAutoColResize, doKeyColFixed]
Strings.Strings = (
'Тегі='
'Аты='
'Әкесінің аты='
'Бөлім='
'Кызметі='
'Еңбекақысы='
'Табельдік номер='
'Туган куні='
'Туган жері='
'Идентификациялык код='
'Пошталық ... ... ... ... ... = ... = ... = valeDataValidate
ColWidths = (142, 340)
end
end
object bbOK: TBitBtn
Left = 33
Top = 340
Width = ... = ... = ... bbCancel: TBitBtn
Left = 160
Top = 340
Width = 125
Height = 25
Caption = ... = ... bbPhoto: ... = ... = ... = 100
Height = 25
Caption = 'Сурет'
end
4. fmNew формасына компоненттерді орналастырғаннан кейін 17- ... ... ... fmNew ... Енді ValeData ... жұмыс істейміз. Ол үшін:
6. TfmNew класының private ... ... ... ... Private ... ... ... integer; sids: TSimpleDataSet;
FieldName: string);
7. FillPickList процедурасын ... ... мына ... хабарлаңыз:
procedure TfmNew.FillPickList(CurRow: integer;
sids: TSimpleDataSet;
FieldName: string);
begin
with valeData, sids do
begin
ItemProps[CurRow].EditStyle:=esPickList;
ItemProps[CurRow].ReadOnly:=True;
ItemProps[CurRow].PickList.Clear;
First;
while not EOF do
begin
ItemProps[CurRow].PickList.Add(FieldByName(FieldName).AsString);
Next;
end;
end;
end;
* Осы форманың uses бөлімінде SimpleDS ... ... ... fmNew.OnActivate өңдеу оқиғасын құрыңыз:
procedure TfmNew.FormActivate(Sender: TObject);
begin
with valeData do
begin
FillPickList(3, dmStaff.sidsDeps,'DeptFullName');
FillPickList(4, dmStaff.sidsPoss,'PosFullName');
FillPickList(10, dmStaff.sidsRegions,'Zip');
ItemProps[7].EditMask:='!99/99/0099;1;_';
ItemProps[9].EditMask:='!000000000000;1;_';
ItemProps[15].EditMask:='!99/99/0099;1;_';
Col:=1;
end;
end;
Қазіргі жағдайда формадағы ОК ... ... ... тұр. ... ... деректерді ендірген кезде ғана ол ... ... ... ... Осы ... ... ... жабық процедурасын хабарлаңыз:
private
{ Private declarations }
procedure CheckButtonOK;
11. ... ... ... ... ... ... ... TfmNew.CheckButtonOK;
begin
with valeData do
bbOK.Enabled:=(Values['Тегі'] '') and
(Values['Аты'] '') and
(Values['Акесінін аты'] '') and
(Values['Болім'] '') and
(Values['Кызметі'] '') and
(Values['Енбекакысы'] '') ... ... '') ... код'] '') ... ... '') ... куні'] ' . . ');
end;
12. valeData.OnValeDate өңдеу оқиғасын құрыңыз:
procedure TfmNew.valeDataValidate(Sender: TObject; ACol, ARow: ... KeyName, ... ... valeData ... ARow < 3 then
Values[Keys[ARow]]:=AnsiUpperCase(copy(KeyValue,1,1))+
copy(KeyValue,2,length(KeyValue)-1);
CheckButtonOK;
end;
end;
13. Сонымен қатар, CheckButtonOK процедурасының ... ... ... ... ... оқиғасына да қосу ... Ол мына ... ... TObject);
begin
CheckButtonOK;
end;
Суретті жүктеу
Енді StfNew модулінде қызметкердің суретін жүктеу ғана қалды. Ол үшін:
1. Dialogs ... ... ... ... оны мәліметтер модуліне орналастырыңыз және оның Name ... opd_1 деп ат ...
2. ... ... ... ... ... тышқан тетігін шертіп, ондағы Bitmaps (*.bmp) фильтрінен басқасының ... ...
3. fmNew ... ... барып, bbPhoto.OnClick өңдеу оқиғасын құрып оның ішіне ... ... ... ... ... do
begin
FileName:='';
if Execute then imPhoto.Picture.LoadFromFile(FileName);
end;
Бұл жерде opd_1 компоненті көмегімен стандартты диалогтық ... ... ... ... болады.
DataForEmployee процедурасы
fmMain формасы модулінде fmNew ... құру және ... ... жаңа қызметкерлерді ендірген кездегі өзгерістерді қайта өңдеуді ... Ол үшін жеке ... ... ... TfmMain класының private бөлігінде ... ... мына ... хабарлаңыз:
private
{Private declarations }
. . . ... ... ... қызметкер қосқан кезде Creation параметрі True мәнін, ал бұрынннан бар ... ... ... False ... ... ... ... осы процедураның ауыстырылуын төмендегідей кодты ендіру арқылы ... ... ... ... fmNew, valeData, dmStaff do
if Creation then Caption:='Жана кызметкер'
else
begin
// Егер бұрынна бар деректерді ... ... ... ... ... ... арқылы Бөліммен Қызметін табамыз
sidsDeps.Locate('DeptID', sidsStaffDepID.AsInteger,[ ]);
sidsPoss.Locate('PosID', sidsStaffPosID.AsInteger,[ ]);
// Өріс жолы тізімін ... ... ... ... код']:=
FloatToStrF(sidsStaffTaxCode.AsFloat,ffFixed,12,0);
Values['Табельдік номер']:=sidsStaffTabNum.AsString;
Values['Туган куні']:=
DateToStr(sidsStaffBirthDate.AsDateTime);
Values['Бөлім']:=sidsDepsDeptFullName.AsString;
Values['Кызметі']:=sidsPossPosFullName.AsString;
Values['Туган жері']:=sidsStaffBornPlace.AsString;
Values['Енбекақысы']:=
FloatToStrF(sidsStaffSalary.AsFloat,ffFixed,15,2);
if not sidsStaffPasspNum.IsNull then
begin
Values['Төлқұжат номері']:=sidsStaffPasspNum.AsString;
Values['Төлқұжат берілген күні']:=
DateToStr(sidsStaffPasspDate.AsDateTime);
end;
imPhoto.Picture.Assign(sidsStaffPhoto);
end;
if fmNew.ShowModal=mrOK then
// Егер fmNew ... ОК ... ... ... ... dmStaff, ... ... Қызмет пен Бөлімге ... ... ... Creation // Егер жаңа ... ... Append // онда Staff ... жаңа жазба қосамыз
else Locate('ID', sidsStaffID.AsInteger,[]); // әйтпесе редактрлеуге
// жазба ... ... ... ... ... ... ... код']);
FieldByName('TabNum').AsString:=
fmNew.valeData.Values['Табельдік номер'];
FieldByName('BirthDate').AsFloat:=
StrToFloat(fmNew.valeData.Values['Туган күні']);
FieldByName('DepID').AsInteger:=sidsDepsDeptID.AsInteger;
FieldByName('PosID').AsInteger:=sidsPossPosID.AsInteger;
FieldByName('BornPlace').AsString:=
fmNew.valeData.Values['Туган жері'];
FieldByName('Salary').AsFloat:=
StrToFloat(fmNew.valeData.Values['Еңбекақысы']);
if fmNew.valeData.Values['Төлқұжат номері']''then
begin
FieldByName('PasspNum').AsString:=
fmNew.valeData.Values['Төлқұжат номері'];
FieldByName('PasspDate').AsDateTime:=
StrToDate(fmNew.valeData.Values['Төлқұжат берілген ... ... ... тобына ендірілген өзгерістерді сақтаймыз
ApplyUpdates(0); // ... ... ... // ... ... ... ... // қызметкер деректерін таңдауды қайта орындаймыз
// sidsStaffMid деректер отобында ... ... ...
// ... ... ... ... Енді sidsStaff деректер тобынан
sidsStaff.Locate('ID',FieldByName('ID').AsInteger,[]);
{if (CurDepfmNew.valeData.Values['Болім']) or
(CurPosfmNew.valeData.Values['Кызметі'])
then SetTransfer(FieldByName('ID').AsInteger,
FieldByName('Lastname').AsString,
FieldByName('FirstName').AsString,
FieldByName('FatherName').AsString,CurDep,
fmNew.valeData.Values['Болім'],
CurPos,fmNew.valeData.Values['Кызметі']);}
end;
fmNew.Free;
end;
DataForEmployee процедурасын шақыруды StfMain ... ... ... қосу ғана ... Ол үшін ... ... ... Ағымдағы кодтан btNewEmp.OnClick (Жаңа батырмасы) өңдеу оқиғасын табыңыз.
4. ... ( puData ... ... ... ... ... ... құрыңыз:
procedure TfmMain.btNewEmpClick(Sender: TObject);
begin
DataForEmployee(True);
end;
procedure TfmMain.pmiCommonDataClick(Sender: TObject);
begin
DataForEmployee(False);
end;
* Проектіні сақтап, қосымшаны жүктеңіз.
* Бөлім иерархиясынан кез- ... ... ... ... кейін Жаңа батырмасына басыңыз.
* Жаңа ... ... ... ... ... ... ... таңдап тышқан тетігін ОК батырмасына ... ... Жаңа ... қосу
Нәтижесінде деректер базасына қызметкер туралы ... ... ... өшіру
Енді деректер базасынан қызметкер деректерін өшіруді қарастырайық. Ол үшін:
1. btDelete.OnClick ... ... ... fmMain формасындағы Өшіру батырмасына тышқан ... екі рет ... ... ... ... келесі бағдарламалық кодты ендіріңіз:
procedure TfmMain.btDeleteEmpClick(Sender: TObject);
var TD: ... ... ... ... ... ... ... dmStaff do
begin
try
TD.TransactionID:=1; // Транзакция идентификаторы
TD.IsolationLevel:=xilREADCOMMITTED;// Транзакция шектеуінің деңгейі
sqlcStaff.StartTransaction(TD);
with sqldsDeleteEmp ... ... ... ... ... // ... ... орындаймыз
end;
sqlcStaff.Commit(TD); // Commit командасымен транзакцияны аяқтаймыз ... // ... ... ... ... өшіреміз
except //сақталған процедура орындалмаған жағдайда
on E: Exception do
begin
// Rollback ... ... ... ... ... өшірудегі қате!'+
#13+E.Message,mtError,[mbok],0);
end;
end;
end;
end;
2. TTransactionDesc класын қолдану үшін StfMain ... uses ... DBXpress ... ... ... ... ... қосымшаны жүктеңіз.
4. Қажет емес қызметкер деректерін осы ... ... ... ... ... ... ... басқармасы төмендегідей бөлімдерден тұрады:
* Бағдарлама құрылымы туралы ... ... ... fmMain ... және 11 ... формадан тұрады. Ондағы деректер Staff.gdb деректер базасында ... ... ... ... ... сақталатын "DEPS", "JOBS", "POSS", "REGIONS", "FAMILY", "STAFF" кестелері орналасқан. Осы кестелер арқылы негізгі ... мен ... ... байланыс жасайды.
* Құрылғылар баптау туралы сипаттамалар, қолданушыға хабарлама
Бағдарламадағы ... мен ... ... қызметкер деректерін қате ендірген кезде, базада сақталған деректерді қайта ... ... сол ... ... ... ... бір жерінде қолданылып тұрса, міне осындай кездерде осылардың әр қайсысына ... жеке ... ... ... іске қосу ... пернесіне басып, бағдарламаны орындауға жіберген кезде, ... ... fmLogin ... ... ... ... ... базасы адресін, қолданушы және кілттік сөзін ендіріп, бағдарламаны іске қосамыз.
* ... ... ... ... ... ... ...
Бағдарламаның Қызметкерлер бөліміндегі иерархиялардың ішінен кез- келгенін таңдап, сол ... ... Жаңа ... ... ... fmNew (Жаңа қызметкер) терезесі пайда болады, міне осы ... ... ... ... ... ... деректерімен тіркеуге аламыз.
Жүйелік ... ... ... нұсқауы төмендегі бөлімдерді қамтиды:
* Бағдарлама өнімі туралы жалпы мағлұмат
Бұл ... ... 3 ... ... ... ... - ... қандай қызметте, қандай мамандықпен жұмыс істейтіндігі ... ... ... ...
+ ... ... ... яғни кәсіпорын туралы мәліметтер береді.
+ Қызметкерлер бөлімі - ... ... ... ... ... туралы толық ақпарат береді.
Осы бөлімдердің барлығын нұсқауға ... ... ... ... ... Microsoft Windows XP Professional, жүйелі блок Pentium IV 2.94 Ггц/192Мб\80Гб\128Мв Intel( R) Celeron(R) CPU 2.93GHz
* Құрылым ... ... Borland Delphi 7 ... ... жасалған. Осы ортада біз бағдарламаны InterBase 6.5 ... ... ... да ... SQL -сұранысын толтырып кестелер жасау арқылы байланыстырамыз.
* Баптау
Бағдарлама тағы да ... ... ... ... ... жаңа ... толтырып жасауға болады.
* Тексеру
Жоғарыдағы нұсқауларға сүйене отырып, қазметкерлердің деректерін толтырып ОК батырмасына ... ... ... ... сол ... ... ... кестелерден де көре алатын боласыз.
* Жүйелік бағдарламашыға хабарлама
Бағдарлама орындау барысында қателер ... сол ... ... ... ... Ал деректер базасындағы кестелерді толтырғанда қате кетсе, онда сол ... қате ... жол саны ... ... бар ... хабарлама шығады.
4. Ж О Б А Н Ы І С К Е А С Ы Р У ... ... ... іске ... үшін, қолданатын компьютерлеріңіз Microsoft Windows XP Professional, жүйелі блок Pentium IV 2.94 ... Intel( R) ... CPU 2.93GHz ... ... ... ... компьютерде Borland Delphi 7 бағдарламалау ортасы орнатылу керек. Өйткені осы ... ... 32 ... ... ... ... ... қосымшаларын жасауға болады. Сонымен қатар Delphi 7 қолданушыларға, деректер базасында (database) ... ... ... ... жасап, әртүрлі әдіспен қосымшалар ... ... ... Бұл ... жоба ... әрі онда бір емес ... ... тізімдері деректерімен көрсетілетін болғандықтан, сол қызметкерлер туралы толық мәліметтерді ... ... ... ... толтырып сақтап қоюымыз керек. Delphi ... ... ... ... проектісіне осы деректер қоймасында сақталып тұрған, қызметкерлер ... ... ... ... шақырып осылайша байланыс орнатамыз. Егер бағдарламадағы қызметкерлер тізіміне тағы да жаңа ... ... ... ... ... ол ... мәліметтерін деректер базасындағы кестеге қосып ендіруіміз керек. Әйтпесе ол ... ... ... Бұл бағдарлама проектісі мынадай бөліктерден тұрады бір кәсіпорында жұмыс ... ... ... ... сол ... басшысы туралы, жеке - жеке қызметкерлер ... кадр ... ... және ... ... ... ... мәліметтер беріледі.
Екіншіден, қызметкерлердің қандай қызметте, қандай мамандықпен жұмыс ... ... ... ... ... ... ... ұйым яғни кәсіпорын туралы мәліметтер беретін ... ... ... және кәсіпорында жұмыс істейтін барлық қызметкерлер туралы толық ақпарат беретін ... ... ... ... ... құрылған "Персонал" бағдарламасында қалай жұмыс ... ... Ғ9 ... ... бағдарламаны орындауға жібереміз.
2. Пайда болған fmLogіn терезесінде "Персонал" бағдарламасына кіру ... ... ... "masterkey" деп жазасыз. Сонда осы бағдарламаның басты формасы ... Бұл ... ... ... ... орналасқан бөлім иерархиясының ішінен кез-келгенін таңдап, осы ... ... Жаңа ... ... ... ... Жаңа - ны ... Сонда нәтижесінде Жаңа қызметкерлер деп аталатын fmNew ... ... ... Міне осы ... жаңа ... ... ... деректер базасында сақталған бұрыннан бар қызметкерлердің деректерін (Тегі, аты, әкесінің аты, ... ... ... табельдік номері, туған күні, туған жері, РНН, ... ... ... ... ... ... ... номері, төлқұжат берілген күні) valeDate деп аталатын TvalueListEditor компонентінде толтырасыз. Содан кейін, сол ... ... ... ... ... ... ... сол формадағы ОК батырмасына басасыз. Сонда нәтижесінде сол ... ... ... ... fmMain ... dgrStaff деп ... TDBGrid ... және sgData деп аталатын TstringGrid компонентінде шығады. Ал ... ... dimPhoto атты TDBImage ... ... ... ... Енді ... бөлімінде мына түрде жұмыс істей аласыз. cbDicts атты ComboBox ... 3 ... ... ... Бөлімі, Қызметтер және Региондар. Бұлардың әрқайсысы деректер базасында сақталған ... ... ... Енді ... ... кез- ... таңдасаңыз, сол базада ... ... дәл осы ... ... ... ... Осы шақырылған кестеге жоғарыдағы жаңа қызметкердің ... ... ... Ол үшін, осы форма бетіндегі dnaDicts деп ... ... ... "+" ... ... dgrDicts атты ... ендіретін TDBGrid компонентінде пайда болған өрістерге жаңа қызметкердің ... ... ... ... ... ... ... номерін жазып TDBNavigator компонентіндегі " " таңбасына басқанда сол ендірген ... ... ... ... ... да ... Міне осындай әдіспен қалған 2 бөлімді де толтырасыз. Егер де сол ... ... ... ... ... болатын болса, онда басты форма ... ... ... немесе Анықтамалар бөлігіндегі TDBNavigator компонентіндегі " - " ... ... ... де болады. Осылайша қызметкерлерді қосып, алып тастай аласыз. Бұл ... ... міне ... ... ... ... іске асырасыз.
5. Қауіпсіздік техникасының шаралары
Бейнедисплей терминалдары (БДТ) және дербес электрондық - ... ... ... ... ... ... және ... қойылатын талаптар:
* Жалпы жағдайлар.
* Осы санитарлық қағидалар мен нормалар (ар қарай қағидалар) "бейнедисплейлік терминалдар және дербес ... ... ... мен ... істеуді ұйымдастыруға және жағдайларына қойылатын гигиеналық талаптар".
Министрліктерге, ведомстваларға, басқарушы субъектілерге қатысты. Олардың бағыну және меншіктеу түріне тәуелсіз электронды ... ... ... ... өндіріс жабдықтарында және ойын комплекстерінде дербес электронды есептеу машиналары, дербес компьютер және ... жүйе ... және ... ... ... - ... сұйықкристаллдық және плазмалық түтіктерімен отандық және импорттық бейнедисплей терминалдарын ... ... және ... ... ... ... ... Осы қағидаларды мемлекет ұйымдарының және барлық ұйымдармен ... ... ... және жеке ... ... санитариялық - эпидемиологиялық қадағалауын және бұзбауын Қазақстан Республикасының денсаулық сақтау министрлігінің мемлекеттік санитариялық - ... ... ... ... мен мекемелеріне жүктеледі. (Қазақстан Республикасының "Халықтың санитариялық - эпидемиологиялық жағдайын жақсарту ... ... ... ... ... - ... қызметі туралы ереже", Қазақстан Республикасының Министрлер кабинетімен бекітілген 25.04.95 ж. №547 Қазақстан Республикасы заңының 16 ... ... ... мен ... ... нормативті документ болып табылады және оны бағыну және меншіктену түріне қарамастан БДТ мен ... ... ... және ... жеке және ... ... ... мекемелердің ведомствалардың және министрліктердің сақтауы міндетті ("Халықтың санитариялық - гигиеналық ... ... ... ... ... Санитариялық ережелерді бұзушы БДТ, ДЭЕМ, ДК және ЭЖ-ні жасау, өндіру, сатып алу, сату және қолдануды жүзеге асырушы жеке ... оқу ... ... мен ... мамандары мен жұмысшылары, лауазымды тұлғалар олардың ведомствалық түріне қарамастан Қазақстан ... ... ... ... ... және ... жауапкершілікке тартылады.
Осы ережелер енгізушілермен бірге №1.10.076-94 Есептегіш орталардың жұмысшылары үшін ... ... мен ... және ... "Дербес электронды - есптеу машиналарда және бейнедисплейлік терминалдарда есептеу техникасы кабинеттерінде және дисплей - ... орта оқу ... ... ... ... ... типтерінде санитарияны - гигиеналық нормалар мен ... ... мен ... ... атты Қазақстан Республикасын Денсаулық министрлігімен 22.08.94 бекітілген жағдайлар өз күшін жойды".
5.1. ДЭЕМ және бейнедисплейлік ... ... БДТ, ... ДК және ЭЖ -ны ... ... ... ... керек.
- Техникалық құжаттамаға қатысты іс- әрекет ететін ... ... ... ... ...
* ... қауіпсіздігі және жерлестіру сенімділігі.
* Экологиялық сұраныстар.
* Дизаин.
* Конструкцияда ... ... ... ... болады, деп шешкен материалдар ...
2. ... ... БДТ, ДЭЕМ, ДК және ЭЖ конструкциялары ақпараттарды дұрыс көсетіліп ... ... ету ...
3. ... БДТ, ДЭЕМ, ДК және ЭЖ -ның электромагниттік қауіпсіздік гигиеналық ... және ... ... ... ... керек.
БДТ және ДЭЕМ эксплуотациялы бөлмеге қойылатын бірнеше талабы бар. Олар:
1. БДТ, ДЭЕМ, ДК және ЭЖ ... ... ... эксплуотацияға арналған жеке -жеке ... ... ... Оқу орындарында тек периметральды комьютерлер қолданылуы керек.
* ... ... ... және ... да орындардағы БДТ мен ДЭЕМ ... ... ... ... 4.0 кв - дан кем ... ... ал ... және ортада орналасқандар 6 кв ... кем ... ... Оқу ... 1 ... орнының алаңы 5 кв метрдан кем болмауы керек. Ал, ... ... 6 кв ... ал ... 20 кв метрдан кем болмауы керек. ... ... өте ... ... ... ... ... байланысты компьютерлерді қатармен немесе орталықта орналастыру ... емес ... ... ... керек.
* БДТ мен ДЭЕМ ... ... ... ... ... БДТ мен ДЭЕМ орналасқан бөлмелердегі дыбыс шығаруы, шу, діріл, жалпы жарықтылықтың ... ЖТ ЖҚРА ( ... ... ... қосуды реттеу аппараты) - дағы ЛПО 36 және ЖТ ... ... ... жоқ ... ... мына ... ... жарықтылық серия лампалары қолданылады. ... - ... - ... - ... - ... - ... - ... - 2x36-008;
ЛПО34 - 4x36-002;
ЛПО34 - ... - ... - ші ... В ... технологиялық сәуле санитарлық нормаға сәйкес гигиеналық түрде ... ... Ол мына ... - ... ... ... ... X; Y; остері бойынша жіберілетін мәндер
Виброжылдамдатылған
Виброжылдамдық
м/с2
дБ
м/с2
дБ
1/3окт.
1/1окт.
1/3окт.
1/1окт.
1/3окт.
1/1окт.
1/3окт.
1/1окт.
1,6
2,0
2,5
0,0125
0,0112
0,01
0,02
82
82
80
86
0,13
0,089
0,063
0,18
88
85
82
91
3,15
4,0
5,0
0,009
0,008
0,08
0,014
79
78
78
83
0,045
0,032
0,025
0,063
79
76
74
82
6,3
8,0
10,0
0,008
0,008
0,01
0,014
78
78
80
83
0,02
0,016
0,016
0,032
72
70
70
76
12,0
16,0
20,0
0,0125
0,016
0,02
0,028
82
84
86
89
0,016
0,016
0,016
0,028
70
70
70
75
25,0
31,5
40,0
0,025
0,032
0,04
0,056
88
90
92
95
0,016
0,016
0,016
0,028
70
70
70
75
50,0
63,0
80,0
0,05
0,063
0,08
0,112
94
96
98
101
0,016
0,016
0,016
0,028
70
70
70
75
Мәндерді және оның деңгейін өзгерту және эквивалентті өзгерту
0,014
83
0,028
75
* БДТ мен ДЭЕМ ... ... ... мен және ... ... ... ... керек.
* БДТ мен ДЭЕМ бөлмелерінің іші диффузиялық- жарқырайтын материалдардан ... үшін - 0.7-0.8; ... үшін - ... ал еден үшін - 0.3-0.5 ... ... ... ... БДТ мен ДЭЕМ ... ішін жабдықтауға полимерлік материалдарды қолдану үшін, ең ... ... ... ... және ұйымдардың шешімдері болуы керек.
* Барлық оқу орындарында БДТ мен ДЭЕМ ... ішін ... ... ... химиялық заттар шығаратын синтетикалық, пластикалық ... ... тиым ... БДТ мен ДЭЕМ ... едені ылғи тазартылып тұру үшін тегіс әрі жайлы ... ... ... ... ... ... ... жабдықтары және оны ұйымдастыру шаралары.
* Ойынға арналған компьютерлік кешендердің бөлмелері бір орынды үстелдермен жабдықталуы ...
* Бір ... ... екі бөліктен тұрады. Оның негізгісінде видеомонитор, ал екінші бөлігі жылжымалы болып табылады да, онда ... ... ВДТ ... ... арналған үстел құрылысында қораптың көрінбеуі мен стол астына аяққа арналған бос орын 40см кем болмауын ... ... ... үстіңгі бөлігі таза болуы керек.
* Артқы тірегі жоқ ... ... БДТ, ДЭЕМ және ... ... ... ... ... еңбек режимі мен демалуды ұйымдастыру шаралары.
* БДТ, ДЭЕМ және дербес компьютермен жұмыс істеу кезінде ... ... мен ... ... еңбек түріне байланысты ұйымдастырылады.
* Еңбек күш қуат пен ауырлығына байланысты 3 ... ... ... ... 3 ... бөлінеді:
* А тобы - БДТ немесе ДЭЕМ жұмыс істеуде экраннан информацияларды оқу;
* Б тобы - ... ... ... В тобы - ... ... ... шығармашыдық жұмыс;
* Түскі үзіліс уақыты Қазақстан Республикасының "Еңбек туралы" заңына сәкес келу керек, немесе ұйымның (кәсіпорынның) ішкі ... ... ... ... ... ... ... деген қабілеті мен денсаулығын сақтауды қамту үшін жұмыс уақыты кезінде қосымша үзілістер орнатылу керек.
* Қосымша ... саны мен ... ... ... ... ... орнатылады.
БДТ, ДЭЕМ, ДК, және ЭЖ - мен 8 ... ... ... кезінде ... ... ... орнату керек:
* 1 категориялық жұмыстарға - жұмыс ... ... ... 2 ... ... және түскі үзілістен кейінгі үзілістер 15 минутке дейін созылуы керек.
* 2 категориялық жұмыстарға - жұмыс уақыты басталғаннан ... 2 ... ... және 1,5-2 сағаттан кейін түскі үзіліс біткенде қосымша үзілістерді 15 минут немесе әрбір бір сағаттан кейін 10 минутқа ... ... 3 ... ... - ... уақыты басталғаннан кейін 1,5-2 сағаттан кейін және 1,5-2 ... ... ... ... ... ... 15-20 ... созылу керек.
* Қосымша үзіліссіз БДТ жұмысының ұзақтығы 2 сағаттан аспау керек.
* БДТ, ... ДК және ЭЖ үшін ... ... 6-ға ... ... жұмыс істеу кезінде еңбек түріне қарамастан қосымша үзілістер 60-минутқа дейін созылу керек.
* ... ... ... ... ... ... керек.
* ДЭЕМ және БДТ жұмыс істейтін қоғамдық бөлмелерде температура ылғалдылық және ауа ... осы ... ... ... сәйкес келуі керек.
* БДТ мен ДЭЕМ да жұмыс істеу негізгі болып табылатын қоғамдық бөлмелерде микроклимат ... ... болу ... Орта ... және ... оқу ... . ДЭЕМ және БДТ бар бөлмелер, микроклиматтың оптималды параметірлеріне сәйкес келуі ...
* ДЭЕМ және БДТ бар ... ... ... ... ... керек.
* Мұндай бөлмелердің ауасы сабақ басталғанға дейін жіне сабақтан кейін тазартылып отырылуы керек.
* Мұнда бөлмелердегі ... ... және ... ... 3 ... ... нормаға сәйкес келеуі керек.
* Бұл бөлмелердің ауасында қауіпті химиялық қоспалары жұмыс ... ... ... ... ... ... керек.
* ДЭЕМ және БДТда жұмыс істеу негізгі болатын бөлмелерде, ауадағы зиянды химиялық заттар , ... ... ... ауасына сәкес болуы керек.
6. Э К О Н О М И К А Л Ы Қ Б Ө Л І ... ... ... пайдалылығы
Тиімділік кәсіпорын қызметі тиімділігнің ең ... ... ... Оның екі түрі ... ... ... ... өндірістің негізгі және айналмалы қорларының құнына ...
* ... ... ... ... ... өзіндік құнына қатысы;
Кәсіпорын қызметінің тиімділік деңгейін бағалау үшін алынған ... ... ... пайда) кеткен шығындар немесе пайдаланған ресурстармен салыстырылады. Пайданың шығындарымен өлшемдестігі пайдалылықты ... ... ... ... ... ... ... мөлшерін өлшеу екі нұсқада пайдаланылады. Бұл ... ... ... ... ... шығындары өзіндік құн) немес авансты жұмсау ... ... ... және ... қаражаттары).
Бұл екі өлшеуші аванстық жұмсау айналымы жиынтығының ... ... ... Кәсіпорының пайдалылық мөлшерінің мына формуламен есептеуге ... Ө - өнім ...
Б - өнім ... ... - ... ... - ... өндірістік қорлардың құны,
Ак - айналмалы қаражаттың көлемі.
Практикада кәсіпорынның қызметіне ... ... ... ... ... - ... ... барлық сатылған өнімнің және оның деке түрлерін ... ғана ... ... ... ол ... сатқандағы пайданы және оны ... және ... ... шығындардың қатысын анықтайды.
Барлық сатырған өнімнің пайдалылығын тауарлы ... ... ... пайданың өткізуден алынған түсіну қатынасына есептеп шығарады; баланстық пайда ... - ... ... ... ... таза пайда жөнінде - өнімді сатудан алынған түсім ... ... ... ... ... ... ... шығынның тиімділігі және өнімді сату қабысы жөнінде түсінік білдіреді.
Екінші - ... ... ... ... ... негізгі өндірістік қорларының және айналым қаржыларының ... ... ... қатынасы. Бұл көрсеткішті таза пайда арқылы да есептеуге болады.
Үшінші - ... ... ... Оны ... мүліктердің құны арқылы есептелінеді. Есептегенде баланстық және таза пайданың көрсеткіштерін ... ... жеке ... ... таза ... ... арқылы есептелінетін оның жеке қаржысының ... ... ... ... ықпал есетін несие бойынша процент ...
* ... ... үлес ... түскен табыстар;
* құнды қағаздардан түскен табыстар;
* алынған айып пұлдан асып ... өсіп ақы ... ... ... бір ... мейлінше - шаруашылықтың жүргізудің әр түрлі мәселелерін шешуге келгенде ... ... осы ... ... ... тиімділігі, біріншіден, негізгі өндірістік қорлардың ... ... ... ... ... қорларды неғұрлым тиімді пайдаланудың және үшіншіден, қазіргі ... ... ... жақсартудың есебінен арттырылады. ... ... ... ... ... есептеу әдісі, тиімділікті анықтайтын негізгі көздердің сипаттамаларын көрсеткіштерді анализдеп ... ... ... әдістің қолданылу тиімділігі үздіксіз орындалатын интерациондық процестерің қаншалықты жетілгендігін тиімділік көзқарасы жағынан құылған моделмен салыстыруға мүмкіндік ... ... ... ... ... ең ... оның ... тиімділігін есептеу керек, яғни, бағдарламаны жасауға және ендіру жүйесіне кететін шығынды оны ... ... және ... ... ... ... ... үнемдеуді есептеу керек.
o Деректерді өңдеу және енгізуге кететін шығындардың есебі
Деректерді жасауға және енгізуге кететін шығындарды ... ... ... ... ... , Салг - ... құруға кететін шығындар;
Сжжкш - ... ... ... кеткен шығындар;
Сен - бағдарламаны енгізуге кеткен шығындар;
Стқж - - техникалық ... ... ... ... шығындар;
6.1.2. Алгоритмді құруға кеткен шығындар
Алгоритмді құруға кеткен шығындарды төмендегі формула бойынша есептей аламыз:
Cалг=Ақ *У+Әқк қ ... Ақ - ... ... ... айлық ақша; У - бағдарламаны жасауға кеткен уақыт мөлшері; Әқкқ - әлеуметтік қажеттілікке кеткен қаржы (26%);
Жасаушының ... ... ... - 50000 тг., ал ... ... ... уақыт мөлшері - 1 ай. Әлеуметтік қажеттіліктерге кеткен қаржы мөлшері 5000 ... ... ... ... ... және ... кеткен шығындар
Бағдарламаны жазуға және түзетуге кеткен шығын (3) - ... ... ... ... Кжкму - бағдарламаны түзетуге кеткен машиналық уақыттың құны; ... - ... ... және ... ... ... қоры (жалақысының қоры).
Жалақы қоры (4)-формула бойынша есептеледі:
Қжжка = Ас*Б айлығы+ Әқбқ ... Ас - ... ... ... ... ... - бағдарламашының айына алатын айлығы (тг/айына); Әқбқ - әлеуметтік қажеттілікке бөлінген қаржы (26%).
Бағдарламаны жазуға, ... бір ай ... ... ... енгізуге кеткен шығындар есебі
Бағдарламаны енгізуге кеткен шығындар ... ... ... ... Кен - ... ... ... уақытының бағасы; Әбағ/ақ - енгізу кезіндегі ... ... ... ... бағасы (6) - формаула бойынша есептеледі:
Кен =k*d*g ... k - ... ... ... ... машина уақыты; d - ДЭЕМ-мен жұмыс істеуге кеткен күндер саны; g - бір ... ... ... ... = Б ... йлығы *+ОтФсоц ... ... - ... ... кеткен еңбегінің жалақысы; d - ДЭЕМ-мен ... ... ... ... саны; Д - бір айдағы күндер саны;
ДЭЕМ-мен ... ... 6 күн ... Бір айда ... ... күндер саны 25 күнді құраса, онда бағдарламашының енгізуге кеткен еңбегінің жалақысы:
Әбағ/ақ =50000тг*(6күн/25күн)+5000тг=17000тг.
Компьютерде ... 5 ... ... ... ... ... уақыты төмендегідей есептеледі:
Кен =5сағ*6күн*200тг/сағ=6000тг.
Сен=15000тг+6000тг=21000тг.
6.1.5. Техникалық құралдар жиынына кеткен кеткен шығындар есебі
Техникалық құралдар
Бағасы (тг)
Pentium IV2.94 Ггц/192Мб\80Гб\128Мв
Intel( R) Celeron(R) CPU 2.93GHz ... ... ... ... ... ... кеткен шығындар 85500 теңгені құрайды.
Барлық өнімді енгізуге және жасауға кеткен шығындар төмендегі ... ... ... дейінгі шығындар есебі
Бағдарламаны қолданбай шығынды есептеу мына формуламен есептеледі:
Затр = ЗПсок+ Әқбқ ... Затр - ... ... мен ... ... ... Әқбқ - әлеуметтік қажеттілікке бөлінген қаржы (26%).
Бухгалтер мен ... ... ... ... мына ... ... ... Qсок - айлық жалақы (СОК); N-СОК саны, ... ... - ... ... кадр ... ... - ... Бағдарламалық қамтуды енгізгеннен кейінгі
шығындар есептемесі
Бағдарламаны енгізгеннен кейін шешім ... ... саны 1 ... ... Есеп шығаруға кеткен машина уақытының жылдық ... мына ... ... анықталады:
Кмаш=tg*g ... tg - ... бір айда ... ... сағат саны; g - машина уақытының 1 сағаттық құны;
Бір құжатты қағаз ... ... ... үшін 9 ... ... Принтерден Кпеч нәтижені басып шығару үшін жылдық шығындар төмендегі формула бойынша есептеледі:
Кпеч=tпеч*Nвар*q ... - t печ - 1 ... ... ... ... ... Nвар - дана ... q - машиналық уақыттың 1 сағаттық құны.
Бір құжатты басып шығаруға 0,01 сағат кетеді. Дана саны ... ... ал q ... ... ... 1 ... ... - 125 сағат, ал q=200тг/сағ.
Кмаш=125сағ*200тг/сағ*12ай=300000тг.
Бөлім қызметкерлерінің жылдық алатын жалақысы келесі формула бойынша анықталады:
ЗПсок=20000тг*12ай=240000тг.
Бағдарламалық жиынды енгізгеннен кейінгі жиындардың ... саны ... ... бойынша анықталады:
Затр'=Кмаш+Кпеч=ЗПсок ... ... ... ... комплексті енгізгеннен кейінгі экономикалық шығындар мына формула бойынша есептелінеді:
Э=Затр-Затр' ... ... ... дейінгі шығындар; Затр'- жүйені енгізгеннен кейінгі шығындар.
Э=680400тг-542520тг=137880тг.
Бағдарламалық комплекстің ... ... мына ... ... ... Ж - ... ... енгізуге кеткен шығындар; Ү - енгізуден экономикалық шығындар.
Бағдарламалық комплекстің өтімділік мөлшері:
Төт=219500тг/137880тг=1.5г.
Жылдық экономикалық тиімділік формуласы:
Жтиім=Ү-Тн*Ж ... Ү - ... ... шығындар; Тн - капиталдық тиімділіктің коэффициентінің нормативі (const=0.32); Ж - жүйені жасап, енгізуге кеткен шығындар:
Жтиім=137880тг-0,32*219500тг=67640тг.
Қ О Р Ы Т Ы Н Д Ы ... ... ... іс - әрекеттерді қорытындылайтын болсақ, бұл ... ... ... ... ... ... күрделі, бірақ, әрине қазіргі Кадр ... ... ... ... шешетіндей функциялары жоқ. Бұл бағдарлама кәсіпорында ... ... ... ... ... қызметкерлерді барлық деректерімен алғаш тіркеуге алуға көмектеседі. Деректер қоймасын байланыстарытын және ... ... ... ... ... ... ... немесе жалғыз емес. Сондықтан бұл бағдарламаға тағы да ... ... мен ... ... одан да бетер күрделендіруге болады. Бұл ... бір ... ... істейтін жалпы қызметкерлердің ... сол ... ... туралы, жеке - жеке қызметкерлер туралы, кадр ... ... және ... ... ... ... ... беріледі.
Екіншіден, қызметкерлердің қандай қызметте, ... ... ... ... туралы толық мәліметтер беретін Анықтамалар бөлімінен, ұйым яғни кәсіпорын ... ... ... ... ... бөлімінен және кәсіпорында жұмыс істейтін барлық қызметкерлер туралы толық ... ... ... бөлімінен тұрады. Егер де осы ... ... ... ... ... онда жоғарыда аталған ... және ... ... ... деректерді қайтадан сол кәсіпорын өзгертуіне тура келеді. Бірақ бұның ... ... жоқ. ... ... ... ... ... ендіресіз, содан кейін, басты ... ... ... ... ... ... кез- келген қызметкерлерді ендіре аласыз. Егер де осы ... ... ... оқып ... ... ... бағдарламасында жеңіл түрде жұмыс ... ... Бұл ... ... ... құрылып, жасалған. Бұл әрине жақсы, бірақ бір кемшілігі ... ... ... ... ... ... мұндай күрделі бағдарламалармен жұмыс істейтін бағдарламалау ... ... ... ... оқи ... ... қазіргі заманда компьютерлердің дамуына байланысты кез- келген кәсіпорындарда ... ... ... ... ... ... сол ... жұмыс істеуде. Осындай бағдарламаларды құрудың өзі профессионалдық дәрежеге де ... ... ... ... ... ... ... жасау және Сom ... ... ... ... ... тіл ... ... бағдарламалаушы болу мақсатталған.
Осындай дәрежедегі бағдарламалауды үйренген адам өзінің ... ... ... ... әлемге өз өнерін паш ... ... ... ... көп ... болса да, әр ... ... бір ... ... ... ... зерделі салалары дамып өсіп келгенде, ... ... ... ... ... арта ... Сондықтан да біз жастар бағдарлама құру өнерімен көптеп айналысуымыз керек. ... ... МЕН ... - Электрондық есептеуіш машина.
ДҚ - ... ... ... - деректер қоймасын басқару жүйесі.
SQL - (Structured Query Language) - сұраныстың ... ... - (Data ... ... - ... ... операторлары.
DML-(Data Manipulation Language)-деректерді манипуляциялайтын операторлар.
DCL- (Data Control Language) - деректерді басқару ... - Query By Example - ... ... ... ... - Borland Database Engine - Borland фирмасының деректер қоймасының процессоры.
BDE Administrator - ... ... ... ... - ... ...
ДЭЕМ - Дербес электронды - есептеуіш машинасы
ЭЖ - Электрондық жүйе
ДК - ... ... - ... ... ЖҚРА - Жоғары тұрақтылықты жинақтап қосуды реттеу аппараты
Қ О Л Д А Н Ы Л Ғ А Н ӘД Е Б И Е Т Т Е Р
* Ю.А. Шпак "Delphi 7 на ... Под ... Ю.С. ... ... ... ... ... Культин "Delphi в задачах и примерах"
Санкт - ... "БХВ - ... ... А. ... "Изучаем Delphi"
Москва ,Санкт - Петербург, Нижний Новгород, Воронеж,
Новосибирск, Ростов - на - ... ... ... ... ... ... В.Б. ... "Самоучитель Delphi"-СПб.: Питер, 267 с.: ил
Москва ,Санкт - Петербург, Нижний Новгород, ... ... ... - на - Дону, Екатинбург, Самара, Киев, ... ... ... ... персональных компьютеров", Алматы 2004
* "Қазақстан Республикасының Еңбек қорғау заңдары" 2003
* Н.Б.Құдайбергенов "Еңбекті қорғау" 2003 жыл. ... ...

Пән: Информатика
Жұмыс түрі: Дипломдық жұмыс
Көлемі: 86 бет
Бұл жұмыстың бағасы: 900 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
"Қабылдау бөлімі" бағдарламасы63 бет
E-leaning - де білімді бақылау жүйесін құру92 бет
Банк клиенттерінің әртүрлі төлемдерді орындауы үшін тіркелудің автоматты жүйесін жасау34 бет
«Қазақстан-2030» стратегиялық бағдарламасының орындалуы51 бет
Таңшолпан бағдарламасы26 бет
Экологиялық аудит туралы26 бет
1С бухгалтерия бағдарламасының қолданылуымен еңбек көрсеткіштерінің есебі62 бет
KEGO ААҚ персоналының еңбекақысын ұйымдастыру37 бет
MS SQL Server туралы мәліметтер және жұмыс істеу негіздері4 бет
Norton Commander сервистік қаптама бағдарламасының функциялары мен қызметі7 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь