Файл қосу
Деректер базасының кестесін компонентпен байланыстыру
|ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ | |Семей қаласының шәкәрім атындағы мемлекеттік университеті | |университеті | |3 деңгейлі СМК құжаты |ПОӘК |ПОӘК | | | |042-14.2.07.1.20.37/03-2013 | |«Кәсіпорындардағы ақпараттық|03.09.2013ж. | | |жүйелер» |№1 басылым | | |пәнінің оқу- әдістемелік | | | |кешені | | | «Кәсіпорындардағы ақпараттық жүйелер» пәнінен оқу-әдістемелік кешен 5В060200 – «Информатика» мамандығына арналған ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАР Семей 2013. мазмұны 1. Дәрістер 2. Зертханалық сабақтар 3. Студенттің өздік жұмысы 1. ДӘРІСТЕР Дәріс сабағының құрылымы: Дәріс №1. Дәріс тақырыбы: Деректер базасы. Деректер базасының архитектурасы 1. Деректер базасы. 2. Архитектурасының түрлері. Деректерді интеграциялау концепциясына негізделген қазіргі ақпараттық жүйелер үлкен көлемді және құрылымы жағынан күрделі болып келеді. Олар көптеген пайдаланушылардың әртүрлі деңгейдегі талаптарын қанағаттандыруы тиіс. Кеңінен түсіндірер болсақ, деректер базасы дегеніміз – шынайы өмірдегі белгілі бір сала бойынша бар объектілер жайлы мағұлматтар жиынтығы. Шынайы өмірдің бір бөлігін пәндік аймақ деп айтуға болады. Бұл бөлік басқарудағы ұйымдастыру мәселелерін зерттеу үшін және соңында оның жұмыстарын автоматтандыру үшін қажет. Мысалы, кәсіпорын, жоғарғы оқу орындары және т.б. Деректер базасын құрғанда пайдаланушы әртүрлі белгілері бойынша реттеп, одан көптеген басқа да белгілердің жинақталуы бойынша таңдау жүргізе алады. Мұндай жұмысты деректер құрылымы тәртіптелген жағдайда ғана жүргізуге болады. Қажетті деректер базасын жылдам жасауға рұқсат ететін әртүрлі программалар жиыны бар: Microsoft Access, Microsoft FoxPro, Paradox, dBase, InterBase, Oracle. Олардың ішінде Paradox пен dBase-да деректер базасы папкалар сияқты, ал әрбір кесте жеке файл сияқты анықталады, ал Access, InterBase және SQL-серверлерінің көпшілігі деректер базасынан тұратын бір үлкен файлды қолданады. Деректер базасы – белгілі бір пәндік аумаққа жататын құрылымдық түрі бар деректердің атауы бар жинақ. Деректер базасы үшін ақпаратты өңдеу және рұқсат алу тәсілдері бойынша, сонымен қатар деректер базасының орналасқан орны бойынша қосымшалар архитектурасы бірнеше түрлерге бөлінеді. • Жергілікті архитектура – программа және деректер базасы бір компьютерде орналасқан. • Файл-серверлік архитектура – деректер базасы сервер деп аталатын желідегі негізгі (орталық) болып бөлінген компьютерде орналасады. Ал клиенттік программалар орнатылған дербес компьютерлер оған жергілікті желі бойынша қосылған. Бұл архитектура бірнеше пайдаланушыларға бір деректер базасымен бір уақытта жұмыс істеу мүмкіндігін береді. • Клиент-серверлік архитектура – деректер базасы серверде сақталады және мұнда пайдаланушылар сұраныстарын өңдейтін деректер базасын басқару жүйесі (ДББЖ) жұмыс істейді. Бұл архитектурада пайдаланушылар деректер базасымен қойылған тапсырмаларды орындайтын және алынған нәтижені қайтаратын ДББЖ арқылы жұмыс істейді. Табылған деректер клиентке желі бойынша серверден клиентке қарай жіберіледі. Клиент – сервер архитектурасының ерекшелігі SQL – құрылымдық сұраныстар тілін пайдалану болып табылады. Бұл архитектура бірнеше пайдаланушыларға бір уақытта бір деректер базасымен жұмыс істеуге рұқсат етеді. • Таратылған архитектура – деректер базасы бірнеше серверлерде сақталады және олардың әрбіреуінде ДББЖ көшірмелері болады. Сонымен деректер базасы және клиенттік қосымшаларға ұқсас архитектурада қосымшалар серверлері және компоненттер қолданылады. Қосымшалар серверлері пайдаланушылар сұраныстарын өңдеуге және желідегі компьютерлер арасындағы жүктемені біркелкі бөлуге рұқсат етеді. Компоненттер – бұл бөлінген серверде күрделі есептеулерді орындау үшін қолданылатын программалар. • Интернет-архитектура – деректер базасы және ДББЖ бір компьютерде орналасады, ал оларға рұқсат алу желілік протокол стандарты бойынша броузерлер арқылы жүзеге асады. «Файл-сервер» және «Клиент сервер» архитектураларының сұлбасы төменде көрсетілген. 1.1-сурет. «Файл-сервер» 1.2- сурет. «Клиент-сервер» архитектурасы архитектурасы Дәріс №2. Дәріс тақырыбы: Деректерді ұсынудың модельдері 1. Иерархиялық деректерді моделдеу 2. Желілік деректерді моделдеу 3. Реляциялық деректерді моделдеу 70-80 жылдардың соңында деректер базасын басқару жүйесінің дамуы негізінде деректерді ұсынудың әртүрлі модельдері пайда болды. Әрбір модельдің өзінің ерекшеліктері мен жетіспеушіліктері болды. Деректер моделі деп берілген талаптарға сәйкес мәліметтерді интерпретациялауды жүзеге асыратын құралдарды айтамыз. Сонымен қатар, мәліметтер моделі мәліметтердің мағлұматтық мазмұнын көру мүмкіндігін беретін абстрактілі ұғым болып табылады. Мәліметтер моделі екі класқа бөлінеді: - Мықты типтендірілген моделі, мұнда барлық мәліметтер қандай да бір категорияға қатысты болады. - Әлсіз типтендірілген моделі, категорияға қатысты ешқандай болжамдармен байланысты емес. Деректер моделі деректердің құрылымдарының жиынтығының деректер бүтіндігін шектеу және деректермен операциялар жасау әрекеттерін орындайды. Жалпы айтқанда, деректер моделі - деректер құрылымы жиынтығы мен оларды өңдеу операциялары. Деректер базасын басқару жүйелері иерархиялық, желілік және реляциялық модельдеуге немесе осы модельдердің белгілі бір жиынындағы комбинациясына негізделген. Деректер моделінің үш негізгі типін қарастырайық: иерархиялық, желілік, реляциялық. Иерархиялық деректерді моделдеу Иерархиялық құрылым бір-бірімен белгілі бір ережелер бойынша байланысқан элменеттер жиынтығын береді. Иерархиялық байланыстағы объектілер бағытталған граф (төңкерілген ағаш) құрады. Оның түрі суретте бейнеленген. Иерархиялық құрылымның негізгі ұғымдарына мыналар жатады: деңгей, элемент (түйін), байланыс. Түйін дегеніміз белгілі бір объектіні сипаттайтын деректер атрибуттарының жиынтығы. Сұлбада иерархиялық ағаштың түйіндері граф төбелері ретінде бейнеленген. Төменгі деңгейдегі әр түйін, жоғары деңгейдегі әр түйінмен ғана байланысқан. Иерархиялық ағаштың ешқандай төбеге бағынбаған, ең жоғарғы деңгейде орналасқан бір түйіні бар (ағаш түбірі). Бағыныңқы түйіндер екінші, үшінші т.б. деңгейлерде орналасады. Деректер базасындағы ағаштар саны түбір жазбалары санымен анықталады. Деректер базасы әрбір жазбаға түбір жазбадан тек бір жол болады (иерархиялық). Мысалы: 2.6.1-суретінде көрсетілгендей С4 жазбасы үшін өтетін жол А және В3 жазбалары арқылы өтеді. 1-сурет.Иерархиялық құрылымды деректер базасының графикалық бейнеленуі Желілік деректерді моделдеу Желілік құрылымда алдыңғы аталған негізгі ұғымдардағы (деңгей, түйін, байланыс) әр элемент кез-келген басқа элементпен байланыста бола алады. Иерархиялық модельдің жақсартылған түрі болып табылатын желілік модель көп қолданушылық режимде құрылатын модель. Деректерді желілік ұсыну элементарлы мәліметтер және олардың арасындағы қатынастар бағытталған желі түрінде көрсетіледі (төбелері – мәліметтер, доғалар - қатынастар). Мысалы, деректер базасында тапсырыстарды сақтауға арналған бір тапсырыс әртүрлі үш байланысқа қатынаса алады. 2-сурет. Желілік құрылымды деректер базасының бейнеленуі Реляциялық деректерді моделдеу Иерархиялық және желілік модельдердің жетіспеушіліктері деректердің реляциялық моделінің пайда болуына әкелді. Реляциялық модель әрекеті деректер базасының құрылымын оңайлатты. Мұндағы барлық мәліметтер жолдар мен бағандардан құралған қарапайым кесте түрінде көрсетілген. Реляциялық деген ұғым (ағыл.relation - қатынас) деректер базасы жүйелерінің маманы белгілі американдық ғалым Е.Коддонның есімімен байланысты. Бұл модельдер деректер құрылымының қарапайымдылығымен, пайдаланушыға ыңғайлы кесте түрінде сипаттайды және бұл модельде қатынастардың және деректерді өңдеуде реляциялық есептеулердің формальды алгебралық аппаратын қолдану мүмкіндігі бар. Реляциялық модель деректерді екі өлшемді кесте түрінде ұйымдастыруға бағытталған. Әр реляциялық кесте екі өлшемді массив түрінде беріледі де, мына қасиеттерге ие болады: - кестенің әр элементі деректердің бір элементі; - кестедегі бағандардың барлығы біркелкі, яғни бағандағы барлық элементтер бір типке (сандық, таңбалық т.б.) және бәрінің ұзындығы бірдей; - әр бағанның өзіне тән аты бар; - кестеде бірдей жолдар жоқ; - кестеде жолдар мен бағандардың орналасу тәртібі әркелкі. Қатынастар кесте түрінде беріледі. Кестедегі жолдар мен кортеж немесе жазба деп, ал бағандар қатынастар атрибуты немесе домен, өрістер деп аталады. Бір мәні жазбаны анықтайтын өрісті – қарапайым кілт (кілттік өріс) деп атайды. Егер жазбалар бірнеше өрістермен анықталса, онда мұндай кестенің құрамды кілті бар деп есептеледі. Екі реляциялық кестені ұйымдастыру үшін бірінші кестенің кілтін екінші кестенің кілтінің құрамына енгізу керек (кілттер бір-бірін қайталуы мүмкін). Басқа жағдайда бірінші кестенің құрылымына сыртқы кілтті енгізу қажет. Сыртқы кілт екінші кестенің кілті болады. Дәріс №3. Дәріс тақырыбы: Ақпараттық жүйелер және оның негізгі ұғымдары 1. Жалпы ақпараттық жүйенің функциялары: 2. Ақпараттық жүйенің түрлері Есептеу техникасы көптеген салалардың ішінен әсіресе, екі салада кең қолданылады. Бірінші сала - өте ұзақ немесе қолмен есептеуге келмейтін сандық есептеулердің орындалуы. Екінші сала – бұл ақпаратты өңдеуге арналған ақпараттық жүйе болып табылады. Ақпараттық жүйе (АЖ) – ақпараттарды сақтауға, өңдеуге және көрсетуге қолданылатын, бір – бірімен байланысқан құралдардың, әдістер мен персоналдардың жиыны. Мұндай жүйелер көлемі үлкен ақпараттармен жұмыс істейді және бұл ақпараттың құрылымы күрделі болып келеді. Ақпараттық жүйенің классикалық мысалы ретінде банк жүйесін, авиация және теміржол билетін, қонақ үйде орынды алдын – ала сатып алу және т.с.с. автоматтандырылған жүйелерді қарастыруға болады. Ақпараттық жүйе (АЖ) – ақпараттарды сақтауға, өңдеуге және көрсетуге қолданылатын, бір-бірімен байланысқан құралдардың, әдістер мен персоналдардың жиыны. Мұндай жүйелер көлемі үлкен ақпараттармен жұмыс істейді және бұл ақпараттың құрылымы күрделі болып келеді. Жалпы ақпараттық жүйенің функциялары: ✓ ақпаратты сақтау, ✓ ақпаратты енгізу және өзгерту; ✓ ақпаратты көру және іздеу; ✓ берілген критерий бойынша ақпаратты іріктеу; ✓ кез – келген формада есеп құжатын алу; ✓ ақпараттың дұрыстығын қадағалау. АЖ – ні екі класқа бөлуге болады. ➢ Ақпаратты іздеу жүйесі – берілген іздеу критериі бойынша жалпы жиыннан мәліметтерді іздеуге бағытталған. Қолданушыға мәліметтердің өңдеу технологиясы емес, тек алынатын ақпарат ғана керек. Мысалы, қаладағы анықтау қызметіне телефон шалғанда, қолданушыға нақты ақпарат ғана керек. ➢ Мәліметтерді өңдеу жүйесі – мәліметтерді өңдеуге бағытталған. Бұл жүйеде өңдеуден шығатын ақпарат болмауы немесе жүйе өңделген ақпараттың нәтижесін ғана беруі мүмкін. Мұндай жүйенің мысалы ретінде барлық региондардан мәліметтер жинайтын метереология қызметінің ақпарат жүйесін алуға болады. Қолданушыға бастапқы мәліметтер емес, олардың нәтижесі, яғни ауа – райы болжамы керек. Ақпараттық жүйенің түрлері Ақпараттық жүйелер келесі түрлерге бөлінеді: фактографиялық, құжаттық, құжаттық – фактографиялық. 1. Фактографиялық жүйеде нақты өмірдегі объект жайлы мәліметтердің (атрибуттардың) дәл мәндері тіркеледі. Бұл жүйенің негізгі идеясы – объект жайлы барлық деректер (адамдардың аты – жөндері және заттардың атаулары, сандар, мерзім КК.АА.ЖЖЖЖ түрінде) беріледі. Фактографиялық АЖ – дегі ақпараттар қатаң құрылыммен беріледі, өйткені бұл компьютерге мәліметтерді бір – бірінен айыруға мүмкіндік туғызады. Сондықтан фактографиялық жүйе қойылған сұрақтарға бірмәнді жауап береді. 2. Құжаттық ақпараттық жүйесінде қандай да бір формалданған іздеу аппараты бар құжаттық жүйе мәтіндік құжаттар (статьялар, кітаптар, рефераттар, заң мәтіндері және т.б.) мен графикалық объектілерден құралады, бірақ қойылған сұрақтарға бірмәнді жауап бермейді. Жүйенің мақсаты – қолданушының сұранысына жауап ретінде сұраныстағы шартты қанағаттандыратын құжаттардың тізімін беру болып табылады. Мысалы, «синергетика» сөзі бар барлық статьялардың тізімін беру. 3. Құжат – фактографиялық жүйеде аралас жүйенің мәліметтері бөлек мәліметтерден, сонымен қатар, бүтін құжаттардан тұрады. Сонымен, ақпараттық жүйенің мақсаты нақты өмірдегі объектілердің өзара байланысын ескере отырып, объектілер жайлы деректерді өңдеу болып табылады. Мәліметтер қоры теориясында мәліметтерді атрибуттар, ал объектілерді маңыздылықтар деп атайды. Объект, атрибут және байланыс – АЖ – нің іргелі түсініктері болып табылады. ➢ Объект (маңыздылық) – бұл нақты өмірде бар және бір – бірінен айыруға болатын «нәрсе», яғни аталуы және өзіне ұқсастардан айыратын тәсілдерден тұратын «нәрсені» объект деп атауымызға болады. Мысалы, әрбір мектеп бұл объект. Объект ретінде сондай – ақ адам, мектептегі сынып, фирма, химиялық қосындылар және т.с.с. бола алады. Нақты өмірді бейнелейтін абстрактілі түсініктер де объект бола алады. Мысалы, оқиға, өнер шығармасы, театр қойылымы, кітаптар, кинофильмдер және т.с.с. ➢ Атрибут (мәліметтер) – бұл объектіні сипаттайтын анықталған көрсеткіш және бұл объектнің нақты экземпляры үшін санды, мәтінді немесе басқа мәндерді қабылдайды. Мысалы, фирма шығаратын өнім объект болсын. Бұл өнімнің мәліметі ретінде оның аталуы, түсі, салмағы және т.с.с. бола алады. Объект жайлы ақпарат құрылымды болуы тиісті, өйткені компьютерде құрылымды ақпаратты өңдеу оңай. Құрылымды ақпарат – бұл мәліметтердің көрініс тәсілдеріне қандайда бір келісімді енгізу болып табылады. Мысалы, мәтіндік файлдар компьютердің ұтымды өңдеуіне жарамсыз болып келетін «құрылымсыз» немесе «әлсіз құрылымды» ақпараттардан тұрады. Дәріс №4. Тақырыбы: Delphi ортасындағы деректер базасы 1. Жергілікті деректер базасы 2. Қашықтағы деректер базасы Дельфидің құрамына әртүрлі жүйелердегі деректер файлдарымен жұмыс істеу программаларын құруға мүмкіндік беретін компоненттер кіреді. dBase- бастап Informix, Oracle-ге дейін. Сонымен қатар әртүрлі форматтағы деректер базасының файлдарын құру мүмкіндігін беретін, Borland Database Desktop утилитасын ұсынады. Деректер базасының класификациясы. Деректер пайдаланылатын программаның орналасуына байланысты, сонымен қатар деректердің бірнеше пайдланушылар арасында бөліну әдістеріне қарай жергілікті және қашықтағы деректер базасы болып бөлінеді. Жергілікті деректер базасының (деректер файлдары) деректері бір құрылғыда болады, яғни компьютер дискісінде немесе желілік дискіде. Бірнеше пайданушылар арасында деректерді таратуды (деректерге жетуді) қамтамасыз ету үшін, яғни бір немесе бірнеше компьютерлерде жұмыс істеп тұрған программа, жергілікті деректер базасында файлдарды блокировкалау деп аталатын әдісті қолданады. Бұл әдістің негізі мынада, әзір деректерді бір пайдаланушы пайдаланып жатқанда, басқа пайданушы бұл деректерді пайдалана алмайды, яғни ол үшін деректер жабық. Қашықтағы деректер базасының деректері файлдары қашықтағы компьютерде орналасады. Қашықтағы деректер базасымен жұмыс істеу программасы екі бөліктен тұрады: клиенттік және серверлік. Пайдаланушы компьютерінде жұмыс істеп тұрған программаның клиенттік бөлігі, программаның серверлік бөлігімен өзара қарым қатынасты ұйымдастырады, қашықтағы компьютерге жіберілетін сұраныстар көмегімен деректерге жетуді қамтамасыз етеді. Қашықтағы компьютерде орналасқан программаның серверлік бөлігі, сұраныстарды қабылдайды, оларды орындайды және деректерді клиенттік программаларға жібереді. Сұраныс бұл SQL (Құрылымды сұрыныстар тілі-Язык структурированных запросов) тіліндегі командалар. Қашықтағы серверде жұмыс істеп тұрған программа, бірнеше пайдаланушыға бір уақытта ақпаратқа жетуді қамтамасыз етеді. Файлдарды блокировкалау механизмінің орнына, транзакция механизмін пайдаланады. Транзакция – тасымалданар алдында, деректерге міндетті түрде орындалуы керек, қандай да бір әрекеттер тізбегі. Кез келген әрекет орныдалу барысында қате табылса барлық әрекеттер тізбегі қайта қайталанады.Сонымен транзакция механизмі аппараттарды сбойыдан қорғауды қамтамасыз етеді. Деректерге көппайдаланушылық жетуді қамтамасыз етеді. Дәріс №5. Дәріс тақырыбы: Delphi ортасында деректер базасын құру және басқару 1. Деректер базасының қосымшасын пайдалану механизмі 2. Деректер базасының кестесін компонентпен байланыстыру. 3. Мәліметтерді көрсету Delphi ортасында әртүрлі деректер базасын құруға болады. Деректер базасы құрылымының қиындығына қарамастан, мәліметтермен жұмыс істеуге мүмкіндік беретін негізгі механизм бар. Ол компоненттер триадасынан тұрады. Бұл компоненттер мыналар: • Мәліметтерді енгізу компоненттері (Ttable, TQuery) • DataSource компоненті Мәліметтерді енгізу компоненттері DataAccess бетінде орналасқан. Ал мәліметтерді көрсету компоненттері DataControls бетінде орналасқан. Қарапайым Деректер базасын құрудың күрделі Деректер базасын құрудан өзгешелігі шамалы. Формаға бірнеше компонентті қойып, олардың қажетті қасиеттерін өзгертсек, жұмыс істеп тұрған деректер базасын аламыз. Мәліметтерді енгізу компоненттері мен көрсету компоненттерінің арасындағы байланысты қамтамасыз ететін DataSourse компоненті. Бұл компоненттердің деректер базасындағы өзара байланысын қарастырсақ: Қосымша мен деректер базасының арасындағы байланысты қамтамасыз ететін BDE болып табылады. Процессорда сұраныстарды деректер базасына жіберетін драйвер орнатылған, сонымен қатар BDE –де деректер базасының псевдонимі тіркелген болуы керек. Ол деректер базасының файлдары қай жерде орналасқандығын және пайдаланатын драйвердің типін анықтайды. Деректер базасының қосымшасын пайдалану механизмі Қосымша Ttable – мен байланысатын компоненттер мәліметтермен жұмыс істеуге мүмкіндік беретін компоненттер болып табылады. Олар мәліметтерді инкапсуляциялайды және әртүрлі операцияларды орындау үшін BDE функцияларына жүгінеді. Мұндай компоненттердің санына шектеу қойылмайды. TdataSource компонентінің тағы бір функциясы болып мәліметтерді енгізу және көрсету компоненттерінің жұмысын синхронациялау болып табылады. Мысалы, егер енгізу компоненттері «тек оқу үшін» (только для чтения) режимінде жұмыс істесе TdataSource мәліметтерді көрсету компоненттеріне мәліметтерді өзгертуге тиым салады. Бір ғана dataSource компонентімен бірнеше көрсету компоненттері байланыста болуы мүмкін. Бұл компоненттер мәліметтерді көрсету процесін басқарады. Енгізілген мәліметтерді ашқан кезде деректер базасының қажетті кестесінің жолдарын енгізілген мәліметтерге жібереді. Меңзер бірінші жолға орналасады. Пайдаланушы мәліметтерді көрсету компоненттері көмегімен мәліметтерді көру және өзгерту мүмкіндігіне ие болады. Өзгертулер алдымен TdataSource компонентіне, содан кейін деректер базасына жіберіледі. Деректер базасы қосымшаның жалпы жұмысын қарастырғаннан кейін қосымша құруды кезеңдерге бөліп қарастырайық. Мәліметтермен жұмыс істеу компоненттері деректер базасының негізі болып табылады. Жұмыс барысында бұл компоненттермен тығыз байланыста болады. Мәліметтермен жұмыс істеу компоненттері визуалды емес, яғни программаның жұмыс істеу барысында олар көрінбейді. Деректер базасында пайдаланушымен байланыс жасау үшін форма пайдаланылады. Жаңа форма құрып алған соң мәліметтерді көрсету компоненттерін формаға тасып мынадай әрекеттер жасау керек: Деректер базасын компонентпен байланыстыру. Ол үшін объектілер инспекторындағы Database қасиетін пайдаланамыз. Бұл жерде BDE – де тіркелген деректер базасының псевдонимін көрсету керек. Псевдонимді ашылатын тізімнен таңдап алуға болады. Деректер базасының кестесін компонентпен байланыстыру. Ол үшін объектілер инспекторы терезесіндегі TableName қасиеті пайдаланылады. Бірінші кезеңді орындағаннан кейін берілген деректер базасының барлық кестелері тізімде көрінуі керек. Бұл тізімнің құрамы TableType қасиеті арқылы анықталады. Егер мәні ttDefault болса, онда таңдап алынған кестенің барлық файлдары кеңейтулерімен көрсетіледі. Кестені таңдап алған соң ол компонентпен байланысады. Компоненттің атын өзгерту. Бұл міндетті емес, бірақ компоненттерге ойластырылған ат берген дұрыс. Көбінесе компоненттің аты онымен байланысқан кестенің аты мен Table сөзінің комбинациясынан тұрады. Деректер базасы мен компонент арасындағы байланысты активтендіру. Ол үшін Active қасиеті пайдаланылады. Егер объектілер инспекторында True мәнін меншіктесек, байланыс активтенеді. TdataSource компонентін баптау Формаға TdataSource компонентін қойып, оны баптау керек. Баптау үшін мынадай әрекеттер орындау керек: 1. Мәліметтермен жұмыс істеу компоненттерін TdataSource –пен байланыстыру. Ол үшін DataSet қасиеті пайдаланылады. Бұл тізімде пайдалануға болатын компоненттердің тізімі көрсетіледі. 2. Компоненттің атын өзгерту. Бұл міндетті емес. Мәліметтерді көрсету Деректер базасы қосымшасын құруда мәліметтерді көрсету компоненттерінің көмегімен пайдаланушылық интерфейс жасау керек. Бұл компоненттер мәліметтерді көруге және өзгертуге арналған. Олар міндетті түрде TdataSource компонентімен байланысқан болуы керек. Деректер базасының қосымшасында TDBGrid компонентінің мәні зор. Ол мәліметтерді кесте түрінде көрсетеді. Мәліметтерді көрсету үшін мынадай әрекеттерді орындау керек: 1. Мәліметтерді көрсету компонентін TdataSource компонентімен байланыстыру. Ол үшін dataSource қасиеті пайдаланылады. Бұл жерде қажетті TdataSource компонентінің атын көрсету керек. 2. Мәліметтер өрісін (поле) көрсету. Ол үшін DateField қасиеті пайдаланылады. Мәліметтерді көрсету компоненттерінің ішінде TDBNavigator компоненті ерекше орын алады. Ол кесте жолдарында орын ауыстыруға арналған. Ол әдетте TDBGrid компонентімен бірге жүреді. Дәріс №6. Дәріс тақырыбы: ДҚ жұмыс жасау үшін қолданылатын компаненттер 1. Delphi ортасының беттері 2. Интернетпен жұмыс істеуге арналған компоненттер. Енді мәліметтер қорымен жұмыс барысында қажет болатын Delphi ортасының беттеріне тоқтала кетейік. Delphi-де ДҚ кестелерінің форматы болмайды , бірақ көптеген ДҚБЖ-мен қатынас жасайды, жергілікті -dBase Paradox, өнеркәсіптік - SyBase InterBase ДҚ-мен жұмыс істеуге арналған Delphi құралдарына жатады : - Аспаптық құралдың ( арнайы бағдарламалар және пакеттер ) - Компоненттер , қосымшаларды құруға арналған ДҚ операция, жүзеге асырады . Delphi ДҚ операцияларына арналған құралдарға келесілер жатады : - BDE ( Borland DataBase Engine ) – мәліметтер базасының кітапхана қорын құрайтын процессоры. - BDE Administrator – күйге келтіруге арналған утилит . - DataBaseDesktop – SQL және QBE шақыруларының кестесін құру, түзеуге арналған программа. - SQL Explorer – ДҚ жол бастаушысы , БД параметрлері жөндеуге рұқсат етеді . - Monitor – SQL сұраныстарының орындалуын қадағалайтын программа . - SQL Links – ДҚБЖ жойылған программалар драйвері мыс; MSSQL Server Oracle ; - Local InterBase Server - Borland InterBase-дағы жергілікті SQL – серверінің версиясы. - InterBase Server Server for Windows 95– Borland InterBase –дағы SQL -серверінің төртеуін бір уақытта қосуға есептелген көп қолданушы версиясы. ДҚ жұмыс жасау үшін қолданылатын компаненттер, DataAccess, DataControls, Midas, Qreport және DesisionCube беттерінде болады. DataAccess бетінде визуалды емес компонент орналасқан, олардың көмегімен мәліметке қатынасты ұйымдастыруға болады: - DataSourse – мәліметтер көзі ; - Table – ДҚ кестесіне негізделген мәліметтер жиыны ; - Query – SQL сұрауына негізделген мәліметтер жиыны ; - StoredProc – серверде сақталған процедураға негізі мәліметтер жиыны; - DataBase - ДҚ мен байланысуы; Session – БД да ағымдағы жұмыстар сеансы . DataControls бетінде келесі визуалды компоненттер орналасқан; - DBGrid – тор ( кесте ) - DBNavigator – навигациялы интерфейс - DBText - жазу - DBEdit – бір жолдық редактор - DBImage – графикалық бейне - DBListBox – қарапайым тізім - DBComboBox – қиыстырылған тізім - DBCheckBox – тәуелдісіз ауыстырып- қосқыш QReport бетінде келесі визуалды компоненттері орналасады QuckRep - есептеу - QRSubDetail – байланысқан кестелерге арналған есепберу жолағы - QRBand – есепберу жолағы - QRGroup - топ QRLabel - жазу ADO беті. Бұл беттің компоненттерінің функциялары BDE беті компоненттерінің функцияларына өте ұқсас, айырмашылығы ADO технологиясын қолдайтындықтарында. Барлық компоненттері 5-нұсқада енгізілген. InterBase беті. Мәліметтер қорының сервері InterBase- ді осы беттің компоненттері қолдайды. Мұнда IBExpress технологиясы пайдаланады. Decision Cube беті. Көп өлшемді мәліметтерді саралау нәтижесінде шешімдер қабылдауға арналған компоненттер орналастырылған. Qreport беті. Мәліметтер қорында сақталған мәліметтер бойынша есептер құруға мүмкіндік беретін отызға жуық компоненттер орналасқан. Интернетпен жұмыс істеуге арналған компоненттер. Internet беті. Бұл беттің компоненттері дүниежүзілік компьютерлік жүйемен жұмыс істеуге мүмкіндік жасайды. Бұл жүйе бір-бірінен алыс орналасқан екі компьютердің байланысын қамтамасыз етеді. Компьютерлердің бірі ақпаратты алады (клиент), ал екіншісі ақпаратты таратады. Екі компьютер де TCP/IP (Transport ControlProtocol/Internet Protocol) хаттамасын асүйену керек. World Wide Web (WWW) интернетінің бір бөлігі болып табылады. Ол компьютерлер арасындағы байланысты HTML – беттердің көмегімен жүзеге асырылады. FastNet беті. Бұл беттің компоненттері программистке хаттамалардың негізінде әртүрлі ақпараттармен алмасуды жүзеге асыруға мүмкіндік береді. 2- 4 нұсқаларда бұл компоненттер интернет бетінде орналасқан. Платформа аралық программалар үшін Indy бетінің компоненттерін пайдаланған дұрыс. WebServise беті. Бұл беттің компоненттері Web – қызметі құратын SOAP(Simple Object Access Protocol) технологиясын қолдайды. Web – қызмет дегеніміз клиенттің талаптарын жауап ретінде Web – сервері іске қосатын программа. WebSnap беті. Бұл беттің компоненттері Web Server технологиясын ары қарай дамытуға арналған. Indy Clients, Indy Servers, Indy Misc беттері Бұл беттерде орналасқан платформа аралық программаларда қолданылады. Дәріс №7. Тақырыбы: Деректер қорымен жұмыс істеуге арналған құралдар Аспаптық құралдар 1. Компоненттер 2. Қосымша құру. ДҚ кестесін құру. Сабақтың мақсаты: ДҚ операцияларды жүргізетін қосышаларды құруға арналған компоненттерді оқып білу. Delphi-де ДҚ кестелерінің форматы болмайды , бірақ көптеген ДҚБЖ-мен қатынас жасайды, жергілікті -dBase Paradox, өнеркәсіптік - SyBase InterBase ДҚ-мен жұмыс істеуге арналған Delphi құралдарына жатады : - Аспаптық құралдың ( арнайы бағдарламалар және пакеттер ) - Компоненттер, қосымшаларды құруға арналған ДҚ операция, жүзеге асырады . Аспаптық құралдар Delphi ДҚ операцияларына арналған құралдарға келесілер жатады : - BDE ( Borland DataBase Engine )– мәліметтер базасының кітапхана қорын құрайтын процессоры. - BDE Administrator – күйге келтіруге арналған утилит . - DataBaseDesktop – SQL және QBE шақыруларының кестесін құру, түзеуге арналған программа. - SQL Explorer – ДҚ жол бастаушысы , БД параметрлері жөндеуге рұқсат етеді . - Monitor – SQL сұраныстарының орындалуын қадағалайтын программа . - SQL Links – ДҚБЖ жойылған программалар драйвері мыс; MSSQL Server Oracle ; - Local InterBase Server - Borland InterBase-дағы жергілікті SQL – серверінің версиясы. - InterBase Server Server for Windows 95– Borland InterBase –дағы SQL -серверінің төртеуін бір уақытта қосуға есептелген көп қолданушы версиясы. Компоненттер ДҚ жұмыс жасау үшін қолданылатын компаненттер, DataAccess, DataControls, Midas, Qreport және DesisionCube беттерінде болады. DataAccess бетінде визуалды емес компонент орналасқан, олардың көмегімен мәліметке қатынасты ұйымдастыруға болады: - DataSourse – мәліметтер көзі ; - Table – ДҚ кестесіне негізделген мәліметтер жиыны ; - Query – SQL сұрауына негізделген мәліметтер жиыны ; - StoredProc – серверде сақталған процедураға негізі мәліметтер жиыны; - DataBase - ДҚ мен байланысуы; - Session – БД да ағымдағы жұмыстар сеансы . DataControls бетінде келесі визуалды компоненттер орналасқан; - DBGrid – тор ( кесте ) - DBNavigator – навигациялы интерфейс - DBText - жазу - DBEdit – бір жолдық редактор - DBImage – графикалық бейне - DBListBox – қарапайым тізім - DBComboBox – қиыстырылған тізім - DBCheckBox – тәуелдісіз ауыстырып- қосқыш QReport бетінде келесі визуалды компоненттері орналасады - QuickRep - есептеу - QRSubDetail – байланысқан кестелерге арналған есепберу жолағы - QRBand – есепберу жолағы - QRGroup - топ QRLabel - жазу Қосымша құру. ДҚ кестесін құру. Қарапайым қосымша жасаулары негізгі кезеңдері: - ДҚ кестелерін құру ; - Қосымша форма құру . DataBaseDesktop бағдарламасын қолданып, ДҚ кестелері құру. Жаңа кесте құру процесі, New|Table командасымен басталады интерактивтік тәртіпте және келесі пункттерден құралады : - кесте үлгісін таңдау ; - кесте құрылымын беру ; - кілттік алаңдары көрсету ; - индексті анықтау ; - алаңның мәнін анықтау ; - парольді анықтау ; - кестелер аралық сілтемелік бүтіндікті сұрау ( байланыстың ). Алдымен CreateTable терезесінде форматы : Paradox 7 таңдалады Кесте үлгісі таңдалғаннан кейін кесте құрылым анықтама терезесі көрінеді . Table properties ( кесте қасиеттері ) - Secondary Indexes – индекс тапсырмасы ; - Validity Checks – алаң мәнін енгізуге шек қою; - Password Security – парольді анықтау ; Referential Integrety – кестелер аралық сілтеме бүтіндігін анықтау. Қолайлы Secondary Indexes таңдауында Define( анықтау )- Define Secondary Indexes ( екінші индексті беру) батырмасы мүмкіндіріек болады.Оң тізімде бейнеленген және индекс параметрі, осы терезеде индекс алаңдары беріледі, негізгілері келесі фактілер көмегімен өзгереді: Unigue – алаңдарды құратын индекске кіретін уникальді мәндер . Case Sensitive – жол типті алаңдарға символ регистрлері есептеледі . Descending – мәндер кемуі ретінде сорттау орындалады . ОК және индексті алаң құрамы, Save IndexAs терезесі көрінеді, онда индекс аты беріледі . Save As кестені сақтауы. Қосымша форма жасау Table 1, DataSource 1, DBGrid 1 және DBNavigator 1 DataBaseName Table 1, TableName Activ True Datasource – Dataset DBGrid – DataSource ДҚ-мен жұмыс істеуге арналған компоненттер БД кестелері дискде орналасады. Олар физикалық объекті болып келеді. Кестеде орналасқан мәліметтер операцияларына мәліметтер жиыны қолданылады. Мәліметтер жиыны Мәліметтер -жиыны жазбалар, ол бір немесе бірнеше ДҚ кестелерінен алынған . Жазбалар белгілі бер ережемен таңдалынатын мәліметтер жиыны логикалық кесте деп аталады.Мәліметтер жиынының және кестелердің өзара әрекеттері физикалық файл және файлды айнымалымен өзара байланыстырады. Delphi-де НД жұмысы жұмыс істеу үшін Table Query , StoredProc және DesisionQuery компоненттері қолданылады . StoredProc –ДҚ жойылған әрекеттестік ұйымы , DesisionQuery – шешімдерді қабылдайтын жүйелерінің құруыға арналған . ДҚ мүмкіншіліктерін TDataSet сыныбын қамсыздандырады, ол редакциялауы және НД-да ауыстыру . ТTable және ТQuery компоненттері TBDE TDataSet класында туындайды. ДҚ кестесінің орналасқан жерін көрсету үшін DataBaseName қасиеті қолданылады. НД-ны жазбалар санымен басқаруды таңдаудың қосымша түрімен:фильтрация немесе SQLсұранысы арқылы іске асырылады.Мәліметтер жиынымен операция организациялары мәліметтерге екі түрлі амал қолданылады: 1.Навигациялық 2.Реляциялық Қатынастың навигация тәсілі әрбір жеке мәліметтер жиынының жазбасын өңдейді. Мынау тәсіл жергіліктілермен ДҚ немесе көп емес жайылған ДҚ жұмыстары үшін қолданылады. Реляциялы тәсілі жазбалар тобын өңдеуге негізделген. Егер бір жазбаны өңдеу қажет болса , бәрі-бір бар топты өңделеді, себебі ол бір жазба болып есептелінеді. Реляциялы тәсіл -сұранысына негізделген және SQ Lбағытталған деп аталады. Жайылған ДҚ БД жұмыстары үшін қолданылады . ТTable жиынының ерекшеліктері ТTable компоненті ДҚ бір кестесімен байланысқан мәліметтер жиыны. Навигация тәсілінге негізделген және жергілікті ДҚ қолданылады . - Table мәліметтер жиынында ағымдағы индексті көрсетуі мүмкін. Олар келесі операциялар үшін қажет: - жазулардың сорттауы - жазулардың іздеуі - кестелер аралық байланыстардың құруы . Index Name немесе Index Fieldnames muna String қасиеттерінің арқасында ағымдағы индексті орнатуға болады. кесте құрғанда берілген индекс тізімінен ағымдағы индекс таңдалынады. Index Name және IndexFieldNames екі қасиеті ұқсас және бірдей қолданылады, бірақ IndexName мәні болып кесте құрылғанда берілген индекс аты, ал IndexFieldNames қасиеттерінің мәні индекс құрылған алаң аты болады. Егер бірнеше алаңнан тұратын индекс қолданылса онда IndexName қасиетіне бұрынғыдай осы индекстің аты, ал IndexFieldNames қасиетін осы индекске осы керекті алаңдар аты саналады. Мысалы, ағымдағы индекстің тапсырмасы Table 1. IndexName :=‘ indName ’ Table 2. IndexFieldsName :=‘ Name ’; Table1 және Table2 компоненттері бір кестемен. байланысқан, indNamе анықталған индекстің Name алаңы үшін. Paradox кестелерінің басты индексінің IndexFieldsName қасиетінің көмегімен ағымды етуге болады. Мысалы2. Ағымның басты индекстің сапасы ретінде тапсыру. Table 1. IndexFieldsNames :=‘ Name ; Post ; BirthDay ’; Table1 компонентімен байланысқан ДҚ кестесіне арналған негізгі индекс анықталған. Оған кілтті алаң Name Post; BruthDay кіреді ;Бұл индекс ағымдағы ретінде орнатылады . Ағымдағы индекстің құрамдағы алаңдарға рұқсатты IndexFieldsCount және IndexFields қасиеттерінің көмегімен алуға болады . Integer типі IndexFieldsCount қасиет ағымдағы индексте алаң санын құрады. Уақытда қосымшаны орындауға арналған рұқсат қасиеті. IndexFields қасиеті ( Index : Integer )типті ағымдағы индексті алаңмен хабарласады, Index айнымалысы осы индекс алаңның индексіне индекс нөмір сұрайды. Есепберу 0-ден басталады. Индекстер көбінесе кесте құруда анықталынады, бірақ процесте қосымша орныдауда динамикалы ADDIndex және DebateIndex тәсілдер көмегімен өзгерістер болуы мүмкін. Мысалы : кестеге индексті қосуы . Procedure Tform 1. ButtonClick ( Sender : TObject ); Begin || монополиялық рұқсат режимінде кесте аудармасы || Table 1. Close ; Table 1. Excluisive := true ; Table 1. Open ; || индексті қосуы || Table 1. AddIndex (‘ indPost ’,‘ Post ’,( ixDescending , ixCaseInsensitive )); || монополиялық режимнің жабылуы || Table 1. Close ; Table 1. Excluisive := false ; Table 1. Open ; End ; Түсініктемелер : регистер әріптеріне тәуелсіз мәндер кемуі бойынша орналасқан сорттау тәртібін құру НД indPost кестесімен байланысуы. DeleteIndex процедурасы ( constName : string )кестеден Name параметрмен берілген индексті жояды. Table 1. DeleteIndex ( indPost ); Дәріс №8 Тақырыбы: Аспаптық құралдармен жұмыс. Delphi –де деректер қорының тіркеуі 1. Delphi-де ДҚ кестесін құрудың негізгі этаптары 2. ДҚ орналасуын беру 3. ДҚ-ға Псевдонимді меншіктеу Сабақтың мақсаты: Delphi-де ДҚ кестесін құрудың негізгі этаптары ДҚ анықтамасы. ДҚ ол файлдардың жиынтығы: кестелердің, индекстері және триггерлері , кестелер аралық байланысты бейнелейді . ДҚ құралады : - ДҚ кестесі , - индекстер, - ескертулер ( мемо - алаң ) және т . б . Бір кестені анықтау үшін жеке файл құрылады . Сондай бөлек файлдар кестелер индексін және мемо-алаңын сақтауы үшін қолданылады. Бұл файлдар бір жерде және бірге сақталуы керек, олай болмаса, ДҚБЖ дұрыс жұмыс істемеуі мүмкін, сондықтан БҚ-ның барлық компаненттерін бірге сақтау керек. Delphi-де ДҚ құру ( немесе Delphi жұмысқа арналған ) ДҚ сақталынған және орналасқан орыннан басталады. ДҚ орналасуын беру ДҚ белгілі бір компьютерде директорияда болуы мүмкін. Мынау директория бөлістері жолмен істеуге болады ( немесе жолмен папка жасаулары ) ДҚ компоненттеріне арналған . Осы директорияны бөлу жолымен жасауға болады . Директорияны өзінің компьютерде, серверде тамыр каталогте немесе подкаталогеде. Құруға болады, мысалы : 1) C :\ Primer ; 2) C :\ \ \…..\ Primer . Әдеттегі мәліметтер базасының жергілікті режимде ДҚБЖ Paradox, dBase және FoxPro форматында құрылған ДҚ жұмыс істейді ( немесе ДҚ кестелері ). ДҚ-ға Псевдонимді меншіктеу ДҚБЖ технологиясында ДҚ атауына псевдонимді қосады, сонда ДҚБЖ программалары псевдоним арқылы іске асырылады. BDE Administrator утилитінде аталған байланыста Delphi болуы тиісті. - ДҚ-да мекенжай көрсетілген. Delphi –де ДҚ-ны құру немесе Delphi-де жұмыс істеу орналасуы және сақталынуы басталады. Сайып келгенде , ДҚ –құруда алғашқы қадам өзіміздің мысалда осы қадамда орындалады біздің компьютерде түбір католог "C :"дискісі директроияда біздің мәліметтер базасы орналасып директория аты-" ". онда бума көмегімен құрылған директория аты C:" :\ ". егер ДҚ тегерішінде жасалған болу D дискісінде құрылса , оның аты "D :\ ". "C :\ "мәліметтер базасын кез келген жұмыс атын беруге болады,бірақ біз құратын ДҚ-ны сол атпен "C :\ PRIMER " қалдырамыз. Осылайша , бүркеншік ат ( немесе алиас ) ДҚ " PRIMER ". ДҚ тіркеуі . Delphi –де ДҚ тіркеуі BDE Administrator утилитінің көмегімен іске асырылады. Сондықтан біздің "C :\ PRIMER " BDE Administrator іске асырамыз. BDE Administrator екі варианттың қолдауында жүреді : 1. Windows жұмысшы столына тікелей : (Пуск/Программы/Borland Delphi 3/BDE Administrator). 2.Алдымен Delphі-дің негізгі модулі жіберіледі,ол экранғы IDE-нің жоғарғы қатарында Delphі-дің басты менюі орналасқан. [pic] Сурет 8.1. Delphi өңдеуінің интегралдық жүйесі DateBase менюін ашамыз және одан Explоrer командасын таңдаймыз.Осы командамен BDE Administrator утилитін жібереміз.Жібергеннен кейін келесі амалдар орындалады: Негізгі менюден Object | New элементі таңдаймыз. Көрінген терезеде (сурет .4) ДҚ құрылған типті (Standard )өзгеріссіз қалдырып ОК басамыз . Администратормен терезенің сол жағында STANDARD1 терезесін көреміз. Оны PRIMER атымен өзгертеміз Ол үшін ДҚ атына тышқанды шертіп жаңа мәтін енгіземіз. [pic] 8.2.-сурет. Мәліметтер базасының драйвер типін таңдау терезесі Оң жақ терезеде ДҚ параметрлері келтірілген . Оларды өзгеріссіз қалдырамыз, тек атын өзгертеміз. Бұл параметр ДҚ орналасқан катологқа жолды енгізу үшін жол сілтейді.Жолды енгізу үшін PATH алаңын шертіп оң жақта пайда болған [pic] батырманы басып С:\PRIMER каталогын таңдап ОК батырмасын басамыз. (3-сурет). Енді псевдонимнің анықталуын есте сақтауымыз керек, ол үшін сол жақ терезеде тышқанның оң жақ батырмасымен псевдоним атын шертеміз және Apply элементін менюде таңдаймыз. Пайда болған диалогты терезеде псевдонимнің өзгертулерін есте сақтаймыз да, ОК батырмасын басуымыз керек. Сонымен BDE Administrator утилитінен шығуымыз керек. Содан соң псевдоним құру аяқталды. Енді оған басқа утилиттерден хабарласуға болады. Бірақ ДҚ псевдонимі бар каталог әлі бос мәліметтер базасының кестесін құру керек. [pic] Сурет 8.3. Мәліметтер базасының псевдонимінің параметрлі терезесі Дәріс №9 Тақырыбы: Деректер қорының кестелерін құру 1. Кесте құрылымын конструкциялау 2. Кестелерді толтыру және есте сақтау. Сабақтың мақсаты: ДҚ кестелерін толтыру және құрылымды қалыптастыру, кестелер арасындағы байланысты орнату. ДҚ құруды былай бейнелейміз. Концептуалды жобаға сәйкес мәліметтер базасы 2 өзара байланысқан кестелерден тұрады. Бірінші кесте басты болып табылады. Кестенің әрбір жолы өріспен сәйкес келеді. Бағаналардың тағайындаулары : • Fields Name - алаң аты ; • Type - алаң типі ; • Size - алаң өлшемі (жолдардың алаңы үшін ); Key - '*'жұлдыздан құралады, егер алаң алғашқы кілтті құрамына енсе . Егер алғашқы кілтке бірнеше алаң құюға кірсе , онда олар алғашқы кілтте қатысудағы жүйелілікпен анықталуы тиісті. Сонымен қатар, барлық алғашқы индекс құрамына кіруші алаңдар, басқа алаңдар алдында анықталу тиісті , яғни жоғары алаң тізімінде болу. 2. ЖҰМЫСТЫ ОРЫНДАУ РЕТІ A . Мастер – кестені конструкциялау Деректер қоры кестесін құру үшін Database Desktop (DBD) )( Пуск| Программа | Borland Delphi 3| Database Desktop ) утилитін жіберу қажетті. Утилит жіберілуінен кейін жұмысшы псевдонимі утилитін орнатамыз. Бұл псевдоним үндеместен жұмыс істейін утилит. Егер жұмысшы псевдонимі орнатылмаса, онда DBD жэұмыс істеген сайын псевдонимді көрсетіп отыру керек, бұл уақытты көп алады. Жұмысшы псевдонимін орнату үшінбас менюдан File | Working Directory элементін таңдау керек және Aliases түсетін тізімінде псевдоним атын PRIMER-ді таңдау , одан кейін Ok батырмасын басу керек. Осыдан кейін ДҚ кесте структурасы анықтамасы терезесі пайда болады.(9.1-сурет) [pic] Сурет-9.1. Database Desktop утилиті: ДҚ кестесінің құрылымын анықтау терезесі Кесте құрылым конструкциялау. ДҚ кестесін құру үшін бас менюден File | New | Table элементін таңдау керек. Create Table терезесінде көрінген (Paradox7) құрылған кесте үлгісі өзгертусіз қалдырамыз және Ok батырмасын басамыз . Осыдан кейін белгілі ДҚ кесте құрылымы терезесі көрінеді ( сурет- 9.1). [pic] Сурет-9.2. Өріс алаңын таңдау " Материалдар " кестесіне кіруші алаңдарды анықтаймыз. Field Name бағанасына Material енгіземіз . Алаң типіні анықтау үшін, Type бағанасымен шертіңіздер және ашық жер (пробел) пернесін басыңыздар. Бұған жауап ретінде керек алаң типті таңдау үшін алаң типі тізімі шығады. ( сурет-9.2). СУБД Paradox мүмкін барлық типі 9.3-суретінде келтірілген. Material алаңы типін анықтау үшін, Alpha таңдаймыз және бағанға Size –ға 20мәнін көрсетеміз. Key бағанына жұлдызшаны сыйғызамыз осы алаң алғашқы кілтті құрамына енетінін білдіреді. Ол үшін мынаның клавиатурада кез келген символды басамыз. Кесте-мастері алғашқы кілтіпен индектеледі. Materialу кестесінің басқа бағаналарына анықтамалар енгіземіз (сурет-9.3). [pic] Сурет-9.3. Materialy кестесінің құрылымын анықтау Есеп шарттарына сәйкес берілген кестенің барлық алаңдары толтырылауы тиісті . Сондықтан әрбір алаңды мәндермен міндетті түрде толтыру талабын анықтаймыз.Бір алаңнан екінші алаңға өту үшін Required Field ауыстырып қосқыштары қосамы. Басқа алаңдар мағынасына шек салу үшін қызмет етеді : • Minimum value - алаңның ең аз мәнін анықтайды • Maximum value - алаңның барынша үлкен мәнін анықтайды • Default value – алаң мәнін үндемеумен анықтайды Picture – алаңның бейнелеуінің шаблонын анықтайды . Шаблон құру үшін Assist батырмасын басу Бір алаңда мәннің болмауы алаңның шектелген мәнінің қойылмағанын білдіреді. Кестелерді толтыру және есте сақтау. Кесте құрлымын конструкциялағаннан кейін Database Desktop-та таблицаны толтыруға болады. Кестені орыс алфавитінде толтыру мүмкін болмауы мүмкін онда латын алфавитін пайдалануға болатынын атап өтейік. Содан соң С:\PRIMER каталогында құрылған кесте ( Materialу ) аты анықтағаннан кейін Materialу файлы құрылады. [pic] Сурет-9.4. Кестені сақтау терезесі Құрылған кесте реструктурлануы. Егер ДҚ бар кестелерге өзгерістер енгізу керек болса, File|Open|Table меню элементін таңдау керек, пайда болған диалогты терезеден кесте атын таңдап Ок батырмасын басу керек. Кесте мазмұны көрсетіледі. (9.5-суретте Materialу кестесінде жазуларды жоқ болады , өйткені біз оған мәліметтерді енгізген жоқпыз ). [pic] Сурет -9.5 Materialy кестесінің мазмұны – жазбасы әлі көрінбейді Біз DBD-дан(бірнеше жазбаға өзгеріс енгізіп немесе өшіргіміз келсе) тура кестені жаңа жазбамен толтырғымыз келсе F9 батырмасын басуымыз керек. Кесте құрлымын өзгерткіміз келсе Table| Restructure меню элементін таңдаймыз. Ізінше кесте құрлымын анықтайтын диалогты терезе көрсетіледі. Б.Кесте деталін конструкциялау Кесте деталі болып табылатын екінші кесте құрылымын анықтаймыз " материалдардың түсуі " (сурет-.9.6) . Бұл кесте құрлымын констукциялау әдісі кесте мастерімен ұқсас. Келесі айырмашылықтар бар. [pic] Сурет-9.6 Prihod кестесінің құрылымы Бәріне алаңдарға N_ Prih алаңынан басқасына Required атрибутін тағайындаймыз, өйткені бұл алаң автоинкрементті болғандықтан оны мәнмен толтырғанда жаңа жазбаны автоматты түрде есте сақтайды. “ Кіріс датасы ”,“ Материал ” алаңдарына индекс құрамыз. Ол үшін біз қиылысатын Table Properties тізімінен Secondary Indexes) элементін таңдаймыз . Осыдан кейін диалогты терезе 9.7- суретте көрсетілгендей көрініс береді. [pic] Сурет 9.7.Терезенің оң жағына Secondary Indexes элементі пайда болды Жаңа индексті анықтау үшін , Define батырмасын басамыз. Көрінген диалогтық терезеде Fields алаңында біз анықтаған кестенің тізім мазмұны көрсетіледі. Index Fields алаңы құрылған индекске кірушілерді сақтау үшін тағайындалған. Fields тізімінен Index Fields тізіміне нақтылы алаңды көшіріп алу үшін оң бағдарша бейнелеуі бар батырманы басу керек. Алаңға тізімді жүйелілі қосу маңызды, өйткені ол тізімде алаңның алмасу ретін анықтайды. Index Fields тізіміне керек алаңдарды сыйғызған соң ( сурет .9.8), Ok батырмасын басамыз . [pic] Сурет -9.8. Индекс құрамына кіретін өрістерді анықтау Көрінген терезеде индекс аты сұралады ( сурет.9.9) Аты енгіп Ok батырмасын басу керек . [pic] Сурет 9.9. Индексті сақтау терезесі Индекс атын алаң атымен қою ұсынылмайды. Өйткені келесіде көрініп тұрғандай жаңа индексті қосқаннан кейін оның аты индекстер тізімінде пайда болады. 9.10- суретте көрсетілген, жаңа индексті қосқанан кейін оның аты индекстар тізіміне пайда болады. [pic] Сурет 9.10. Prihod кестесі үшін анықталған индекстер тізімі Индекс аты бойынша шертіп , біз оны өшіре аламыз (Erase батырмасы) немесе өзгерту (Modify батырмасы ). Құрылған кестені Prihod атымен сақтаймыз. В. Деректер қорын конструкциялау Мәліметтер базасының конструкциялау Енді ДҚ кестеден тұтас конструкциялаймыз. Олардың құрлымы конструкциясын кестелерден тұрады.Есептің қойлымынан белгілі болғандай " Материалдар " және " Материалдардың кірісі " кестесі “бірдің-көпке” деген қатынасында, олай дейтініміз Materialy кестесіндегі бір жазбаға Prihod кестесіндегі сол материалға бірнеше жазба сәйкес келеді. Байланыс алаңы болып 2 кестеде бар Materialy алаңы болып табылады.кете мәліметтің бүтінділігін ашықтайық . Paradox –те сілтемелік бүтінділік біріншіден кесте арасындағы байланысты 2-ден каскадты жерді анықтайды. Prihod кестесін ( элемент File менюі | Table | Open )ащып және кестені өзгерту құрлымы режіміне ( Table | Restructure ) кіреді. Table Properties түсетін тізімінде Refrential Integrity элементін таңдаймыз және Define бүркеншектегі шегесін басамыз . көрінген диалогтық терезеде ( сурет -9.11) Fields тізімінде Prihod кестелері далаларды көрсетілген , ал Tables тізімінде – primer базасының кестелері көрсетілген . [pic] Сурет 9.11. Сілтемелік бүтіндікті құруға арналған терезе Tables тізімінде Materialy кестесін таңдаймыз және сол жақ бағдаршаны басамыз . Parents Key алаңына ( аталық кесте кілті ) Materialy кестсінің бірінші кілті көрсетілген . Update rules айырып қосқыштар Materialy кестесінде жазбаларды жою немесе Materialy кестесінде алаң байланыс мәнінің өзгеруін Prihod кестесінің каскады әсерін анықтайды: • Cascade – Prihod кестесінд бағынышты жазуларды жою немесе каскадты өзгеріс; Prohibit - Materialy кестесінде жазбаны жою немесе байланыс алаңына өзгерісті шектеу. Cascade таңдап ( сурет -9.12) Ok кнопкасын басамыз. [pic] Сурет -9.12.Сілтемелік бүтіндік шартын анықтау Paradox –те атау сұралып –сілтегішті бүтіндік аталынады. Атыны енгіземіз мысалы Materialy мысалы _ Prihod _ Integrity және Ok кнопкасын басамыз .енді құрылған сілтегішті бүтіндік аты тізімге орналасады. Prihod ( Save кнопкаыс )кестесіндегі өзгерістерді есте сақтап, Prihod ( Table | Restructure ) кестесінің реструкизациясы режіміне қайта кіреміз. Table properties тізімінде Secondary Indexes элементін таңдаймыз индекстер тізімінде Material атмен пайда болған жаңа индексті көреміз .Бұл индекс сілтегіш бүтіндік құрылған кезде автоматты түрде тұрғызылған ( сурет- .9.13). [pic] Сурет-9.13. Сілтілік бүтіндікті құрғанан кейінгі Prihod кестесіндегі индекстер тізімі Осымен БД процесін құруы аяқталады, реструктуризации режімімен жылжыуымызға болыды. Осыдан кейін құрылған кестелермен жұмыс үшін қарапайым қосымшаларды өңдеуге көшеміз. Дәріс №10 Тақырыбы: Delphi-де ДҚБЖ-н құру. 1. ДҚБЖ құрамын анықтау 2. ДҚБЖ компоненттерін құру жобасы және жоспары 3. TDataModule контейнерін құру Сабақтың мақсаты: Экрандық форманы құру, ДҚ-ға рұқсатты орнату және мәліметтерді өңдеуді ұйымдастыру ДҚБЖ құрамын анықтау ДҚБЖ ДҚ-ға енгізілетін және ДҚ-дан шығарылатын мәліметтерді өңдеу процедураларынан және экрандық және есептік формалар жиынтыңынан тқрады. Windows ортасында ДБЖ бағдарламалау кезінде ДҚБЖ-ны қосымша деп атайды. Экрандық формалар тізімін анықтау үшін қолданушы жұмысының тәртібін анықтаймы, яғни біздің жүйеміздің қолданушысының тәртібін береміз. Қолданушы жқмысының тәртібін келесі тәсңм арқылы берейік. Қолданушы жұмысының тәсімі. Қолданушы интерфейсі бас меню арқылы жүзеге асырылады. Сондықтан жүйеде бас меню болу қажет. Қорға ақпаратты енгізу үшін бөлек экрандық форма қажет. Қорды бөлек экрандық формада қарастыру керек. Сонымен қатар қолданушы қорда баспа түріндегі мәліметті алу керек, әр түрлі мәліметтер әртүрлі формада болу қажет. Осы барлық шығыс мәліметтер есептік немесе есептеу формалары деп аталады. Сондықтан қолданушыға есептік формаларды алу қажет. Осылайша есептерді алу үшін қолданушынығ толық жұмысына қажет есеп формаларын қарастыру қажет. Қарастырылған формалар негізінде қолданушы жұмысының тәртібі келесі түрде іске асырылады. Жүйені іске қосқан кезде экранда жүйенің бас менюі көрінуі керек. Менюда жүйе орындай алатын команда іс-әрекеттер тізімі берілген. Егер қолданушы түскен материалдар туралы мәліметтерді енгізуді жоспарласа, ол менюден ақпарат енгізу үшін форма шақырады. Қорды алдын-ала қарау үшін ол менюден қорды қарау формасын шығарады. Қолданушы үшін есепте мәліметтерді шығару үшін әртірлі нұсқаулар қарастыруға болады. Қолданушы бас менюден қорды алдын-ала қару формасын шақыра алады және одан мәліметтер мен есеп формасын таңдай алады. Генерацияланған есеп нұсқауы баспа құралына беріледі. Иілгіштікке жету үшін ақпаратты енгізу режимінде және қорды алдын-ала қарау режимінде есепті қалыптастыру нұсқауын қарастыру қажет. Осылайша жоғарыда көрсетілген “қолданушы –жүйе” жұмысының тәсімі нде жүйе жұмыс істеу үшін келесі формалар қажет екені көрініп тұр: • Меню үшін форма; • Қорға мәліметтер енгізу үшін форма; • ДҚ-ны алдын-ала қарау үшін форма; • №1-есеп үшін форма • №2-есеп үшін форма • №3-есеп ұшін форма Жоғарыда ДБЖ-ның сыртқы формасының көрсетілуі берілді. ДБЖ-ның жұмыс мүмкіншілігін қамтамасыз ету үшін ДҚ формасымен байланысты қамтамасыздандыру керек: экрандық формада ДҚ мәліметтерін өңдеу. Ол келесі пунктерде жасалады. ДҚБЖ компоненттерін құру жобасы және жоспары Сыртқы көрініс формасына басқа ДҚБЖ-да ДҚ-ға қатынау қамтамасының құралдары және өңдеу процедуралары болу керек. ДҚБЖ-ны құрайтын барлық компоненттер жиынтығы құрулы және сақтаулы болу керек. ДҚБЖ-ны жобалаудың негізі форма болып табылады. Форма барлық қалған компонентердің негізі және тасымалдаушысы болып мәліметтерді өңдеу процестері үшін фундамент қызметін атқарады. Бұл тәсілдің теориялық негізі объектіге бағытталған технология жобасы және бағдарламалау болып табылады. Алайда объектіге бағытталған технология жобасы және бағдарламалаудың теориялық сұрақтарына арнайы тоқталмаймыз. Енді ДҚБЖ жобасын құрайық, яғни ДҚБЖ компоненттерінің арасындағы байланысты, құрамын және тағайындалуын бекітеміз. Ол үшін қолданушы жұмысының жоғарыда көрсетілген тәсімінен шығамыз. Қолданушы жұмысы ұшін үш есеп формасы қажет. Сондықтан әрбір экрандық және септік форма үшін бөлек форма берілу керек. Delphi-де ДҚ және ДҚБЖ формалады арасындағы ақпараттық байланыс анықталған визуалды емес компоненттер арқылы іске асырылады. Сондықтан ДҚ- мен экрандық форма арасындағы байланысты қамтамасыз ету үшін жобада арнайы визуалды емес компонент (контейнер) TdataModule қолданылады, ол бөлек құрылу керек. Осылайша эвристикалық алдын-ала сілтемелеуден шыға біздің форма үшін қажет тізімді берейік: • Меню үшін форма; • Қорға мәліметтер енгізу үшін форма; • ДҚ-ны алдын-ала қарау үшін форма; • №1-есеп үшін форма • №2-есеп үшін форма • №3 есеп үшін форма • TDataModule компоненті Жобалаушы үшін ең ыңғайлы форманың және олардың компоненттерін қарастыру тәртібі келесі болып табылады. 1) TDataModule компоненті 2) Меню үшін форма; 3) Қорға мәліметтер енгізу үшін форма; 4) ДҚ-ны алдын-ала қарау үшін форма; 5) №1-есеп үшін форма 6) №2-есеп үшін форма 7) №3 есеп үшін форма ДҚБЖ құру үшін формалардың екі әдіспен беру керек: 1. Егер алдын-ала олардың саны белгілі болса, монитор экранында және сәйкесінше IDE Delphi жобасның қоймасында (repository) алдын-ала визуолды және визуалды емес формалардың қажет санын шығаруға болады. File/New form командасы көмегімен визуалды формалар қосылады, ал File/New data module командасымен визуалды емес форма қосылады. Біздің жүйе алты визуалды форма және бір TDataModule компонентін талап етеді. 2. Егер жоба үшін қажет формалар саны белгісіз болса, онда монитор экранында және сәйкесінше IDE Delphi жобасның қоймасына (repository) ДҚБЖ құрудың ағымды деігейінде жоба үшін тек қажетті форма қосылады. Экранда формаларды қою келесі команда арқылы іске асырылады. Басқа сөзбен айтқанда әрбір форма қажеттілік молшері бойынша қосылады. Бұл жағдайда жоба қоймасына жаңа форманы қосу (File/ Add to project) командасын қосу арқылы іске асырылады. Осылайша жобадан шығатын болсақ, мәліметтерді өңдеу процедурасы, экрандық және есептік формалардан жоғарыда қойылған есепті автоматтандыру үшін ДҚБЖ құру бойынша жұмыс жоспарын ұсынайық. Алдымен ДҚБЖ-ның барлық формаларын құру үшін қажетті формаларды экранға шығару керек болсын деп есептейік. Егер форма жетіспесе оларды қажетті санға дейін жеткізейік. Бұл (File/New form) іс-әрекетін форма саны қанша талап етсе сонша рет қайталау және бір контейнерді File/New data module командасын қайталау жолымен жасалады. Енді форманың жобалау тізбегін анықтайық. Жалпы жағдайда формаларды құру тізбегі ретсіз, бірақ сонда-да біз жоғарыда сипатталған тізбекті тағдаймыз. Формаларды хаттау және құру тізбегі ДҚБЖ құру процесін жеіәлдетеді. ДҚБЖ құруды ДҚ-мен байланыс үшін TDataModule контейнерін құрудан бастаймыз. ДҚБЖ формасын жобалаудың экрандық формадан бастаймыз, онда ДҚ құрамы көрсетіледі. ДҚБЖ жобалауы ДҚ-дан алынатын немесе экрандық формаға енгізілетін мәліметтерді өңдеу процедураларын құру және Дқ-мен байланыс жасаудың бөлек жолы бойынша әрі форма бойынша әске асырылады. Сонымен қатар әртүрлі форма компоненттенрі арсында байланыс жасау керек. Бір экрандық формада жүйе жұмысын аяқтау командасын қарастыру қажет. Компоненттер жиыны және олардығ формада орналасуын анықтағаннан кейін олардың ДҚ-ға қатынауы жасалады және форманың әр компоненті үшін мәліметтерді өңдеу процедурасы құрылады. Жоғарыда көрсетілген анықтамадан көреміз: ДҚБЖ ДҚ сияқты көптеген компоненттерден тұрады. ДҚБЖ-нығ барлық компоненттері қалыптастыруды және бағдарламалуды талап етеді. Сондықтан оларды ДҚ сияқты анықталған орында сақтау керек. Бұл мақсат үшін C:\Primer каталогында АРР қосалқы каталогын құру қажет. Онда біз өңделген қосымшааларды сақтаймыз. Жалпы жағдайда қосымшаны кез-келген жерде сақтауға болады, алайда, ДҚ- мен бірге бір папкада бірақ бөлек қосалқы директорияда сақтау жобалаушы жұмысы үшін ыңғайлы. TDataModule контейнерін құру Экранды формамен ДҚ байланысы арнайы компаненттермен қамтамасыздандырылады, олар визуальды емес компанент деп аталады. Бұл элементтер конструкциялау режимінде ғана көрінеді, ал жүйенің жұмыс режимі экранында көрінбейді. Егер ДҚБЖ бір экрандық формадан тұрса, онда визуальды емес компаненттерді сақтау үшін контенер түріндегі арнайы қойма қажет емес. Бұл жағдайда визуальды емес компаненттерді сол жалғыз экрандық формаға орналастыруға болады. ДҚ қатынай алатын экрандық форманың көптігінен қатынауды келесі түрде ұйымдастыруымызға болады. Барлық экрандық және есепберу формаларынан ДҚ қатынау (байланыс) қажет. ДҚБЖ-ның бірнеше экрандық формалары бар және олардың ДҚ-ға қатынауын екі тәсілмен жүргізуімізге болады. 1.Әр форманың (және оның компоненттерінде) ДҚ-ға қатынауын қалған формаларға тәуелсіз автономды іске асырамыз. 2.Екінші тәсіл әр форма үшін ДҚ-ға қатынауды ұйымдастыруды қайталамауды ұсынады. Барлық экрандық және есепберу формалары үшін арнайы TDataModule компонент арқылы бірдей қатынауды ұйымдастыру. TDataModule типті компанент ішіне визуальды компоненттері TTable, TQuery, DataSource, бар контейнер ұсынады.Онда ДҚ-ға қатынау керек формалар қатынауды TdataModule компоненті арқылы алады. Сондықтан ДҚБЖ құруда әр экрандық TdataModule типті компанентімен байланыс орнату қажет. Сонымен ДҚБЖ жұмысы үшін TDataModule типті компанент құру қажет. Delphi ортасында TdataModule данасын құру File|New Data Module меню пункті арқылы іске асады. TDataModule компонент мәліметтер базасымен жұмыс жасау компоненті контейнер қызметін атқарады. Delphi компонент палитрасына Data Access парағында тышқанмен ТТаblе визуальды емес компонент таңдаймыз (сурет. 20), тышқанды шертіп және содан контейнерде тышқанды шертеміз. Осыдан кейін компаненттің бейнеленуі контейнерде қалады. [pic] Сурет-10.1. Delphi компоненттері палитрасы TTable компоненті (басқада компоненттер сияқты, мысалы, TQuery, TDataSource) мәліметтерге қатынау және сақтау үшін қолданады, сондықтан визуальды емес компанент деп аталады, ал визуализациялау мақсатына визуалды компаненттер қолданылады. (TDBGrid, TEdit және т.б). TTable компонентін орналастырғанан кейін енді оның қасиетін орнатайық. Ол үшін форманың сол жағында болатын объекті инспекторын пайдананамыз (Object Inspector). Егер ол көрінбесе F11 батырмасын басып шақыруымызға болады, Объектов инспекторы тышқан көмегімен бөлінген компоненттердің қасиетін орнатуға мүмкіндік береді. TTable компонентін тышқанмен бөлейік. DatabaseName (ДҚ псевдонимі) қасиетінің мәнін PRIMER-ге тізім көмегімен немесе оны қолмен енгізіп орнатамыз TableName (ДҚ кестесінің аты) қасиетінің мәнін түскен тізім көмегімен Materialy.DB-ға орнатамыз. Осылардан кейін True-ға Active қасиеті мәнін орнатамыз. Осыдан кейін в TTable компонентінің (үнсіздік бойынша аты Table1) Materialy.DB шынайы кестемен шынайы байланысы болады. TTable және TQuery (кейінірек қарастырамыз) компоненттері мәліметтер жиынын сақтау үшін қызмет етеді. Мәлңметтер жиыны түсінігі ДҚ кестелер түсінігінен кейінірек, олар келесідей мәліметтер жиынын құрай алады: • ДҚ кестесі алаңының немесе жазбалардың ішкі көптігі (TTable, TQuery компоненттері); • ДҚ бірнеше кестелерінен форматталған жазбаларынан (TQuery компоненті). DataModule контейнеріне TdataSource қасиетін орнатайық.Ол біз №3 формаға кейінірек қосатын визуалды және визуалды емес (осы жағдайды Table1) компоненттер арасын байланыстыратын звено қызметін атқарады. Сондықтан TDataSource қасиетін жиі мәліметтер көзі (қоры) деп атайды. TDataSource компанентінің DataSet (мәліметтер жиыны аты) қасиетін түскен тізімді таңдау фолымен орнатайық TdataModule-не қандайда болмасын атпен сақтау керек(үнсіздік бойынша Unit5.pas). TdataModule сипатталған модулінің аты unit, осы TdataModule- де орналасқан TdataSource және ДҚ қолданылатын қосымшанаң барлық түріне unit модуль текстіне қосылады. Бұл Delphiсының басты менюі File|Use Unit меню элементіне жазылады. Әрі қарай мәліметтер жиынының мәліметінмен жұмыс істейтін визуальды компаненттер өзінің DataSource қасиетінде TdataSource және TdataModule компанентіне сай келетін аттар құру керек. Аты қосымша болады: алдымен TDataModule компанентінің аты содан нүктеден кейін- TDataSource компонентінің аты, мысалы DataModule5.DataSource1. MБ –на қортынды орнату және мәліметтерді өңдеуді ұйымдыстыру экранды форма құру(қарапайым вариант) А. ДҚБЖ менюі үшін Экранды форма құру . форм 1 диалог терезесінен таңдап ОК батырмасын басып №1 формаға (View|Forms меню элементі), өтейік Standard филтра компанент беттерінен MainMenu компаненті формасына орналастрайық ,содан кейін менюді өңдеу амалдарын шақырамыз.(2 амалмен жасауға болады.): • №1 форма ішінде MainMenu команентіне • 2 рет басу арқылы формада бөлінген компанент • Object Inspector терезесіне өтейік Items қасиетін шертіп [pic] бастрмасын басайық. Form1.MainMenu1 меню конструтурында болып “Файл/Ввод/Просмотр/Отчет/Выход ” меню пункіттеріне береміз. Келесі деңгейге өту үшін. Басамз. Меню пункттерін жеке топтарға визуальді бөлу есеп беруден кейін(-), плюс символдарын бірнеше рет қолданамыз“Ввод” меню пункітіне “Название материала/Поступление материала” ішкі менюін құрамыз. Ол үшін оны бөліп тышқанның оң жақ батырмасын шертеміз. Пайда болған терезе Create Submenu пункітін таңдаймыз. Енді меню құрылған кезде менюдің әр пункттеріне кодпен байланыстрамыз,ол пайдаланушы берілген пункітті таңдалған кезде орындалады.осы OnClick оқиғасының конструктор менюінде болып өңдеуші процедура құру үшін меню пунктінде тышқанды екі рет шерту керек . пайда болған OnClick оқиғасының өңдеуші процедурасы редактор терезесінде осы меню пункітін таңдалған кезде орындалатын кодты жазамыз. Мұндай нәтижені Object Inspector терезесі Events парағында бар өңдеуші процедура атын тышқанмен екірет шерту арқылы алуымызға болады. Мысалы: просмотр пунктіне келесі кодты енгіземіз. Form1.Visible := False; Form3.Visible := True; Материаланың түсу элементінің менюі: Form1.Visible := False; Form2.Visible := True; Шығу элемент менюі: Сlose; File|Save Project As элемент менюін таңдау жобасын сақтаймыз, алдымен жоба формасының аты сұралады(бізде 5 форма аттары Form1 … Form4 DataModule5) 'Unit*.pas' атымен мормалаларды сақтаймыз.содан жоба аты сұралады.,жобаны 'appl.dpr' атымен сақтаймыз. №1. формы unit модул текстіне Unit2және Unit3модуль аттарын қосамыз. Осыдан кейін қосымшаны орындаймыз. (Delphi ортасынан шықпай қосымшаны орындау үшін F9 батырмасын басу қажетті),ал қосымша құрып оны Delphi-ден басқа ортаға жіберу үшін Ctrl+F9 батырмалар комбенациясын басып және .ехе кеңейтілуі және атымен құрылған файлды жібереміз. Біздің жағдайда 'appl.exe' файлын жіберу керек. Жұмыс жасап тұрған қосымшаны Run|Program Reset –пен тоқтатуға болады. Дәріс №11 Тақырыбы: Деректер қоры құрамын көрсету үшін экрандық форма құру 1. Экранды формада ДҚ-ның бір кестенің мазмұнын ұсыну 2. ДҚ-ң екі кестелерінің мазмұнын ұсыну . Сабақтың мақсаты: мәліметтерді және олардың қасиеттерін бейнелеуге арналған компоненттерді үйрену, кестелер арасындағы байланысты орнату. Екі кесте бір-бірімен кілт арқылы байланысады. Байланысқан кестелердің біреуі негізгі, екіншісі қосымша кесте болады. Деректер қорымен жұмыс істеуге арналған компоненттер DataAccess (деректерге кіру) және DataControls (деректерді басқару) беттеріндегі компоненттер кітапханасында орналасқан. Деректер қорында қолданатын әрбір қосымша келесі үш түрдегі компоненттердің біреуін қамтиды: • Деректер қорымен тікелей байланысатын деректер жиыны (dataset) компоненттері. Бұл Table, Query компоненттері; • Бірінші түрдегі,визуалды және деректерді басқару компоненттері арасындағы ақпарат алмасу деректер көзі (Datasource) компоненттері арқылы болады. Бұл компонент Data Source болып табылады; • DBGrid, DBText және DBEdit сияқты, деректерді басқару және визуалды компоненттер. 1) Экранды формада ДҚ-ның бір кестенің мазмұнын ұсыну Алдымен ДҚ бір кестесіне қатынай алатын қарапайым экрандық форма құрайық . №3 формасына View/ Forms менюінің элементін таңдау арқылы өтеміз, сұқбаттық терезеден Form3 таңдап Ok батырмасын басамыз. Компонент палитраларын ТDВGrid компонентін формаға орналастырамыз (Data Controls беттерінен). Data Source қасиетінің ТDВGrid компонентін №3 форманың unit модуль текстінің unit 5 модулінде сипатталған Data Module Data Source1 мәніне орналастырамыз( бұл үнсіздік бойынша Delphi-ге Data Source өзіміз ат берген қосылған) ТDВGrid компоненті кестелі формада мәліметтер жиынын бейнелеу үшін қызмет етеді. Формаға батырма ТButton (компонент палитра Standаrd беті) компонентін қосып, Cancel Button объекті испекторларын пайдаланып компонентке ат береміз (Name қасиеті). Батырма тақырыбын (Caption қасиеті) Отменаға (болдырмауға) өзгертеміз . 11.1.- суретте өңделетін форма түрі көрсетілген . [pic] Сурет 11.1. Өңдеу этапындағы форма түрі Пайдаланушы батырманы басқанда орындалатын кодты батырмамен байланыстырайық. Формада қалып OnClick оқиғасын өңдеу процедура кодына төмендегідей кодты жазамыз. Close : Forml.Visible:=True; Run менюінен (немесе F9) Run компонентін таңдап Delphi-ге қосымшаны орындатуға жібереміз. Қосымша Файл/Ввод менюінен Просмотр (Қарап шығу) командасын таңдаймыз . 11.2. - суретте жұмыс істейтін қосымша түрі көрсетілген . [pic] Сурет 11.2. Орындау кезіндегі №3 форма түрі Мәліметтер жинағына жазбаларды (Materialy.DB кестесінде) DBGrid компонненті арқылы қосуға болады . Жазбалар қосу үшін Insert батырмасын басуымыз керек, немесе мәліметтер жиынының соңғы жазбасында болып “ төмен қарай бағыт” батырмасы арқылы мәліметтер жиыны жаңа жазба режиміне автоматты түрде көшеді. Мәліметті енгізгеннен кейін мәліметтер жиынында жазба алаңын батырма көмегімен басқа жазбаға өту арқылы есте сақтауға болады. Esc батырмасын бассақ жазба сақталынбайды. Жазбаларды өзгерту үшін керекті орынға ағымдағы жазбаға нұсқағышты орналастырамыз және керек жерде мәндерді өзгертеміз . Мәліметтер жиыны автоматты түрде түзету режиміне көшеді. Жазбаларды өшіру үшін оған ағымдағы жазба нұсқағышын орналастырып Ctri+Del батырма перне комбинациясын басамыз . 2) ДҚ-ң екі кестелерінің мазмұнын ұсыну . Енді жұмысты күрделендірейік ДҚ-ң екі кестесінің мазмұнын екі вариантта ұсынайық: а) Экранды формада кестелер арасындағы байланысты орналастырмай; б) Кесте мәліметтерін кесте арасындағы байланысын есепке ала отырып бейнелейік. Бір формада екі мәліметтер жиынын байланыстыруды көрсетейік. Экранды формада ДҚ кесте мәліметтерін арасындағы байланысты орнатпай бейнелеу ата-аналық, Деректер жиыенында ағынды жазбаға сәйкес бағынышты мәліметтер жиыны көрінетіндей. Data Module 5 контейнеріне PRIMER мәліметтер базасының Prihod кестесімен жұмыс істеу үшін Table компонентін қосайық (Table2 атымен). Data Source компонентін формаға қосамыз (Data Source2). Осы компоненттің Dataset қасиетін Table2 мәніне орнатамыз. TBDGrid компонентін №3 формаға орналастырамыз және Data Source2 мәніне Data Source қасиетін орнатамыз.(11.3.- сурет) Тable2 Aсtive қасиетін True-ға орнатамыз. Осыдан кейін Prihod.DB шынайы сәйкес кестелерінің TTable компоненттерімен нақты байланысы басталады. [pic] Сурет-.11.3. Өңдеу кезіндегі негізгі және бағынышты мәліметтер жиыны бар форма Материал (Materialy DB кестесі) жайындағы мәліметтерді қарауда өзгертпеу үшін True жағдайында DB Grid1 компонентінде ReadOnly қасиетін орнатамыз . Қосымшаны орындауға жібереміз. ТDBGrid 2 компонентінің Prihod DB кестесіне бірнеше жазбалар қосайық .N_Prihоd алаңының мәні автоматты форматтанатынына назар аударайық (11.4- сурет). [pic] Сурет- 11.4. Бағынышты мәліметтер жиынында негізгі МЖ-ның ағымды жазбасына байланысты жазба көрсетіледі 2.2)Экранды формада ДҚ кестесінің мәліметтерін бейнелеу, оларды арасындағы байланысты есепке алып, мәліметтер жиынын арасындағы Master –Detaie байланысын жүзеге асыру арқылы . Prihod, DB және Materialy, DB мәліметтер базасының кестелері “бір- көпке ” деген байланыста екені белгілі. Біз бұл кестелер арасындағы сілтемелі бүтіндікті анықтап алдық, Table1 мәліметтер жиынында жазбаға нұсқағышты (Materialy DB) орнатуда Тable2 (Prihod DB) мәліметтер жиынында Table1 ағымдағы материалдық кіріс туралы жазбасы көрсетілетіндей етуімізге болады. Бұл Master–Detail мәліметтері жинағының байланыс механизмі арқылы жүзеге асады . Тable2 компоненті үшін инспектор объектілеріне Data Source Master Source қасиет мәндерін орнатайық. Master Fields қасиет батырмасын басамыз. Пайда болған Field Link терезесіне байланыс параметрін орнатайық. Available Indeхes алаңында ағымдағы индекс ретінде “Material” алынуын таңдайық. Detail Fields тізімінде Material алаңын таңдап Add батырмасын басамыз. Joined Fields алаңында “Material→ Material” өрнегі форматталады. (11.5- сурет) OK батырмасын басамыз . [pic] Сурет-11.5. MasterFields қасиетінің мәнін орнату терезесі Тable2 компонентіде ағым индекс (FieldIndeхNames қасиеті) “Material” алаңында тұрғызылған индекске ауыстырылған. Енді Тable2 мәліметтер жиынында Table1 мәліметтер жиынының ағымды материалдар кірісі жайлы жазбалар 11.6-суретте көрсетілген. [pic] Сурет-11.6 Master-Detail байланысы –негізгі мәліметтер жиынында тек бағынышты жазбалар көрсетіледі Дәріс №12 Тақырыбы: ДҚ-ғы мәліметтерді енгізу үшін экрандық форма құру 1. Экрандық формаға ДҚ мәліметтерін басқару батырмасын қосу. Экрандық формадағы TDBGrid модификация варианттары Сабақтың мақсаты: ДҚ басқаруға арналған компаненттерді үйрену Деректер жиыны келесі негізгі жағдайлардың біреуінде болуы мүмкін: • dsEdit – ағымдағы жазбана түзетуге болады; • dsInsert – жаңа жазба қойылады. Тағы басқа жағдйлар болуы мүмкін. Жоғарыда көрсетілген жағдайлар қосымшаның орындалу барысында болады, бірақ тікелей емес, ал келесі әдістердің қолдану арқылы: • Edit әдісі деректер жиыны dsEdit жағдайына аударады; • Insert әдісі деректер жиынына жаңа жазба қояды. Ағымдағы жазбаларды түзетук жүріп жатқан кезде өзгеріс деректер қорының өзінде емес, ал буферде жүзеге асады. Жазбаны деректер қорына жіберу тек Post әдісі орындалған кезде жүргізіледі. Әдіс деректер жиыны dsEdit және dsInsert жағдайында тұрған кезде ғана шақырылуы мүмкін. ДҚ-ғы мәліметтерді енгізу үшін экрандық форма құру Әрі қарай жұмыс үшін DataModule5 контейнерін дайындаймыз. Data Access парағының Delphi компоненттер палитрасынан TTаblе визуальдық емес компонентін қосып, қасиеттерінің мәніне DatabaseName-ді орнатамыз, Tаblе3 қасиетінің мәнін TableName (ДҚ кесте аты) орнатамыз PRIHOD.DB-да. Осыдан кейін Active қасиетіне True мағынасын орнатамыз . TDataSource компонентін орналастырып DataSet (мәліметтер жиынының аты) қасиетін орнатамыз, ал DataSource компанентіне Table3 мәнін береміз. PRIHOD.DB кестесімен байланыстыру үшін визуальдық компанентті контейнерге қосу міндетті түрде контейнердегі DataModule ұқсас компоненттер және ол циклдік айналып жүруі мүмкін. №2 формасына Data Controls компоненттер палитрасынан TDBGrid компонентін қосамыз. TDBGrid компонентіне қасиет орнатамыз, ал DataSource3 мәнін жорамалдап №2 формасындағы unit текст модульдеріне Unit5 модулі атын қосамыз. Енді Table3 мәліметтер жиынының жазба алаңына тек қана DBGrid компоненті торымен емес, мәліметтер жиынының жеке жазба алаңына қатынауға мүмкіндік беретін, жеке визуальдық компанентермен қатынауға болады. №2 формаға TDBEdit (Data Controls компоненттерінің палитрасы) екі компонентін қосамыз. DBEdit компоненті арқылы қатынауға болатын алаңды анықтаймыз. Ол үшін DataSource 3-ке, DatPrih және DataField-тердің қасиетіне DataSource мәнін орнатамыз. DBEdit2 компоненті арқылы қатынауға болатын алаңды анықтаймыз. Ол үшін DataSource 3 және Kolvo DataField қасиетінің мәніне DataSource орнатамыз. Material алаңына қатынау үшін бізге бұдан да күрделі компоненттер керек, ол Prihod.DB кестесіндегі Material алаңының мәндерін енгізуге мүмкіндік берер еді. Осы мақсатта DBLookupComboBox компонентін үнсіздікпен TDBLookupComboBox атымен орналастырамыз. Мына компоненттерге келесі қасиеттерді орналастырамыз: – DataSource - DataModule мәніне 5. DataSource 3; – DataFiled - Material; – List Source - DataModule мәніне 5. DataSource 1 – ListField - Material мәніне ; – KeyField - Material мәніне. Экрандық формаға ДҚ мәліметтерін басқару батырмасын қосу. Әрі қарай экрандық формаға ДҚ кестелерімен навигацияны жүргізуге және оны жағдайымен және жазбаларымен басқаруға мүмкіндік беретін батырмалар жиының құруға болады. Ол үшін қосымшаға TButton батырмасының бес компонентін қосамыз. (компоненттердің палитрасынан Standard парағы) Осы компоненттердің бұл атын (қасиет Namе ), инспектор объектілерін қолдана отырып сәйкес InsertButton , EditButton , DeleteButton , PostButton , CancelButton өзгертеміз. Осы компонентер тақырыбын инспектор объектілерін қолдана отырып сәйкесіне " Добавить ", " Изменить ", " Удалить ", " Запомнить ", " Закрыть" ( сурет -12.1) өзгертеміз. [pic] Сурет -12.1. Мәліметтер жиынының ағымды жазба алаңымен жұмыс істеуге арналған Тышқан көмегімен InsertButton батырмасын таңдаймыз және оған екі рет шертеміз. Осыдан кейін редактор кодына өтеміз және ІnsertButton батырмасына арналған OnClick InsertButton батырмасын басып оқиға өңдеушісін анықтаймыз: Procedure TForm 2. InsertButtonClick ( Sender : TObject ); Begin DataModule 5. Table 3. Insert ; End ; Insert-әдісі DsInsert жазбаны қосу жағдайға Table мәліметтер жиынын көшіреді. Алаң мәнін енгізу DBEdit 1, DBLookupComboBox енгізуі компонентерімен жүзеге асырылады. Ол үшін мәліметтер жиыны dsBrowse қарап шығу режимінде болуы қажет. EditButton батырмасын басқандағы өңдеушіні анықтаймыз: Procedure TForm 2. EditButtonClick ( Sender : TObject ); Begin DataModule 5. Table 3. Edit ; End ; Edit әдісі Table1-дегі мәліметтер жиынын dsEdit жазба қосу жағдайына көшіреді. Алаңдар мәнін редакторлау DBEdit-1 DBLookupComboBox 1, DBEdit 2 компаненттермен жүзеге асырылады. Ол үшін мәліметтер жиыны dsBrowse жазбаларды қарау режимінде тұру керек. DeleteButton :батырмасын басқандағы өңдеушіні анықтаймыз: Procedure TForm 2. DeleteButtonClick ( Sender : TObject ); Begin IF MessageDlg (' растаудың жазу қашықтауы ', mtConfirmation ,[ mbYes , mbNo ],0)= mrYes THEN DataModule 5. Table 3. Delete ; End ; Table мәліметтер жиыны dsBrowse жазбаларды қарау режимінде болса, диалогты терезе шақырылады (Message Dlg функция орындалуда) егер қолданушы Yes батырмасын басса, Table1 мәліметтер жиынындағы жазбаларды өшіруге болады. PostButton батырмасын басқандағы өңдеушіні анықтаймыз: Procedure TForm 2. PostButtonClick ( Sender : TObject ); Begin DataModule 5. Table 3. Post ; End ; Егер мәліметтер жиыны жаңа жазба қосу немесе редакторлау режимінде орналасса, ДҚ кестесіндегі ағымды жазба жағдайын еске сақтайтын Post мәліметтер жиыны әдісі орындалады. Мәліметтер жиынын есте сақтағаннан кейін dsBrowse қарау режимі жүргізіледі. CancelButton батырмасын басқандағы өңдеушіні анықтаймыз: Procedure TForm 2. CancelButtonClick ( Sender : TObject ); Begin Close ; Form 1. Visible := true ; End ; Егер мәліметтер жиыны жаңа жазба қосу немесе редакторлау режимінде орналасса, Cancel мәліметтер жиыны әдісі ДҚ кестесіндегі жазбаларды есте сақтауды алып тастайды және мәліметтер жиынын қарау режиміне ауыстырады және меню формасына өтеді. Мәліметтер жиынына мәліметтер қосу және өзгерту сонымен қатар DBGrid қасиетіне True мәнін орнатамыз. Жаңа жазба қосқан немесе бар алаңды түзету кезінде, DBEdit 1, DBEdit 2 компонентеріне DBLookupComboBox компонентіндегі мәндер тізімінен таңдау жолымен енгізуді қолданып мәндерді енгізуге болады. Жазбаларды өзгерту кезінде диалог терезесі беріледі.(12.2- сурет) [pic] Сурет-12.2. Жаңа жазба қосу Жазбаны өшірген кезде келесі диалогты терезе шығады (сурет- 12.3). [pic] Сурет -12.3. Жазбаны өшіруді растау терезесі ДҚ мазмұнын ұсыну үшін өте күрделі экрандық формалар Экрандық формадағы TDBGrid модификация варианттары N_Prih Prihod кестесіндегі уникальдықты қамтамасыз ету үшін N_Prih алаңының мәнін байқауға қажет және басқа ешбір күш түсірмейді. Cондықтан берілген алаңға ең жақсысы DBGrid2 бағаналарының құрамында көрсетпеу. ДҚ кестесі алаңынан қайсысын мәліметтер жиыны үшін қосымшадан қолданудан Delphi-де сілтеудің екі мүмкіндігі бар. Бірінші әдіс осы мәліметтер жиыны ассоцияланған. ДҚ кестесінен барлық алаңды үнсіздікпен қолдану, бұл әдіс әрқалай үнсіздікпен орындалады және Table1 және Table 2 мәліметтер жиынын құру кезінде анық емес қолданылады. Екінші әдіс ассоцияланған мәліметтер жиынымен ДҚ кестелерінің бағыныңқы жазба алаңын қолданудан тұрады. Осы мақсатта мәліметтер жиынының редактор алаңы қолданылады, ол мәліметтер жиынының өңделетін алаңын құру ДҚ кестелерінің бағыныңқы жазба алаңында немесе барлық алаңды қосуға мүмкіндік береді. DataModule 5 компонентінен тышқан көмегімен Таblе2 компанентін таңдаймыз. Экранда пайда болған қалқыйтын менюден Fields Editor элементін таңдаймыз. Редактор алаңында (сурет 30 ) пайда болған тізімнен тышқанның бірінші бастырмасын менюден Add Fields меню элементін таңдаймыз. ДҚ Prihod кестесінің барлық алаңдар тізімі көрсетіледі. N _ Prih (сурет 12.4.6) алаңынан басқа барлық алаңды белгілеген (мен Shift бастырмасы көмегімен), Add бастырмасын басамыз. Енді редактор алаңы тізіміне белгіленген алаңының бәрі қосылады.(сурет-12.4.6) [pic] [pic] [pic] а) б) в) Сурет-12.4. Редактор алаңымен жұмыс: а) редактора алаңының бос тізімі; б)алаң қосу; в) редактора алаңының толтырылған тізімі. №3 формасындағы DBGrid 2 бағандары құрамында, енді Table 2 мәліметтер жиыны үшін редактор алаңынан қосылған алаңдар ғана бар болатынын байқауға болады. Редактор алаңдарында мәліметтер жиынының алаңдар тізімін анықтау (Таblе2-нің тышқанның оң батырмасын басып тұрғанда) мынаған келеді, осындай жолмен қосылған Delphi –дегі қосымшаға қосылған алаңға Tfield автоматты түрде құрылады.(мәліметтер жиыны алаңында ) Бұндай әрбір компанент үнсіздік пен уникальдық атпен аталады. Бірінші құрылған алаң мәліметтер жиынының атын алады(2), екінші реттік құрылғандары—ДҚ кестесінің алаңның атын алады. [pic] Сурет-12.5. DBGrid2 алаңы құрамы редактор алаңы тізімімен анықталады. Material алаңына сәйкес TField компаненті Таblе2 Material сияқты аталады. Егер алаңдар редакторына сәйкес алаң атына шертсек, онда инспектор объектілерінде алаң қасиетін орналастыруға немесе өзгертуге болады. Сондақтан нақты алаң үшін оқиға өңдеушісін анықтауға болады. DBGrid2-ң параметрлерін оның бағаналардың атауы орысша болатындай етіп өзгертеміз ол үшін тышқанның оң жағын басып DBGrid2 компонентінде, қалқыитын менюден Columns Editor элементін таңдаймыз. Экранда редактор терезесі пайда болады,(сурет12.6.а). TDBGrid столы сипатын өзгерту үшін нақты анық емес бағаннан анық бағанға көшу керек . Ол үшін Add All Fields батырмасын басу керек, нәтижесінде Таblе2 компанентінің редактор алаңында анықталған әрқайсысы алаңға сәйкес келетін бағандар қосылады.(сурет 12.6.б) [pic] [pic] Сурет -12.6. а) DBGrid2 бағандардың бос тізімі; б) бағандардың толтырылған тізімі Әрбір бағанның тақырыбын өзгерту үшін тышқан көмегімен бағандар атын таңдау және объектілер инспектрлерінен Caption элементінің Title қасиетін ашу, бұл тізімде бағандар тақырыбы болады; сәйкес түрде тақырыпты өзгертеміз және содан кейін бағандар редакторынан DBGrid2 –ден шығамыз. Таblе1 мәліметтер жиыны үшін тағыда осыны қайталаймыз.(сурет-12.7) [pic] Сурет-12.7. DBGrid 1және 2 бағандар тақырыбын орнату №2 формадағы Таblе3 мәліметтер жиынының жазбаларын сорттау ретін өзгертеміз. Ол үшін объектілер инспектрлерінде Таblе3 копманентіндегі (DataModule5 те) IndexFieldNames қасиетіне “DatPrih Material” мәні қалқитын тізімнен таңдау жолымен өзгертеміз осыдан кейін қайтадан DBGrid редактор колонкасына кіріп, DatPrih бағанын тышқан көмегімен Material бағанын алдындағыдай қылып “перетацим” қосымшаны компилярлаймыз және орындауға жібереміз.12.8-сурет көрсетілген Table2 мәліметтер жиыны ДҚ PrihodДВ кестесімен ассоцияциялған, қосымшада кіріс датасымен сортталған, ал әрбір кіріс датасы ішінде материал атауымен. [pic] Сурет -12.8. Түсу датасы бойынша сортталған материалдар Электрондық формада саналатын алаңдар Егер форма №3 саналатын алаң құру қажет болса, онда былай істеледі: 1. Редактор алаңына жаңа алаң құру керек, оны Calculated сияқты белгілеу. Бұл үшін DataModule 5–ке өту керек, қажетті ағымды( тышқан көмегімен) НД () жасап; тышқанның оң жағын басып Field Editor менюін таңдап және қайтадан тышқанның оң жағын басып, New Field менюін таңдау, сонан кейін диалог терезесіне алаң атын көрсету қажет, оның типі және жолдақ алаң үшін ұзындығын ( сурет 12.9) [pic] Сурет-12.9. Жаңа алаң қасиетін анықтау терезесі Жаңа алаң үшін TField компоненті құрылды, қатынасты редактор алаңымен жүзеге асыруға болады. 2. Қолданылатын алаңға жататын НД (Table2) компоненті үшін, OnCalcFields оқиға өңдеушісі анықтау қажет . Мысалы, Table 2 НД арналған, қауымдастырылғанға ТБДпен “ Кіріс ” ті, есептеліп, Table 2 Vychisl алаңына “ ия ” мәнін енгіземіз , егер Table 2 Kolvo алаңында осы жазбаның 100-ден көп мәнінен тұрады, ал керісінше болса, Table 2 Vychisl алаңына бос мән береміз: Procedure TDataModule 5. Table 2 CalcFields ( DataSet : TDataSet ); Begin IF Table 2 Kolvo . Value >100 Then Table 2 Vychisl . AsString :=' ия ' А Table 2 Vychisl . AsString :=''; End ; Егер AutoCalcFields мәліметтер жиынының қасиетінде True анықталған болса, OnCalcFields оқиғасы берілген НД dsEdit және dsInsert режимінде саналатын алаң модификациясы кезінде бастайды, онымен реляциялы байланысқан (ТБД өзіне тұтастыққа шектеу орнатылған кезде ). Осы OnCalcFields оқиға процедура - өңдеушісі есептелетін алаң немесе алаңдар тобының мәнін есептеу алгоритімін жүзеге асыруынан құрылады. Осы өңдеушіде мән тек саналатын алаңға меншіктеу керек және алаңға меншіктеле алмайтын белгілі ДҚ құрлымында (қосымша 12.10 суретте көрсетілген). [pic] Сурет-12.10. Жіберілген қосымша түрі Ескерпе. Кейде саналатын алаңға мән меншіктеу қажет басқаша айтқанда кейде кейбір айнымалы формаларында есептелінетін алаң мәндерін жазу тиімді болады. Мысалы біз НД Tbl жазбаны қосайық Summa алаң мәнін кейбір алгоритімдер есептелініп Summa алаң мәнін есептеу үшін TekOstatok айнымалысы қолданылады. Біз TekOstatok мәнін Tbl алаңында есептелінетін әр жазбаға енгізуімізге болады. Бір қиындық кездеседі: мәліметтерді есептелетін алаңға енгізу OnCalcFields оқиға өңдеушіде және жергілікті айнымалы TekOstatok мәні таратылған уақытта жүргізіледі. Мына жағдайда Tbl жаба қосатын алгоритмді орындау процесінде қандайда бір динамикалық тізімде локальді айнымалы мәндерін есте сақтау керек, содан кейін OnCalcFields оқиға өңдеушідегі сәйкес келетін элементтерді алап тастау керек, осы элементтердің мәндерін Tbl ТО алаңына қосу керек. Дәріс №13 Тақырыбы: SQL тілінің мүмкіндігі және оларды ДҚ-да қолдану. 1. Экрандық форманың әртүрлі кестелерінің SQL-сұратуды пайдаланып мәліметтерді бейнелеу 2. Есеп беру формасын құру және олардың ДҚ-ға қатынауын орнату және мәліметтерді өңдеуді ұйымдастыру SQL тілі (Sructured Query language – құрылымдық сұраныстар тілі) деректер қорына күрделі сұраныстарды қалыптастыруға мүмкіндік береді. Сұраныс бұл нәтижесінде сұрақты қанағаттандыратын жазбалар жиынынан алынатын деректер қорына қойылған сұрақ. SQL синтаксисінің жалпы ережелері өте қарапайым. ЖҰМЫСТЫ ОРЫНДАУ РЕТІ Экрандық форманың әртүрлі кестелерінің SQL-сұратуды пайдаланып мәліметтерді бейнелеу Бірнеше кестелерден мәліметтерді бейнелеу үшін форма құрайық, ол үшін TdataModule5 контейнеріне TQuery компонентін жайғастырамыз (Data Access компонент палитра беті). Үнсіздік бойынша оның аты Query1. PRIMER- ге DatabaseName қасиетін орнатамыз. TDataSource (DataSource 4) компонентін орналастырамыз. Query1 мәніне DataSet қасиетін орнатамыз. №4 формаға TDBGrid компонентін орналастырамыз. Оның DataSource қасиетін DataSource4 мәніне орнатамыз. Объектілердің инспекторында Query1 компоненті үшін SQL-қасиетін тауып [pic] батырмасын басамыз. Содан пайда болған редактор терезесінде SQL –сұрату текстін тереміз. SELECT P.DatPrih, P.Material, P.Kolvo,Т.Zena, (P.Kolvo * T.Zena) As Stoim FROM Materialy T, Prihod P WHERE T.Material = P.Material ORDER BY P.DatPrih, P.Material Және Ok батырмасын басамыз . Осыдан кейін Query1. Active қасиетін True мәніне орнатамыз. Query 1 мәліметтер жиыны қоймаға түскен материалдар жайындағы мәліметтерден тұрады. Бұл жиынның жазба құрамына DatPrih (кіріс датасы), Material (материал аты), Kolvo (кіріс мөлшері), Zena ( берілген материалдар бағасы), Stoim (кіріс материал құны) алаңдары кіреді. SQL қасиетінің сұрату текстінен мәліметтер жиыны екі кестеден "жиналатыны" көрініп тұр: Materialy.DB және Prihod.DB кестелері. Material алаңының бірдей мәндері бар ДҚ кестелерінің жазбалары біріктіріледі №1формасының есеп беру пунктіне келесі код енгіземіз : Form 1. Visible := False ; Form 4. Visible := True ; Query 1 мәліметтер жиынына жаңа жазбаларды қосуға және мәліметтер жиынындағы жазбаларды өшіруге немесе өзгертуге болмайтынын ескеруіміз керек.ДҚ жалғыз "жиналатын" бұл мәліметтер жиындарының типін оқуға ғана болады. [pic] Сурет-13.1. Әртүрлі кестеден мәліметтерді бір мәліметтер жиынына біріктіру Есеп беру формасын құру және олардың ДҚ-ға қатынауын орнату және мәліметтерді өңдеуді ұйымдастыру Есеп беру формаларын құруды кез-келген форма деп алуға болады және берілген бөлімге экранды формамен қарауымызға болады. Бірақ есеп беруді форматтаудың өз ерекшеліктері бар. Сонымен қатар есеп беруді форматтау процесін ДҚБЖ сұрақтарынан жеке қарауымызға болады. Есеп беру формасын форматтауына үш түрлі компанент кіреді. Бұл есеп беру экрандық формасы текст және кестелер қағаздық тасығыш шығарған есеп беру формасы графикалық материалдар және материалдар түрінде. Сондықтан бұл сұрақтардың барлығын жеке бөлімге шығарып әртүрлі түрдегі есеп беруді форматтау сұрақтарын қарап шығамыз . Жүйе жұмысын тексеруі және жіберілу Өңделетін жүйені оқтын-оқтын орындауға жіберіп және оны жұмыс істеу қабілетін тексеру керек.Жұмыс істеу қабілетін құрудың кез-келген этапында жүргізуімізге болады оны толық құруды аяқтау міндетті емес тек минимальді конфигурациясын алсақ жеткілікті. Минимальді конфигурациясын ДҚ және ДҚ қатынайтын жалғыз форма құрады. Жүйені жіберу үшін құрылған барлық компаненттерді есте сақтау керек. Rиn | Rиn командасы арқылы жүйені жіберу жүзеге асады, ыстық перне F9 батырмасы көмегімен де жіберуге болады. Жүйе байланысын қалған жағдайда немесе жүйеден шығу мүмкін болмаса оқиғасында немесе жүйеден шығу Rиn | Program Reset командасы көмегімен жұмысты үзуді жүзеге асаруға болады. Жүйе жұмысын тоқтатқанана кейін оны өңдеуге және жөндеуге болады. Жүйенің толық вариант жұмысы, есепберу бөлімінсіз, экранда меню формасы бейнеленетімен басталады. Ары қарай жүйені пайдаланушы меню көмегімен кез-келген басқада экранды формаға өтуіне және жүйенің басты менюіне қайтып келе алады. Егер экрандық форма ережесін бейнелеу тіленілетін вариантқа сәйкес келмесе6 онда оны Project Prgect/Options меню элементі көмегімен Main Form алаңында өзгертуге болады. Дәріс №14 Тақырыбы: Delphi- де есеп беру формасын құру 1. Есеп беруді құрудың компоненттері 2. Есептік форманы құрудың негізгі әдістері Сабақтың мақсаты: Есептік форманы құрудың негізгі әдістері Жүйенің жұмыс нәтежесін принтерден шығару немесе файл түрінде сақтау қажет. Бұл мақсатта есеп беру формасы құрылады. Есеп беру формадағы және процедураның есеп беруін ұйымдастыруын құру экрандық формадағы процедураны құрудан өзгеше сондықтан ол туралы материалдарды жеке қарастырамыз. Экрандағы жуық бейнелеумен есеп беруді құрудың әртүрлі варианттары бар: - экранда кестені бейнелеу содан кейін есеп беру үшін жазбаны таңдау; - экранда таңдалған жолмен есеп беруді бейнелеу; - есеп беруді бейнелеу. Есеп беруді құрудың компоненттері Delphi 3 есеп беруді құру үшін QReport компонентінің палитра беттерінде жиырмадан астам компанент орналасады. "Басты " компонент болып есеп берудің тәртәбән толығымен анықтайтын TQuickRep,, компаненті есептеліненді. Басқа компаненттер есеп берудің қосыша бөлңктерңн анықтайды: TQRBand – мәліметтердің, тақырыптардың, титулдардың орналасуына дайындық, есеп беру негізінен TQRBand компанентінен құрылады: – есеп берудің таұырып ауданы; – есеп берудің беттер ауданы; – есеп берудің топтар ауданы; – есеп берудің бағандар атының ауданы; – дитализацияның ең соңғы деңгейінің бейнесңн құру үшін детальді құру ауданы; – подвалдың есептеу ауданы ; – подвалдың беттер ауданы ; – подвалдың топтар ауданы; TQRSubDetail - ТБД арасындағы қатынастар арқылы Master-Detail есеп берудегі бағынышты кестелердің ауданын анықтайды; TQRGroup – есеп беруде топтастыруды құру үшін қолданылады; TQRLabel – есеп беруде статикалық текстң орналастыруға мүмкіндік береді; TQRDBText – есеп беруде мәліметтер жиыннының алаңын орналастыруға мүмкіндік береді; TQRExpr - өрнектің мәндер қортындысын шығару үшін қолданылады, берілген компаненттің формалар редакторының көмегімен нәтежелер аргоритмі құрылады. TQRSysDate – есептегіштің, нөмірлердің , беттердің, даталардың басқа да мәндерін шығару үшін қызмет етеді; TQRMemo – комментари берілген алаңның есеп беруін шығару; TQRRichText – форматталған комментари алаңының есеп беруін шығару ; TQRDBRich Text – мәліметтердің құру алаңы болып табылатын форматталған коментари берілген алаңның есеп берун шығару; TQRShape – есеп беруде графикалық фигураларды шығару үшін қызмет етеді, мысалы тіктөртбұрыш; TQRImage – есеп беруде мәліметтер алаңының жиынын болып табылатын графикалық ақпараттарды шығару үшін қолданылады; TQRChart – есеп беруде графиктерді құру үшін қолдану. TQuickRep компонент TQuickRep компоненті есеп берудің сипаттамасын толығымен анықтайды. Бұл компанентті формаға орналастырғанда есеп берудің торы пайда болады. Содан кейін бұл торда қосымша бөліктер орналасады, мысалы, TQRBand тобы TquickRep компоненттерінің негізгі тәсілдерін және оқи,аларын қарастырайқ. Қасиетті property Bands: TQuickRepBands; Көптеген логикалық мәндерден (False/True) тұрады ; HasColumnHeader – есеп беру бағанының тақырыбы; HasDetail – детальдік информация; HasPageFooter –беттердің подвалы; HasPageHeader –беттердің тақырыбы; HasSummary – есеп берудің подвалы; HasTille –есеп берудің тақырыбы. [pic] Сурет-14.1. Есепберудің бос торы. Формеға TQuickRep компонентін орналастырғанан кейін құралады [pic] Сурет-15.2. Есепберу компанентін орналастырғанан кейінгі есепберу торы property DataSet: TDataSet; мәліметтер жиынына сілтейді, осының арқасында есеп берулер құрылады. Есеп беруді үлестіру үшін жалғыз НД қолданылады. Бірнеше БДкестелеріне байланысты ақпараттарды шығару қажет болса, SELECTоператорының көмегімен жалғыз НД да біріктіріледі.Бұл жағдайда есеп беру үшін НД орынына TQUERY компанентін қолдануға болады. Бірнеше байланысқан НД ақпараттарын есеп беруге қосуға болады, егер бұл мәліметтер жиыны Master-Detail қатынасымен байланыста болса . Бұл жағдайда НД орынына Master-набор көрсетңледі, ал Detail-наборына сәйкес келетін сілтеме TQRSubDetail компанентінде жүзеге асады .Егер есеп беруді мәліметтер наборының байланыс баған ақпаратына қосу керек болса , онда компазитті есеп берудң қолданамыз, ол дегеніміз басқа топтардан құралған есеп беру. property Frame: TQRFrame; есеп беру параметрлерінің рамкаларын анықтайды; Color – рамка сызығының түсі; DrawBottom – астыңғы сызықты шығару керек пе жоқ па соны анықтайды; DrawLeft- сол жақтағы сызықты шығару керекпе жоқ па соны анықтайды ; DrawRight-оң жақтағы сызықты шығару керекпе жоқ па соны анықтайды ; DrawTop-үстінгі жақтағы сызықты шығару керекпе жоқ па соны анықтайды ; Style – сызық стилін анықтайды; Width • пиксельді сызық енін анықтайды. property Page: TQRPage; Беттердің параметрлерін анықтайды property PrinterSettings: TQuickRepPrinterSettings; принтер параметрлерін анықтайды property PrintIfEmpty: Boolean; мәліметтер жоқ болса да есеп беруді басу керектігін көрсетеді (True), Әдістер procedure NewPage; Жаңа бетке көшуді орындайды BeforePrint немесе AfterPrint есеп беруде компаненттерді өңдеуде қолдануға болады, .ал OnPrint, OnStartPage және OnEndPage қолдануға болмайды. procedure Preview; есеп беруді терезеге жуықтап шығарады Есеп беруді өңдеу уақытында жуықтап көру терезесңнде баспаға шығрғымыз келсе онда төмендегілер қажет; – Есеп беруді тышқан көмегімен таңдау; – Тышқаннығ оң шертпесін басу; – всплывающи меню інде Preview элементін таңдау. Ескеретін жағай осы уақытта кейбір мәліметтер мысалға, мәліметтер алаңының жиынын шығару мәні көрінбейді . Олар тек орындалатын уақытты ғана шығарылады. procedure Print; есеп беруді принтерде шығару; procedure PrinterSetup; обеспечивает установки принтера параметрлерін орнатуды қамтамасыз етеді . Оқиға property AfterPreview : TQRAfterPreviewEvent; есеп беруді жуықтап көретін терезе жабылған кезде орнайды. property AfterPrint: TQRAfterPrintEvent; есеп беруді баспадан шығарғаннан кейін кіріседі . property BeforePrint: TQRBeforePrintEvent; есеп берудің генерация моментінде кіріседі , есеп берудің жуықтап көру терезесіне берілмейді және есеп беруді шығармай тұрып. property OnEndPage : procedure(Sender : TObject); есеп берудің соңғы бетін генерация үшін дайындау моментінде кіріседі property OnStartPage : procedure(Sender : TObject); есеп берудің бірінші парағын генерацияға дайындау моментінде кіріседі. Компонент TQRBand TQRBand компоненты есеп берудің негізгі қосымша бөлігі болып табылады және оларға статикалық текстерді және мәліметтерді орналастыру үшін. Есеп беруде компаненттердің орналасуы және тәртіп қасиеттерімен анықталады. property BandType : TQRBandType; Төменде осы қасиеттердің жуық мәндері : rbTitle – есеп берудің тақырып компанентін анықтайды. TQRBand, компанентінде орналасқан ақпарат есеп берудің барлық басқа бөліктерінде орналасады. Бұл TQRBand компанент түрі bi есеп берудің ақпарат тақырыбында қолданылады. rbPageHeader – беттердің тақырып компанентін анықтайды. Осы қасиет және мәндер Band орналасқан компанентте ақпарат есептеудің әр жаңа парағы шығарылады. rbDetail – детальді информация компаненті НД есеп беруіндегі жаңа жазбаға өту үшін әркез шығарылады. Есеп беру барлық НД жазбалары үшін басылады, DataSet, есеп беру қасиетімен анықталған біріншісінен бастап соңғысына дейін TQuickRep автоматты түрде. rbPageFooter – беттер подвалының компоненті. Есеп берудің барлық беттері үшін шығарылады. rbSummary – есеп берудің подвал компоненті. Выводится на пост странице отчета после всей иной информации, но перед под последней страницы отчета. rbGroupHeader – топтың тақырып компоненті. Есеп беруде ақпаратты топтастыру пайдаланылады, әр жаңа топ енгізген кезде шығарылады. rbGroupFooter – топ подвалының компоненті. Есеп беруде ақпаратты топтастыру үшін пайдаланады , топтың барлық мәліметтерінен кейін топ аяқталғанда шығарылады. rbSubDetail – бағынышты мәліметтер жиынында детальді ақпарат алу үшін қолданылатын компанент, Master-Detail көмегі арқылы қосымшада есеп беруде екі немесе оданда көп ақпаратты шығару үшін қолданатын компонент. . Бұл мән компанентке TQRBand формаға TQRSubDetail компанентін орналастырған кезде автоматты түрде меншіктеледі. BandType қасиетінде бұл мәнді программа орналастырмау керек . rbColumnHeader – бағанға тақырыпты орналастыру компаненті Есеп берудің беттердің тақырыбынан кейін әрбір бетте орналасады. rbOverlay – есеп берудің алғашқы версияларын сәйкестіру үшін қолданылады. Қасиеті property Enabled: Boolean; TQRBand компонентінде есеп беруде ақпарат басу керек пе (True)немесе жоқ па (False) көрсетеді . Қасиет property ForceNewPage: Boolean; TQRBand құрамындағы ақпарат жаңа беттен басылуы керек пе (True) әлде жоқ па (False) екендігін көрсетеді . Оқиға property BeforePrint: TQRBeforePrintEvent; TQRBand компонентінің ауданында орналасатын ақпаратты басу алдында туындайды. Дәріс №15 Тақырыбы: Қарапайым есеп беруді құру 1. Баған тақырыбын көрсету үшін TQRBand қолдану 2. Есепберуде топтық мәліметтер TQuickRep және TQRBand компоненттер құрамында топтық ақпараты жоқ қарапайым есеп беруді құру үшін жеткілікті болып табылады. ДҚ Prihod.DB кестесі қоймаға материалдар түсу жөнінде мәліметтә құрайды. ТБД құрамына төмендегідей алаңдар кіреді. – N_Prih – материала келу оқиғасының уникальді нөмірі – DataPrih-түскен күні – MATERIAL – материал аты; – KOLVO –түскен материалдар көлемі. Түскен материалдардың тақырыбы мен мәліметтерінен тұратын қарапайым есептеу құрайық. Есеп беруге материал түскен барлық фактілер кіреді. Сұрыптау материалдардың түсу нөмірі арқылы жүреді. TTable (Table1 аты) компанентін №6 формаға орналастырып ДҚ Prihod.DB кестесімен байланыстырып ашайық. (Active = True) QReport компонент палитрасы бетінен TQuickRep ( QuickRep1 аты) компонент формасына орналастырамыз. DataSet қасиетіне Table1 мәнін орнатамыз, осылай мәліметтер жиынын есепберуге шақырамыз. Есепберуге TQRBand (аты QRBand1) компонентін қосамыз. BandType қасиеті QRBandl компонентіне үнсіздікпен rbTitle, мәні орнатылады, яғни QRBand1 компоненті есепберу тақырыбын анықтайды. Есепберу кеңістігіне QRBand1компонентін, TQRLabel (статикалық текст) компонентін QRLabel1 атымен орнатамыз. Осы компаненттің Caption қасиетін 'Поступление материалов на склад' мәнін орнатамыз, Font қасиетіне 16 пунк биіктіктегі қисық майлы шрифті қоямыз. Есепберу түрі 15.1-суретте көрсетілген. [pic] Сурет-15.1. Есепберуде оның тақырыбы ғана анықталған Енді есепберуге мәліметтерді Prihod кестесіне сәйкес орналастырамыз. Ол үшін есепберуге жаңа компанент TQRBand (QRBand2 аты) орнатып оған BandType қасиетіне rbDetal мәнін орнатамыз.Содан кейін топқа төрт TQRDBText компанетін QRDBText1 ... QRDBText4 атымен орналастырамыз. Берілген компанеттерді МЖ-ның сәйкес алаңымен байланыстырамыз- N_Prih, MATERIAL, DataPrih, KOLVO. Ол үшін QRDBText әрбір компанентіне DataSet қасиетінде Table1 мәнін орнатамыз, ал DataField қасиетіне сәйкес келетін алаң атын орнатамыз. Есепберу түрі 152 – суретте көрсетілген. [pic] Сурет-15.2. Детальді ақпараттар тобтарымен және тақырыбымен берілген есепберу Алған есеп беруді қарау үшін оған тышқанның оң жағын басамын және жылжымалы менюдан Preview элементін таңдаймыз. Осылай есепберудің жуықтап көру терезесін аламыз. (15.3-сурет). [pic] Сурет-15.3. Жуықтап қарау терезесіндегі есепберудің мазмұны Алдын ала көру терезесін “Просмотр” батырмасы арқылы ұйымдастырамыз. №4 формасына TButton компонентін орналастырамыз. Для этого добавим в форму. Осы батырманың тақырыбын (қасиеті Caption) арқылы өзгертаміз, ол үшін “Просмотр” инспектор объектісі қолданылады. Form6. QuickRep1.Preview; Баған тақырыбын көрсету үшін TQRBand қолдану RbColumnHeader мәнінде орналасқан BandType қасиетінің TQRBand компоненті баған тақырыбын көрсету үшін қолданылады. Бағандар тақырыбын TQRLabel компонетінің көмегімен анықтайды Алдындағы бөлімдерде берілген есеп беруде TQRBand (QRBand3 аты ) компонентін қосып, rbColumnHeader мәнін BandType қасиетіне орналастырамыз. Есеп беру кеңістігіне тағайындалған QRBand3 анықталған TQRLabel (аттары QRLabel2 ... QRLabel5) 4 компанентін және Caption қасиетіне осы компаненттер мәндерін “Кіріс №” ” материал аты” “Дата” “мөлшері ” орналастырамыз. Font қасиетіне берілген компанент шриф астын сызу режимін орналастырамыз . Есеп берудің алдын ала қарау терезесіне шығып, әр бет үшін есепберудің алдын ала қарау бетінің жоғарғы жағына бағанның аттары жазылады.(15.4-сурет ) [pic] Сурет-15.4. Есепберуде бағандар тақырыбы көрсетілген Беттердің подвалының және тақырыпты көруде TQRBand қолдану BandType қасиетіне rbPageHeade мәні орнатылған TQRBand компоненті беттер тақырыбын көруде қолданылады. Ол басқа ақпараттың алдында әр жаңа бет үшін шығарылады. BandType қасиетіне rbPageFooter мәні орналасқан TQRBand компоненті беттер подвалында статикалық тексте (TQRLabel компоненттері) орнатылады, өріс мәндерінде (TQRDBText компоненті), өрнек шығару нәтежесінде (TQRExpr компонеті). Алдынғы бөлімдерде қаралған есепберуде TQRBand (QRBand4 аты) компанентінде орналастырып және rbPageHeader мәнін BandType қасиетін орналастырамыз.Бет тақырыбына ешқандай тексті жазбаймыз , жай беттің жоғарғы жағы сызығын сызамыз . Ол үшін True мәнін Frame. DrawTop беттің тақырып компанентінің қасиетіне орналастырамыз , ол ауданның жоғарғы шетінің сызығы шығуына көмектеседі. Анологты түрде есеп беруде беттің подвал компанентін (QRBand5 аты) анықтаймыз және rbPageFooter мәнінің қасиетіне орналастырамыз. Есеп беруді алдын ала көру режиміне кіріп, әр беттің жоғарғы және төменгі сызықтар шыққанын көреміз. TQRSysData компонентін көмекші және жүйелі ақпараттар көруде қолдану TQRSysData компоненті көмекші және жүйелі ақпараттарды көруде қолданылады. Көрсетілетін ақпарат түрі қасиеттермен анықталады. property Data : TQRSysDataType; Төменде осы қасиеттердің мүмкіндігі көрсетілген . • qrsColumnNo – есеп берудің ағымды бағанының нөмірі (бір бағанды есеп беру үшін әрқашанда 1). • qrsDate – ағымды дата . • qrsDate Time - ағымды дата және уақыт. • qrsDetailCount - ДҚ да жазбалар саны бірнеше ДҚ қолданылғанда master-жиында жазба саны TQuery компоненті ДҚ –да көрсетілгенде. • qrsDetaUNo – ДҚ ағымдағы жазба нөмірі . Бірнеше жинақта master- жиындағы ағымдағы жазбаның нөмірі . • qrsPageNumber – ағымдағы есеп беру бетінің нөмірі . • qrsPageCount – ағымдағы есеп берудің жалпы бетінің нөмірі. • qrsReport Title – есепберудің жалпы саны . • qrsTime – ағымдағы уақыт. QRBand5 есеп беру подвалының компанентіне TQRSysData (QRSysDatal... QRSysData2 аты) 2 компанентін орналастырамыз. Data қасиетіне qrsDate (ағымдағы дата ) мәнін бірінші болып орналастырамыз.. 2-ші – qrsPageNumber мәнін ( есеп беруде алдындағы беттің нөмірі ) . Есепберуді алдын ала көру режиміне кірейік . Енді есепберудің әр бетінің подвалына бет нөмірі және ағымдағы дата шығарылады. Есепберуде топтық мәліметтер Жоғарыда біз есепберуді ТБД Prihod.DB дан материал түсу ақпаратын қарастырайық, қоймаға “тура солай” шығарылады. TQRGroup компоненті ақпаратты топтастыруда қолданылады. Оның Expression қасиеті өрнекке сілтейді топқа ДҚ жазбалар кіреді . Шартты қанағаттандыратын өрнек әр анықталған топқа топтың подвалына топтың тақырыбы шығарылады. ВапаТуре қасиетінің мәнімен TQRBand компоненті топтың подвалы ретінде қолданылады. TQRGroup компонентінің FooterBand қасиеті топтың подвалы компанентасының ссылкасы құрайды. Топтың тақырыбында өрнектер енгізіледі, сол арқылы топтастыру жасалады және әртүрлі тақырыптар , егер керек болса топтың подвалында көбін агрегирді ақпараттар шығарылады суммарлы , орта мәнді және т.б группа мәндері . Мысалы: Қоймаға түскен материалдар атымен топтастырылады., Ол үшін №7 формада есепберудің мәндер жиынын анықтайық (ТТаblе компоненті, Table1 аты, TablelName - Prihod.DB қасиеті, Active - True). ДҚ-на ағымдағы индексті Material өрісі арқылы орналастырайық (FieldIndexNames немесе IndexName қасиетінде ). Есепберуді орналастырамыз: • есепберу тақырыбы- QRBand1 атымен TQRBand компоненті ВапаТуре = rbTitle қасиеті; • бағандар тақырыбы- QRBand2 атымен TQRBand компоненті, ВапаТуре = rbColumnHeader қасиеті ; • топты- QRGroup1 атымен TQRGroup компоненті. • детальді информация ауданы - QRBand3 атымен TQRBand компоненті , ВапаТуре = rbDetail қасиеті; • топ подвалы - QRBand4 атымен TQRBand компоненті, ВапаТуре = rbGroupFooter қасиеті. QRGroup1 компонентінде орналастырамыз: • FooterBand қасиетіне QRBand4 мәнін ; • Expression қасиетіне Table1 мәнін .MATERIAL мәнін, ол формула болып табылады және формула редакторында құрылады. Expression қасиеті мәндер өрнегі визуалды емес ) TQRExpr компонентін топқа орналастыру керек және Table Material болатындай етіп анықтау керек.( 44-сур). Топтың подвалы QRBand4 компонентінде Kolvo өрісімен сумманы санаймыз(түскен белгілі материал соммасы ), ол үшін топтың подвалында TQRExpr компонентін ( TQRExpr2 аты ) орналастырып және Expression қасиетінің мәні SUM(Table1.KOLVO) формуласы болатындай етіп анықтау керек . Детальді ақпарат тобына TQRDBText компанентін орналастырамыз мәліметтердің кейбірі N_Prih, Material, DataPrih және Kolvo өрісімен байланысқан. 15.5-суретте көрсетілгендей етіп есепберудің статикалық текс аудандарын толтырамыз. 15.6-сурет те алдын ала көруде есепберу режимі көрсетілген . [pic] Сурет- 15.5. Формулалар орналастыру 15.6-суретте көрсетілгендей етіп есепберудің статикалық текс аудандарын толтырамыз. [pic] Сурет-15.6. Тауар бойынша топталған есепберу макеті №4 формасында”Группа” баспасын басу арқылы алдын ала көру терезесін шақырамыз. №4 формадағы TButton компонентін қосамыз, батырмаға уақиға өңдеушісі батырмасын басамыз OnClick: Form7. QuickRep1.Preview; 15.7-суретте бір топтың подвалы көрсетілген – онда материалдық суммалық кірісі туралы ақпарат шығарылады. [pic] Сурет -15.7. Жуықтап көру терезесіндегі тауар бойынша топтауы көрсетілген есепберу Фильтрді қолдану арқылы есепберуді қалыптастыру True орнатылған Filtered қасиеті фильтрацияны инициирлайды, уақиға өңдеушісінде OnFilterRecord шарты жазылған Мысалы, егер ДҚ –да фильтр орнатылса. begin Accept := DataSet['KOLVO'] >= 500; End; Онда True-ге Table1.Filtered -ті орнату фильтрацияға алып келеді; Онда тек 500 ғана мәні болатын 'KOLVO' өрісі жазбаның мәліметтер жиыны көрсетіледі. False да Filtered орнату фильтрацияны алып тастауға әкеледі, оның шарттар OnFilterRecord уақиғаларында көрсетіледі Осылай есепберуді жүргізуге компаненттер көрсетілген енді оны құрастыратын компаненттерді қарастырайық. Қоймаға түскен материалдарға топтастыру мәліметтерінсіз қарапайым есепберуді құру ; Қосымшаны ресімдеу. Біз қолданба құру және қосымшаның өңдеу негізін бітірдік. Енді қосымшаны біз аздап бояуымыз керек . app1 қосымшасына бірнеше элементті қосамыз, олар оны қолданғанға ыңғайлы етеді. Қосымшаға тақырып және пиктограмма береміз Delphi үнсіздікпен әрбір құрылған қосымшаға пиктограмманы меншіктейді. Бірақ пиктограмма арқылы қосымша функциясын оңай анықтау керек. Сонымен қатар ол басқа ортадан керектісін бөліп көрсетуге көмектесуі керек . Windows және Delphi-де дайын пиктограммалар өте көп . Өз пиктограммаларын құру үшін бейнелеу редакторын қолдануға болады. Дайын пиктограмманы қосымшамен байланыстыру керек. Ол үшін Project|Options-ты таңдап, Application қаптамасына шертеміз. Title өрісінде Sklad тексін егізіп содан кейін Load Icon батырмасын шертіп пиктограмма файлына сілтейміз. Тапсырылған тақырып Windows тапсырма панелінде қосымша идентификациясы үшін қолданылады. Тестирлеу және қолданбаны өңдеу. Тестирлеуден кейін бізде іске қосылмаған шығару/атауы материал меню пункті қолданылады. Жаңа материал қосылу үшін форма құрамыз оған TDBGrid компонентін орналастырып DataSource1 мәнінде DataSource қасиетін орналастырамыз. Tbutton батырма компанентін формаға қосып ол компанентке ат береміз (Name қасиеті) CancelBtn батырма тақырыбын (Caption қасиеті ) ға өзгертеміз. Қолданушы басатын кнопканы кодты батырмамен байланыстырамыз.. Формада OnClick уақиғасын өңдеу процедурасын құру үшін тышқанмен " Жабу"- батырмасын екі рет шерту керек. Редактор кодына келесі кодты жазамамыз. Сlose; Form1.Visible := True; № 1 формасына көшіп № 8 формадағы шықыру коды менюпунктінде Ввод/Название материала кодын жазамыз.: Form1.Visible := False; Form8.Visible := True; Осымен қолданба дайындығы аяқталды деп санаймыз. Қосымша . Өмір бір орнында тұрмайды, сол сияқты біздің қосымша өзгерген шарттармен байланысқа түсуі мүмкін. Белгілі бір моментте басқа формадағы есепберу қажет болады, мысалы, қоймадағы материал қандай соммада түскенін көрсету. Жаңа есепберу формасын (№9 формасы) құрайық . Формаға TQuickRep ( QuickRep1 аты) компанентін орналастырайық , бірақ мәліметтер жиынына ұйымдастыруды Query1 арқылы құрамыз. Бұл DataSet қасиетіне DataModule5.Query1 орнатамыз.Басқа да компаненттер және есепберу аудандарын сатикалық текспен толтырамыз 15.8-суретте көрсетілгендей . [pic] Сурет-15.8. Қорытынды есепберу макеті Есепберудің соңында барлық түскен материалдардың қортынды соммасын словесдік түрде қосамыз. Ол үшін TQRBand атымен QRBand4 компанентін қосамыз, қасиеті ВапаТуре = rbSummary. TQRLabel компонентін (аты QRLabel7) QRBand4-ке орнатамыз. Unit4 –ке көшіп уақиғалар өңдеушісіне OnClick батырма "Итог" мынандай код: procedure TForm4.Button5Click(Sender: TObject); var ss: String; begin Str(TempTotal,ss); Form9.QRLabel7.Caption := SumNumToFull(TempTotal); Form9.QuickRep1.Preview; end; Unit5-ке TempTotal айнымалысын анықтаймыз және қоймаға түскен материалдардың TempTotal қортынды соммасына шығару кодын қосамыз.. var DataModule5: TDataModule5; TempTotal: Integer; implementation AfterOpen қасиетіне тышқанды екі рет шертіп , объект инспекторында Unit5-ті ашып , келесі кодты қосамыз: procedure TDataModule5.Query1AfterOpen(DataSet: TDataSet); begin Query1.First; TempTotal := 0; { use temp for efficiency } while not Query1.EOF do begin TempTotal := TempTotal + Query1Stoim.Value; Query1.Next; end; SumNumToFull(TempTotal); end; Project|Add to Project менюін қолдана отырып, Writesum.pas жазбасына проект модулінің аударма санын қосамыз, модуль листингін қолданбаға келтір. 15.9-суретте алдын ала көру терезесінде қортынды есепберу көрсетілген. [pic] Сурет-15.9. Тауар бойынша есеп беру қорытынды мәнмен Есепберуді құруды жалғастырамыз. QRBand4 өрісіне TQRLabel (аты QRLabel8) компонентін орналастырамыз, Caption қасиетін "Итого:"-ға өзгертеміз: Тағы бір TQRExpr (аты QRExpr1) компонентін қосып және Expression қасиетінің мәнін SUM(Table1.Stoim) формасын құрайтынын анықтаймыз. 2. Машықтану сабақтары Машықтану сабағы №1-4 «Мәліметтер қоры кестесімен жұмыс» . Мәліметтер қорын құру Қолданылатын мәліметтер қоры бірнеше кестелерден тұрады. Келесі қадамда белгілі бір ДББЖ мен мәліметтер қорының архитектурасын таңдау керек. Ол үшін көбіне локальды ДББЖ алынады (Мысалы: Paradox7). Мәліметтер қорын жеке қапшықта (каталогта) сақтау керек. Қапшық атауын «Alias» деп аталатын бүркеншік атаумен беруге де болады. Алиас қапшық орналасқан жолдың жазылуын, ізделу уақытын қысқартады. Мысалы: Firma1 каталогын оның ішінде Firma1 мәліметтер қорын құру керек болсын. 1) Жоғарғы мәзірдің TOOLS – DATABASEDESKTOP командасын орындаймыз. 2) Пайда болған терезеде TOOLS – ALIASMANAGER – NEW командасын орындап мәліметтер қорының атауын енгіземіз, мәліметтер қорының атауы мен қапшық атауы бірдей бола береді, сондықтан Firma1 деп енгіземіз. 3) Осы терезенің драйвер типі жолында DRIVERTYPE – STANDART деп көрсетеміз. 4) Осы терезедегі BROWSE батырмасын басып құрылған қапшық жолын көрсетеміз (C:\ProgramFiles\Borland\Delphi\Project\Firma1) сосын ОК батырмасын басамыз. 5) Алиасты BDE-ге жіберу керек пе? Сұрағына ИӘ деп жауап береміз. Жаңа кесте құру: 1) File – New – Table командасын орындаймыз. 2) Кесте форматын таңдау үшін TableType жолында Paradox7 дегенді көрсетіп OK батырмасын басамыз. 3) Келесі терезеде кестенің құрылымын анықтаймыз. Кестенің құрылымы кестеге енетін өріс атауларын (FieldName), типтерін (Type), өріс жазуларының ұзындықтарын (Size), кілттік өрісті (Key) көрсетуден тұрады. Бұл ортада кесте өрістерінің атаулары латын әріптерімен теріледі. Ал өріс типтері келесідей мәндер қабылдайды: Alpha – мәтіндік өріс, ұзындығы 255 символға дейін . Number – нақты тип, -10307 нен +10308 дейін. $(Money) – ақшалық тип, алдыңғы тип сияқты. Short – қысқа бүтін тип, -32768 ден +32767 дейін LongInteger – ұзақбүтін тип, -2147483648 ден +2147483647 дейін. #(BCD) – жоғарғы дәлдіктегі нақты тип. Date – дата типі. Time – уақыт типі. @(Timestamp) – дата және уақыт типі. Memo – ұзақ мәтіндік тип, ұзындығы 255 символдан артық. Formatted Memo – форматталған мәтіндік тип (һаріп – шрифт түсі, стилі, бейнесі көрсетледі). Graphic – Графикалық тип. OLE (Object Linking and Embedding) – осы технологияны ұстанатын ақпаратар типі. Logical – логикалық тип. +(Autoinctement) – санаушы, автоматты түрде мәні 1-ге өсіп отырады. Binary – еркін ұзындықтағы екілік деректер типі. Кілттік өрістің атауы тізімде бірінші орналасып соңына ID әріптері тіркеледі де Key бөлігінде жұлдызшамен белгіленеді. 4) Осы терезеде өрістердің қасиеттері көрсетіледі: 1. Required Field – міндетті түрдегі өріс. 2. Minimum Value – минималды мәні (сандық әрістер үшін). 3. Maximum Value – максималды мәні (сандық әрістер үшін). 4. Default Value – үндемеген немесе атап көрсетпеген жағдайда шығатын мән. 5. Picture – енгізу маскасы. 5) Кестені сақтау үшін Save As батырмасын басып шыққан терезеде файл атауын (мысалы Client.db), алиас атауын (мысалы Firma1) көрсетеміз де сақтаймыз. DataAccess компоненттер панелінен Ttable компонентін қалыпқа орналастырамыз. Осы объектіні белгілеп ObjectInspector терезесінде компонент қасиетін көрсетеміз: 1) Мәліметтер қорының атауы DatabaseName жолында жазылады (Мысалы MyBase). 2) Ttable компонентімен байланысқа түсетін кестені көрсету TableName жолында жазылады (Мысалы: Client.db, Қосымшада келтірілген). 3) Осы кестеге программа арқылы қатынасу керек болса Active жолында True деп жазамыз. Осы операциялардан кейн қалыпқа орнатылған компонент көрсетілген мәліметтер қоры кестесіндегі деректермен байланысады. Бірақ байланысты бірден тура осылай орнатпай, аралық деңгейдегі деректер көзі деп аталатын TdataSource компонентін де қолдануға болады. Әрбір деректер көзі деректер модулінде орналастырылғаннан кейін белгілі бір кестемен DataSet қасиеті арқылы байланысады. Тапсырмалар: 1. Дельфи қосымшасында деректер базасымен жұмыс неден басталатынын көрсетіңіз. 2. Дельфи қосымшасын қолданып 1- таблицада келтірілген деректер базаларының тақырыптары бойынша өрістерді өздеріңіз анықтап деректер базасын құру.Атрибуттар атауларын және қасиеттерін өздеріңіз анықтаңыз. Оны кемінде 10-15 жазумен толтырыңыз. 3. Құрылған деректер базасын арнаулы жаңа қапшыққа сақтаңыз. 4. Деректер базасының әр атрибутына сәйкес қалыпқа компонент орналастырып, олардың қасиетін анықтаңыз. Машықтану сабағы №5-8 «Мәліметтерді өңдеуге қолданылатын компоненттер». 1) Деректер кестесі деп аталатын TDGrid компоненті Мәліметтер қоры кестесіндегі жазуларды өшіру, жөндеу, жаңа жазу қосу керек болса ол үшін программалық код жазудың қажеті жоқ, қалыпқа DataControls (деректерді басқару элементтері) деп аталатын панельде орналасқан TDGrid компонентін орналастырып, DataSource қасиетінде қажетті деректер көзін көрсету керек. 2) Навигатор компоненті TDBNavigator Бұл компонент кестенің жазуларын навигациялау үшін қолданылады. Навигация жазу бойымен жылжу дегенді білдіреді. Бұл компонент 10 батырмадан тұрады: 1. First – бірінші жазуға жылжу 2. Prior – алдыңғы жазуға жылжу 3. Next – келесі жазуға жылжу 4. Last – соңғы жазуға жылжу 5. Insert – көрсеткіш орналасқан жазу орнына жаңа жазу қою 6. Delete – ағымдағы жазуды өшіру, егер ConfirmDelete қасиетін True деп қойса өшіруді орындауды құптау хабарламасы шығады. 7. Edit – ағымдағы жазуды жөндеу 8. Post – кестеге енгізілген өзгертулерді сақтау 9. Cansel –енгізілген өзгертулерді сақтамау 10. Refresh – мәліметтер қорынан деректерді жаңадан оқып кестенің жазуларын жаңарту. 3) Деректер тақырыбы (надпись) компоненті TDBText: Ұзақ мәтін сақталған өріс жазуларын көрсету, өзгерту үшін қолданылады. Tlabel компонентіне ұқсас. DataSource қасиетінде деректер көзі көрсетіледі, DataField қасиетінде қолданылатын өріс көрсетіледі. 4) Жөндеу өрісі компоненті TDBEdit: Ағымдағы жазуды өзгерту, көрсету үшін қолданылады. Алдыңғы компонентке ұқсас. Қосымша қасиеті ReadOnly қасиетін True десе кестенің жазулары өзгертуді қабылдамайды. 5) Бейне компоненті TDBImage: Мәліметтер қорында сақталған бейнелерді, суреттерді экранға шығаруды орындайды. Егер AuttoDisplay қасиеті True десе өрістегі бейне автоматты түрде экранда көрінеді. Егер ол қасиет көрсетілмеген болса LoadMemo әдісін шақыру арқылы орындауға болады. Бейнені өріске қою, көбейту, т.б. операциялар Picture қасиетінде көрсетіледі. 6) Деректер тізімін қолдану компоненті TDBComboBox: Бұл компонент ашылған тізімнен деректі таңдау, қолдануды орындайды. Енгізу облысындағы мәтін жиыны қажетті жазуға жылдам жылжу, немесе тізімде жоқ элементті енгізуге мүмкіндік береді. ComboBox компонентіне ұқсас, тек қосымша қасиеті Style жолында TcomboBoxStyle арқылы тізімге енетін элементтердің бейнелену стилі көрсетіледі. 7) Деректер жалаушасы (флажок) компоненті TDBCheckBox: Бұл компонент көмегімен екі жағдайдың бірін қабылдайтын өрістердің мәндерін көрсетуге болады. Компонент логикалық мән қабылдайды. Өрістің қандай жағдайда тұрғанын және оның мәнін өзгертуге көмектеседі. 8) Деректерді топтап ауыстырып-қосу (группа переключателей) компоненті TDBRadioGroup: Бұл компонент өрістің шектелген міндер жиынын көрнекі түрде шығаруды орындайды. Әр мәнге ауыстырып қосу тобының біреуін сәйкестендіруге болады. Ауыстырып қосу атауларының тізімі Items қасиетіне енгізіледі, оның типі Tstrings болады. Тізімге сәйкес мәндер Values қасиетінде сақталады, типі String болады. Кестені шығару Кестені экранға екі түрде шығаруға болады: торкөз түрінде, жеке өрістер түрінде. Мысалмен көрсетсек: А) “Wares” кестесін торкөз түрінде шығару керек болсын. 1. DataAccess панелінен қалыпқа Ttable компонентін орналастырамыз. Қасиеттерін береміз: 1) Мәліметтер қорының атауы DataBaseName - Firma1 деп. 2) Кесте атауын TableName – Wares.db деп. 3) Кесте активті болсын Active - True деп. 2. DataAccess панелінен қалыпқа TdataSource компонентін орналастырамыз да қасиетін көрсетеміз: 1) Керекті кестені көрсету DataSet - Table1 деп. 3. DataControl панелінен қалыпқа TDBGrid компонентін орналастырамыз, ол кестеден деректерді торкөз түрінде шығарады. Қасиеттерін көрсетеміз. 1) Байланыстырылатын кестені көрсету DataSource - DataSourse1 деп. 1. Қалыпқа Ttable, TdataSource компоненттерін орналастырамыз. А) мысалындағы сияқты компоненттер қасиеттерін көрсетеміз. 2. DataControl панелінен қалыпқа TDBGrid компонентінің орнына 9 TDBEdit компоненттерін , бір TDBText, бір TDBMemo компоненттерін орналастырамыз да қасиеттерін көрсетеміз: 1) Деректер көзін көрсету үшін DataSource - DataSource1 деп. 2) Шығарылатын өрістерді көрсету үшін DataField жолында мысалы: Name, Adress, ClientsName, DateOfBirth, Age т.б. деп 3) Адамның жасын есептеу үшін есептеу өрісін TDBText формуласын береміз. 4) Адамдарға қосымша мағлұмат шығару үшін TDBMemo - Description деп. 1. Қалыпқа Tlabel компоненттерін орналастырған соң өрістердің атауларын береміз. 2. TDBRadioGroup компоненті үшін тақырып береміз. Мысалы “Клиент жынысы”. DataSource, DataField қасиеттерінен басқа Items қасиеті жолында мәндерді енгіземіз: әйел, еркек деп. 3. TDBComboBox компонентінің тақырыбын семьялық ағдайы деп береміз. DataSource DataField қасиеттерінен басқа Items қасиеті жолында “семьясы бар, бойдақ, ажырасқан” мәндерін енгіземіз. 4. TDBCheckBox компонентінің Caption қасиетіне “Балалары” деп жазамыз. Алдыңғы мысалдан белгілі DataSource, DataField қасиеттерін көрсетеміз. 5. DataControls панелінен TDBNavigator компонентін орналастырып, қасиеттерін береміз: 1) DataSource - DataSource1 деп 2) Hints - көмекші хабарлама шығару массиві, орысшаға аударуға болады. 3) ShowHint – True деп 1. DataControls панелінен TDBImage компонентін орналастырып қасиеттерін береміз: 1) Stretch - True деп 2) Dialogs панелінен OpenPictureDialog1 компонентін қалыпқа әкелеміз. 3) DBImage1 компонентін белгілеп, OnDblClick оқиғасына программалық код жазамыз: Begin If OpenPictureDialog1.Execute then begin Table2.Edit; DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName); Table1.Post; End; Кестелер арасында байланыс орнату Мысалмен қарастырамыз. «Тауарлар» (3-кесте), «Тапсырыстар» (1- кесте) кестелері торкөз түрінде шығарылған болсын. 1. Қалыпқа Table3 компонентін орналастырамыз. Table3-ң қасиеттерін көрсетеміз: 1) Name - “LinkedTable” деп атайық. 2) DataBaseName - Firma1 болады. 3) TableName - Order.db болады. 2. “Тапсырысдар” және “Тауарлар” кестелері арасында байланыс орнатамыз: 1) Active – False ltqv3p 2) Жоғарғы мәзірдің Tools - DeskTop командасымен Оrder.db тәуелді кестені ашамыз. 3) Осы кесте үшін басшы өрісті индекстейміз. Индекстеу кезінде жазулар алфавит бойынша орналасады: Table – Restructure командасын орындаймыз. 4) Пайда болған терезедегі Table Properties қасиетіндегі ашылатын тізімнен индекстелетін басшы өрісті көрсетеміз, ол WaresNum болсын. Оған SecondaryIndexes деп қоямыз. 5) Define батырмасын басамыз, сонда мәліметтер қорында бар өрістер тізімі шығады, бзге қажеті WaresNum деп көрсетіп Indexed Fields – инддекстелетін өрістер тізіміне енгіземіз де OK батырмасын басамыз. 6) Пайда болған терезеде индекстелген файл атауын WaresNumIndex деп жазып OK , сосын Save батырмаларын басамыз. 7) Desktop кестесін, Desktop терезесін жабамыз. 3. Тәуелді кестенің қасиеттерін көрсетеміз: Ол үшін қалыптағы Table3 компонентін белгілейміз де: 1) MasterSource - DataSource1 деп, негізгі кестемен байланыстырылатын звеноны көрсетеді. 2) IndexName – WaresNumIndex деп қолданылатын индексті көрсетеміз. 3) MasterFields қасиетінде байланыстырылатын өрістер тізімі көрсетілуі керек, ол үшін “…” батырмасын басамыз. Пайда болған терезедегі DetailFields тізімінде WaresNum жолын, MasterFields тізімінде WaresID жолын көрсетіп ADD, сосын OK батырмаларын басамыз. 4) Барлық кестелердің Active қасиетін True деп қоямыз. 4. Қалыпқа TDBGrid3, DataSource3 компоненттерін орналастырамыз. 1) DataSource3 компонентінің DataSet қасиетін LinkedSouce деп береміз. 2) TDBGrid3 компонентінің DataSource қасиетін DataSourse3 деп береміз. 5. Құрылған қосымшаны орындау үшін F9 пернесін басамыз. Нәтиженің орындалуын бақылаймыз. Тапсырмалар: 1. Вариантыңыз бойынша құрған деректер базасына қатысты қалып пен база арасында байланыс орнатыңыз. 2. Әр компоненттің қасиетін анықтаңыз. 3. Құрылған кестелерді экранға шығаруды ұйымдастырыңыз. 4. Деректерді торкөз түрінде шығаруды орындаңы. 5. Деректерді басқа да түрмен экранға шығаруды ұйымдастырыңыз. 6. Қосымшада келтірілген деректер базаларын құрыңыздар. 7. Өз беттеріңізбен қосымшада келтірілген “Клиенттер” және “Тапсырыстар” кестелерін байланыстырыңыздар. Машықтану сабағы №9-12. «Есептелінетін өрістер» . Мәліметтер қорында өріс ретінде табылмаған, бірақ қолданылуы өрістер сияқты қосымша өрістер бар оларды есептелінетін өрістер дейді. Атауы айтып тұрғандай бұл өрістер мәліметтер қорындағы қандай да бір деректерді қолданып белгілі бір есептеуді орындап, нәтижесін көруге мүмкіндік береді. Есептелінетін өрістер мәліметтер қорынан тыс құрылады және оны кестеде қолдануға болады. Кестеге жаңа есептелінетін өріс қосу немесе тіркеу керек болсын. Кестенің өрістер тізіміне атауы CalcField типі String (FieldType жолында типті көрсетеміз), варианты Calculated болатын жаңа өріс қосамыз. Осыдан кейін кесте үшін OnCalcFields оқиғасына программалық код жазылады. Мысал: «Client.db» кестесінде «Клиент жасы», «Сумма» есептелінетін өрістер құру керек болсын. Деректерді кестеге код көмегімен енгізу. 1. Жаңа Form2 қалыбын құрамыз да Unit1 және Unit2 модульдерді байланыстырамыз: 1) Негізгі Unit1модулінде қолданылатын Unit 2 модулін сипаттаймыз. Ол үшін Uses… сөзінен кейін Unit2 деп толықтырып жазамыз. 2) Қолданылатын модульде негізгі модульді сипаттаймыз. Ол үшін implementation сөзінен кейін {$R*.DFM}сөзіне дейін Uses Unit1 деп жазамыз. 2. Form2 калыпқа Win32 компоненттер панелінен MonthCalendar1- календарь, Additional панелінен екі BitBth компоненттерін орналастырып, олардың Kind қасиеттерінде сәйкесінше OK және Cancel деп көрсетеміз. Терезені безендіру үшін Shape компонентін қолдануға болады. Оның сырт бейнесі немесе пішіні Shape қасиетінде көрсетіледі. 3. Form1 қалыбындағы кестеде есептелінетін өріс ұяшығында Button1 компонентін орналастырып, тақырыбын “…” деп береміз. OnClick оқиғасы үшін мына программалық кодты жазамыз: Form2.Left:=Form1.Left+Button1/Left; Form2.Top:=Form1.Top+Button1.Top; Form2.ShowModal; // терезе модальды болуы үшін, 4. Form2 қалыбында OK батырмасы үшін программалық код жазамыз: Form1.Table1.Edit; Form1.Table1.Fields[9].AsDateTime:=MonthCalendar.Date; Квадрат жақшадағы индекс келесідей анықталады: Table1 компонентін 2 рет басып, шыққан терезеде контекстік мәзір шақырып одан AddAllFields командасын орындау керек. Объектілер инспекторы терезесінде DateOfBirth қасиеті үшін Index жолында 9 деп көрсетеміз. 4. Есептелетін өрістер үшін программалық код жазамыз: 1) Table1 компонентін белгілеп AutoCalcFields қасиетінде True дейміз. 2) Table1 компонентін 2 рет басып контекстік мәзірден AddAllFields командасын орындаймыз да есептелінетін өрістерді белгілейміз, Мысалы: Age өрісі, қасиеті FieldKind - FkCalculatedболады. Сосын Form1.Table1 терезесін жабамыз. 3) Table1 компонентін белгілеп OnClickField оқиғасы үшін программалық код жазамыз: Year, YearNew:integer; Begin Year:=StrToInt(FormatedDateTime(‘YYYY’, TableDateOfBirth.Value)); YearNew:=StrToInt(FormatedDateTime(‘YYYY’, Date)); Table1Age.Value:=YearNew-Year; End; Мұндағы Value – ағымдағы мән дегенді білдіреді. FormatedDateTime функциясы датаны шығару әдісін өзгертуге мүмкіндік береді. Ағымдағы датаны Date функциясы шығарады. Тапсырмалар: 1. Құрылған деректер базасын ашып, кестелерін экранға шығарыңыз. 2. Деректер базасына есептелетін өрістерді қолданыңыз. 1. Деректер базасындағы жазуларды реттеуді көрсетіңіз. 2. Деректер базасы бойынша ќарапайым сұраныс ќұру. - Сандық өрістегі жазулар санын анықтау - Белгілі бір өрістің қортындысын анықтау - Берілген шартты қанағаттандыратын жазу өрістерін шығару Машықтану сабағы №13-16. “Фильтр – сүзу”. Деректер кестесі жазуларынан белгілі бір шартты қанағаттандыратын жазуларды сүзіп алу сұраным немесе фильтр деп аталады. Шарт Filter қасиетінде өрнек түрінде жазылады. Сұранымдар көбіне SQL арнаулы тілінде жазылады. Бұл тіл барлық ДББЖ-де құпталған. Filter қасиетінде жазылған мәнді Delphi ортасы автоматты түрде SQL сұранымына айналдырады да қай ДББЖ-н қолданып отырсаңыз, сол типке сәйкес орындалады. Программаны орындауға жібергенде DBGrid тізімінде шартты қанағаттандыратын жазулар ғана шығады. Мысалы; “Wares.db” және “Order.db“ кестелерінде сүзу операциясын жүргізу керек болсын. 1. Қалыпқа тақырыптары “тауар атауы бойынша”, “тауар бағасы бойынша”, “Тапсырысдар саны бойынша” деп аталатын үш TradioButton компоненттерін, “Мән” деп аталатын Tlabel компонентін, деректерді енгізу үшін Tedit компонентін, “Сүзу” және “Сүзуді алып тастау” деп аталатын екі Tbutton компоненттерін орналастырамыз. 2. Код көмегімен Filter қасиетіне шарт береміз. Filter қасиеті – деректерді сүзіп шығару шарты. Filtered – сүзуді орындау. 3. Tbutton OnClick Begin Table1.Active:=False; Table1.Filtered:=False; Table2.Active:=False; Table2.Filtered:=False; If RadioButton1.Checked=true then begin Table1.Filter:=’Name’+’ ‘ +Edit1.Text+’ ‘; End; If RadioButton2.Checked=true then begin Table1.Filter:=’Price’+’ ‘ +Edit1.Text+’ ‘; End; If RadioButton3.Checked=true then begin Table1.Filter:=’Amount=’+’ ‘ +Edit1.Text+’ ‘; End; Table1.Active:=True; Table1.Filtered:= True; Table2.Active:= True; Table2.Filtered:= True; End; Тапсырма: 1. Өз құрған деректер базаңыз бойынша жазуларға, өрсітерге фильтр операциясын қолдануды көрсетіңіз. Машықтану сабағы №17-20. “Сұраныс құру” . 1. Сұраныс құру компоненті Tquery: DataAccess панелінде орналасқан Tquery компоненті бірнеше кестелерден қажетті жазуларды шығарып алуға көмектеседі. Ал нәтижесінде алынған деректермен жұмыс Ttable компонентімен орындалады. Сұраныс құруда Structured Query Language (SQL) тілінің маңызы зор. SQL операторлары программалық кодтан оырндалады. Tquery компонентінің SQL қасиетінде операторды жазып көрсетуге болады., оны орындау үшін ExecSQL әдісі қолданылады. SELECT операторы SQL тілінің негізгі операторы болып табылады. Ол бірнеше кестеден берілген шартты қанағаттандыратын жазуларды алып шығарады. Оператордың жазылуы келесідей: SELECT өрістер тізімі FROM кесте атауы; Мысалы: SELECT Name, Salary FROM Client.db . Паскаль тіліндегідей Select, From сөздері SQL тілінің резервтегі кілттік қызметші сөздері ретінде қабылданған. SQL операторларын бас әріптермен жазу керек. EnterSQL (SQL тілінің операторларын енгізу) бөлігінде жоғарыдағы жолды жазып, Execute Query (сұранымды орындау) батырмасын бассақ екі өрістен тұратын уақытша деректер жиыны деп аталатын деректер кестесін аламыз. Егер сұранысқа барлық өрістерді енгізу керек болса, * символын көрсетеді. Мысалы: Select * From Client.db Шарт бойынша деректерді жинақтау үшін Where қызметші сөзінен кейін Паскаль тілінде шартты өрнекті көрсету керек. Өрнекте мына салыстыру таңбалары: <, > =, >=, <=, логикалық операциялар: Or, AND, NOT қолданылады. Жалпы жазылуы: SELECT өрістер тізімі FROM кесте атауы WHERE шарт; Мысалы: SELECT * FROM Client.db WHERE Cash>=120000 and Cash<=1000000 Структуралы сұраныстар тілі SQL Мысалмен қарастырамыз: Client.db кестесінде сұраныс құру керек болсын. 1. DataAccess панелінен Form1 қалыбына Tquery компонентін орналастырамыз. Ол Ttable компонентінің онына қолданылады. 2. Қалыпқа TDBGrid, TdataSource компоненттерін орналастырамыз. Қасиеттері: 1) TdataSource:Dataset - Query1 мәнін береміз. 2) Query1 компоненті үшін DataBaseName - Firma1 болсын. 3. Объектілер инспекторы терезесінде SQL қасиетіндегі “…” батырмасын басамыз. Бұл жолда SQL тіліндегі команданы жазамыз. Мысалы: А) SELECT ClientsName.Salary FROM Client.db – фамилия мен жалақысы туралы деректер алынсын деп OK батырмасын басамыз. 4. Query1 компонентінің Active қасиетін True дейміз. Сұранымды қосымшада құру Мысалмен қарастырамыз: 1. Жаңа қосымша құрамыз. 2. Қалыпта TDBGrid, Tquery, TdataSource компоненттерін орналастырамыз. Олардың қасиеттерін көрсетеміз. Client.db кестесін қолданайық. 3. Барлық сатып алушы клиенттер шығару керек болсын. Қалыпқа Tbutton компонентін орналастырып “Filter” деп атаймыз. Tedit өрісіне сатып алушы фамилиясын енгізгенде осы клиент үшін барлық деректі торкөз түрінде шығаруы керек болсын. Tquery компонентінің Append қасиетін қолданамыз. 4. “ Filter” компонентін басу оқиғасына программалық код жазамыз: Begin If Edit1.Tet<>’ ‘ then Begin Query1.Active:=False; Query1.SQL.Clear; Query1.SQL.Append(‘select client.db where Name.Like’+’ ’+ Edit1.Text+’ ’); Query1.Active:=True; End; Else Begin Query1.Active:=False; Query1.SQL.Clear; Query1.SQL.Append(‘select * from client.db); Query1.Active:=True; End; End; 5. Қосымшаны орындауға жіберіп фамилияны енгізген соң “Filter” батырмасын басамыз. ! Ескерту. Фамилияны жартылай жазуға болады. ! Ескерту. Жаңа сұраным құру үшін Edit1 өрісін тазалап қайтадан “Filter” батырмасын басу керек. Сонда барлық өрістер шығады. Тапсырмалар: 1. Деректер базасы бір бірімен байланысатын екі немесе одан көп кестелерден тұрсын. Бірнеше кестелер арасында байланыс орнату. Схемасын көрсету. 2. Деректер базасы бойынша сұраныстардың түрлерін құрып көрсету: - қарапайым сұраныс құру. - сұранысты компоненттер көмегімен құру. - сұраныс құрудың программалық кодын қолдану. - барлық деректерді қолданып толық нәтижелі сұраныс құру. Машықтану сабағы №21-26. “Кестеде іздеу” Үлкен кестелерден белгілі бір жазуларды таңдау қажет болса оларды алдымен іздеп тауып алған дұрыс. Іздеу операциясы мына әдіспен орындалады: Function.Locate(const KeyFields: string; const KeyValues: Variant; Options: TlocateOptions) : boolean; Бұл әдісте параметрлер ретінде өрістер атауралы алынады. Мысал қарастырайық. Client.db кестесінде іздеу операциясын қолдану керек болсын. 1. Form1 қалыбында тақырыптары «адам есімі бойынша іздеу», «телефон номері бойынша іздеу», «Адрес бойынша іздеу» болатын үш TradioButton компоненттерін, «Іздеу шарты» деп аталатын Tlabel компонентін, деректерді енгізуге арналған Tedit компонентін, «Іздеу» деп аталатын Tbutton компонентін орналастырамыз. 2. Locate әдісін қолданамыз. Келесі ретпен жазамыз: 1) кілттік өріс 2) іздеуге жататын дерек қайдан алынады 3) іздеу параметрлері: а) LoCaseInsensitive – бас әріптер есепке алынбайды б) LoPartialKey – дербес кілт 3. «Іздеу» компонентіне программалық код жазамыз: Var KeyField:string; Begin If RadioButton1.Checked=treu then Begin KeyField:= ‘ClientName’; End; If RadioButton2.Checked=True then begin KeyField:=’Phone’; End; If RadioButton3.Checked=True then begin KeyField:=’Adress’; End; Table1.Locate(KeyField.Edit1.Text, [LoCaseInsensitive.LoPartialKey]); End; Тапсырма: 1. Деректер базасында белгілі бір шарттарды қанағаттандыратын өрістер жазуларын іздеу операцияларын көрсету: - біртіндеп іздеу - бинарлы іздеу программалық кодтарын құру. Машықтану сабағы №27-30 . “Есеп құру” Есеп – мәліметтер қорындағы жазулардан құжат түрінде аяқталған нәтиже береді. Ол нәтижені бірден принтерге жіберуге болады. Qreport (Есеп) панелінен TquickRep 3.0.5. компонентін құру осы проблеманы шешеді. Qreport панелінің басқа да компоненттері есептің қажетті элементтерін көрсетуге көмектеседі. Әр компоненттің Band деп аталатын жолағы болады. Есепте келесі негізгі компоненттер қолданылады: Есеп жолағы компоненті TQRBand: Есепте белгілі бір элементтерді орналастыру, топтау бейнелеуін көрсетеді. TquickRep бейнелеуді көрнекі түрде орындайды. Есеп тақырыбы компоненті TQRLabel: Tlabel компонентіне ұқсас. Есепте қажетінше мәтін жазуға көмектеседі. Шығару өрісі компоненті TQRDBText: Деректер жиынынан өріс мәндерін шығару үшін қолданылады. Деректер жиыны DataSet қасиетінде көрсетіледі. Ал қажетті белгілі бір өріс DataField қасиетімен көрсетіледі. Компонент орналасқан жолақ мәні BandType - rbDetail болуы керек. BandType қасиетінің одан басқа да мәндері бар: RbTitle – есеп тақырыбы RbPageHeader – жоғарғы колонтитул RbDetail – жазу тақырыбы RbPageFooter – төменгі колонтитул RbSummary – есеп қортындысы RbColumnHeader – баған тақырыбы RbGroupFooter – бөлім тақырыбы RbGroupHeader –бөлім қортындысы Алдын ала қарау компоненті TQRPreview: Құрылған есепті баспаға шығармай тұрып алдын ала қарауға көмектеседі. Ол .шін OnPreview оқиғасына Preview әдісін шақырады. Есеп құруға мысал келтірейік: “Тауарлар”, “Клиенттер”, “Тапсырысдар” кестелерін қолданамыз. Ол үшін жаңа қалып құрамыз. Себебі әр есеп әр терезеде құрылады. 1. File – New Form командасын орындаймыз. Unit1 және Unit2 модульдерін байланыстырамыз. 2. Qreport панелінен Form2 қалыбына QuickRep – жылдам есеп компонентін орналастырамыз. QuickRep1 қасиетін көрсетеміз. 3. DataSet - Table1 деп қолданылатын кестені көрсетеміз. 4. Bands қасиетінде “+” батырмасын басамыз: А) HasTitle - есеп тақырыбына берілетін облыс. Тақырыпты Qreport панеліндегі QRLabel1 компонентінің көмегімен жазамыз. Б) HasColumnHeader – есепте көрінетін өрістер атауларына берілетін облыс. В) HasDetail – кестелерден алынатын деректерге бөлінетін облыс (детализация облысы деп аталады). Оны көрнекілеу үшін QRShape1 компонентін қолданады. 5. Кестеден деректерді шақыру QRDBText компонентінің көмегімен орындалады. Оның екі қасиетін көрсетеміз: А) DataSet - Table1 деп. Б) DataField - Name, Price, т.б. деп өріс атауларын көрсетеміз. 6. Құрыған есепті көру үшін контекстік мәзірден Preview командасын орындаймыз. Пайда болған терезеде PrintPreview батырмасын басамыз 7. Есеп облыстарының келесі қасиеттері бар: 1) HasPageFooter – төменгі колонтитул 2) HasPageHeader – жоғарғы колонтитул, қосымша QRLabel1, QRLabel2 компоненттерін қолданып, “Фирма1” дейміз 8. Есептің жалпы қасиеттері: 1) Options - “+” 2) FirstPageHeader – бірінші бетте жоғарғы колонтитул бар ма, көрсету (True немесе False). 3) LastPageFooter - соңғы бетте төменгі колонтитул бар ма, көрсету (True немесе False) 4) HasSummary – қортынды жасау облысы True дейміз. QRLabel1, QrLabel2 компоненттерін орналастырып «Сатып алушы клиенттер саны» т.б. деп жазамыз 9. Form1 қалыбында “Қарау” батырмасын орналастырып, оны басқанда есеп құратын программалық кодта Preview әдісін жазамыз: Begin If Radiogroup1.ItemIndex=0 then Begin Form2.QRLabel14.Caption:=DatetoSte(Date); Form2.QRLabel16.Caption:=TimetoSte(Time); Form2.QRLabel20.Caption:=IntToSte(Table1.RecordCount); Form2.QuickRep1.Preview; End; Тапсырмалар: 1. Деректер базасы бойынша белгілі бір есеп құру. 2. Form1 қалыбында “принтерге шығару” деген атаумен Button2 батырмасын орналастырып, оны басқанда есепті принтерге шығаратын программалық кодты өз беттеріңізбен жазыңыздар. Print әдісі қолданылады. Жалпы есеп құру Мысалмен қарастырайық: Байланыстырылған «Тауарлар», «Клиенттер», «Тапсырысдар» кестелерін қолданамыз. 1. Жаңа қалып құрамыз. 2. Qreport панелінен қалыпқа QRSubDetail1 компонетін орналастырамыз. Бұл қосымша деректерді детализациялау үшін бөлінетін облысты көрсету үшін қажет. Қасиеттерін қөрсетеміз: 1) DataSet – LinkedTable дейміз 2) QRSubDetail1 облысында DBText12, 13, …, Label12, 13, … т.б. компоненттерді орналастырамыз. Атауларын береміз. 3) Барлық DBText12, 13, … компоненттерінің DataSet, DataField қасиеттерін анықтаймыз. 3. Есепті көру ұшін контекстік мәзірді шығарып Preview командасын орындаймыз да, шыққан терезеде PrintPreview командасын орындаймыз. Тапсырмалар: Деректер базасының шектеулі атрибуттарын қолданып есеп құру. Деректер базасын қолданып есепті құрудың әдістерін көрсету. Есеп жолағы компонентін қолданып есеп құру. Есеп тақырыбы компонентін қолданып есеп құру. Алдын ала қарау компонентін қолданып есеп құру. 3. СТУДЕНТТЕРДІҢ ӨЗДІК ЖҰМЫСЫ 3.1. сӨж Тапсырмалары 1. Unit1.pas редактор коды терезесі 2. Компаненттер қосымшасы 3. Standard қосымшасы 4. Additional қосымшасы 5. Win32 қосымшасы 6. Dialogs қосымшасы 7. Диалогтық функциялар мен процедуралар 8. Файлдық жүйедегі жұмыс үшін 9. Нақты сандармен жұмыс үшін 10. Айналдыру функциялары мен процедуралары 11. Реттік мәндермен жұмыс үшін 12. Статистикалық функциялар мен процедуралар 13. Char жолымен жұмыс істеу функциялары 14. Тригонометриялық функциялар мен процедуралар СӨЖ-ні жүргізу түрі: Тақырыптар бойынша сұрақтарға ауызша және жазбаша жауаптар берілуі керек. 3.2. СОӨЖ тапсырмалары: Дельфи қосымшасын қолданып 1- таблицада келтірілген деректер базаларының тақырыптары бойынша өрістерді өздеріңіз анықтап деректер базасын құру.Атрибуттар атауларын және қасиеттерін өздеріңіз анықтаңыз. Оны кемінде 10-15 жазумен толтырыңыз. Деректер базасының әр атрибутына сәйкес қалыпқа компонент орналастырып, олардың қасиетін анықтаңыз. ТАБЛИЦА №1 |Вариант |Деректер базаларының тақырыптары | |№ | | |1 |Мектепте жоғарғы сыныптағы оқушылар және олардың оқу үлгерімі туралы| |2 |Мектептегі қызметкерлер структурасы туралы | |3 |Мектепте төменгі сыныптағы оқушылар және олардың оқу үлгерімі | | |туралы | |4 |«Трансаэро» компаниясының қызметі туралы | |5 |«Темір жол» кестесі туралы | |6 |Кітапханадағы әдебиеттер құрылымы туралы | |7 |Кітапханадағы қызметкерлер туралы | |8 |Студенттердің ГТО нормасы туралы | |9 |Қазақстанның футбол командалары және олардың көрсеткіштері туралы | |10 |Қазақстанның хоккей командасының ойындары мен ойыншылары туралы | |11 |Бала бақша қызметі туралы | |12 |«Орифлейм» косметикамен айналысу фирмасының қызметі туралы | |13 |Университеттің профессорлық-оқытушылық құрамы туралы | |14 |Университеттің администраторлық қызметі туралы | |15 | Әуе жолы кестесі туралы | |16 |Жоғарғы оқу орындарын тәмәмдаушыларды тарату жұмыстары бойынша | |17 |Студенттердің стипендия алу структурасы бойынша | |18 |Сынақ - Емтихан тапсыру ведомосы туралы | |19 |Спорттың бір түрі бойынша жарыс қортындысы туралы | |20 |Университеттің күндізгі оқу бөлімі бойынша студенттік құрамы туралы | |21 |Сиднейде өткен олимпиада қортындысы туралы | |22 |Кітап сатумен айналысатын фирмалар туралы ақпарат туралы | |23 |Бір мекеменің кадрлар бөлімінің жұмыс структурасы туралы | СОӨЖ-ні жүргізу түрі: Осы тапсырмаларды зертханалық сабақтардың тақырыптары бойынша орындау керек. ----------------------- Деректер базасы База көшірмесі ДБ-мен жұмыс үшін қосымша ДБ ядросы Желілік сервер Қолданушы компьютері Деректер базасы Деректер базасының сервері ДБ (Клиент)-мен жұмыс үшін қосымша ДБ ядросы Қашықтатылған сервер Қолданушы компьютері 1-деңгей 2-деңгей 3-деңгей А В1 В2 В3 В4 В5 С1 С2 С3 С4 С5 С6 С7 С8 Роза Асем Қалам #11296 Клиенттер Қызметкерлер Товарлар Тапсырыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz