15.6-суретте көрсетілгендей етіп есепберудің статикалық текс аудандарын толтырамыз.
Сурет-15.6. Тауар бойынша топталған есепберу макеті
№4 формасында”Группа” баспасын басу арқылы алдын ала көру терезесін шақырамыз. №4 формадағы TButton компонентін қосамыз, батырмаға уақиға өңдеушісі батырмасын басамыз OnClick:
Form7. QuickRep1.Preview;
15.7-суретте бір топтың подвалы көрсетілген – онда материалдық суммалық кірісі туралы ақпарат шығарылады.
Сурет -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-суретте көрсетілгендей .
Сурет-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-суретте алдын ала көру терезесінде қортынды есепберу көрсетілген.
Сурет-15.9. Тауар бойынша есеп беру қорытынды мәнмен
Есепберуді құруды жалғастырамыз. QRBand4 өрісіне TQRLabel (аты QRLabel8) компонентін орналастырамыз, Caption қасиетін "Итого:"-ға өзгертеміз: Тағы бір TQRExpr (аты QRExpr1) компонентін қосып және Expression қасиетінің мәнін SUM(Table1.Stoim) формасын құрайтынын анықтаймыз.
2. ЗЕРТХАНАЛЫҚ САБАҚТАР
№1 – зертханалық жұмыс.
«Мәліметтер қоры кестесімен жұмыс» (2 сағ.).
Мәліметтер қорын құру
Қолданылатын мәліметтер қоры бірнеше кестелерден тұрады. Келесі қадамда белгілі бір ДББЖ мен мәліметтер қорының архитектурасын таңдау керек. Ол үшін көбіне локальды ДББЖ алынады (Мысалы: Paradox7). Мәліметтер қорын жеке қапшықта (каталогта) сақтау керек. Қапшық атауын «Alias» деп аталатын бүркеншік атаумен беруге де болады. Алиас қапшық орналасқан жолдың жазылуын, ізделу уақытын қысқартады.
Мысалы: Firma1 каталогын оның ішінде Firma1 мәліметтер қорын құру керек болсын.
Жоғарғы мәзірдің TOOLS – DATABASEDESKTOP командасын орындаймыз.
Пайда болған терезеде TOOLS – ALIASMANAGER – NEW командасын орындап мәліметтер қорының атауын енгіземіз, мәліметтер қорының атауы мен қапшық атауы бірдей бола береді, сондықтан Firma1 деп енгіземіз.
Осы терезенің драйвер типі жолында DRIVERTYPE – STANDART деп көрсетеміз.
Осы терезедегі BROWSE батырмасын басып құрылған қапшық жолын көрсетеміз (C:\ProgramFiles\Borland\Delphi\Project\Firma1) сосын ОК батырмасын басамыз.
Алиасты BDE-ге жіберу керек пе? Сұрағына ИӘ деп жауап береміз.
Жаңа кесте құру:
File – New – Table командасын орындаймыз.
Кесте форматын таңдау үшін TableType жолында Paradox7 дегенді көрсетіп OK батырмасын басамыз.
Келесі терезеде кестенің құрылымын анықтаймыз. Кестенің құрылымы кестеге енетін өріс атауларын (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 бөлігінде жұлдызшамен белгіленеді.
Осы терезеде өрістердің қасиеттері көрсетіледі:
Required Field – міндетті түрдегі өріс.
Minimum Value – минималды мәні (сандық әрістер үшін).
Maximum Value – максималды мәні (сандық әрістер үшін).
Default Value – үндемеген немесе атап көрсетпеген жағдайда шығатын мән.
Picture – енгізу маскасы.
Кестені сақтау үшін Save As батырмасын басып шыққан терезеде файл атауын (мысалы Client.db), алиас атауын (мысалы Firma1) көрсетеміз де сақтаймыз.
DataAccess компоненттер панелінен Ttable компонентін қалыпқа орналастырамыз. Осы объектіні белгілеп ObjectInspector терезесінде компонент қасиетін көрсетеміз:
Мәліметтер қорының атауы DatabaseName жолында жазылады (Мысалы MyBase).
Ttable компонентімен байланысқа түсетін кестені көрсету TableName жолында жазылады (Мысалы: Client.db, Қосымшада келтірілген).
Осы кестеге программа арқылы қатынасу керек болса Active жолында True деп жазамыз.
Осы операциялардан кейн қалыпқа орнатылған компонент көрсетілген мәліметтер қоры кестесіндегі деректермен байланысады. Бірақ байланысты бірден тура осылай орнатпай, аралық деңгейдегі деректер көзі деп аталатын TdataSource компонентін де қолдануға болады. Әрбір деректер көзі деректер модулінде орналастырылғаннан кейін белгілі бір кестемен DataSet қасиеті арқылы байланысады.
Тапсырмалар:
Дельфи қосымшасында деректер базасымен жұмыс неден басталатынын көрсетіңіз.
Дельфи қосымшасын қолданып 1- таблицада келтірілген деректер базаларының тақырыптары бойынша өрістерді өздеріңіз анықтап деректер базасын құру.Атрибуттар атауларын және қасиеттерін өздеріңіз анықтаңыз. Оны кемінде 10-15 жазумен толтырыңыз.
Құрылған деректер базасын арнаулы жаңа қапшыққа сақтаңыз.
Деректер базасының әр атрибутына сәйкес қалыпқа компонент орналастырып, олардың қасиетін анықтаңыз.
№2 – зертханалық жұмыс.
«Мәліметтерді өңдеуге қолданылатын компоненттер» (2 сағ.).
Деректер кестесі деп аталатын TDGrid компоненті
Мәліметтер қоры кестесіндегі жазуларды өшіру, жөндеу, жаңа жазу қосу керек болса ол үшін программалық код жазудың қажеті жоқ, қалыпқа DataControls (деректерді басқару элементтері) деп аталатын панельде орналасқан TDGrid компонентін орналастырып, DataSource қасиетінде қажетті деректер көзін көрсету керек.
Навигатор компоненті TDBNavigator
Бұл компонент кестенің жазуларын навигациялау үшін қолданылады. Навигация жазу бойымен жылжу дегенді білдіреді. Бұл компонент 10 батырмадан тұрады:
First – бірінші жазуға жылжу
Prior – алдыңғы жазуға жылжу
Next – келесі жазуға жылжу
Last – соңғы жазуға жылжу
Insert – көрсеткіш орналасқан жазу орнына жаңа жазу қою
Delete – ағымдағы жазуды өшіру, егер ConfirmDelete қасиетін True деп қойса өшіруді орындауды құптау хабарламасы шығады.
Edit – ағымдағы жазуды жөндеу
Post – кестеге енгізілген өзгертулерді сақтау
Cansel –енгізілген өзгертулерді сақтамау
Refresh – мәліметтер қорынан деректерді жаңадан оқып кестенің жазуларын жаңарту.
Деректер тақырыбы (надпись) компоненті TDBText:
Ұзақ мәтін сақталған өріс жазуларын көрсету, өзгерту үшін қолданылады. Tlabel компонентіне ұқсас. DataSource қасиетінде деректер көзі көрсетіледі, DataField қасиетінде қолданылатын өріс көрсетіледі.
Жөндеу өрісі компоненті TDBEdit:
Ағымдағы жазуды өзгерту, көрсету үшін қолданылады. Алдыңғы компонентке ұқсас. Қосымша қасиеті ReadOnly қасиетін True десе кестенің жазулары өзгертуді қабылдамайды.
Бейне компоненті TDBImage:
Мәліметтер қорында сақталған бейнелерді, суреттерді экранға шығаруды орындайды. Егер AuttoDisplay қасиеті True десе өрістегі бейне автоматты түрде экранда көрінеді. Егер ол қасиет көрсетілмеген болса LoadMemo әдісін шақыру арқылы орындауға болады. Бейнені өріске қою, көбейту, т.б. операциялар Picture қасиетінде көрсетіледі.
Деректер тізімін қолдану компоненті TDBComboBox:
Бұл компонент ашылған тізімнен деректі таңдау, қолдануды орындайды. Енгізу облысындағы мәтін жиыны қажетті жазуға жылдам жылжу, немесе тізімде жоқ элементті енгізуге мүмкіндік береді. ComboBox компонентіне ұқсас, тек қосымша қасиеті Style жолында TcomboBoxStyle арқылы тізімге енетін элементтердің бейнелену стилі көрсетіледі.
Деректер жалаушасы (флажок) компоненті TDBCheckBox:
Бұл компонент көмегімен екі жағдайдың бірін қабылдайтын өрістердің мәндерін көрсетуге болады. Компонент логикалық мән қабылдайды. Өрістің қандай жағдайда тұрғанын және оның мәнін өзгертуге көмектеседі.
Деректерді топтап ауыстырып-қосу (группа переключателей) компоненті TDBRadioGroup:
Бұл компонент өрістің шектелген міндер жиынын көрнекі түрде шығаруды орындайды. Әр мәнге ауыстырып қосу тобының біреуін сәйкестендіруге болады. Ауыстырып қосу атауларының тізімі Items қасиетіне енгізіледі, оның типі Tstrings болады. Тізімге сәйкес мәндер Values қасиетінде сақталады, типі String болады.
Кестені шығару
Кестені экранға екі түрде шығаруға болады: торкөз түрінде, жеке өрістер түрінде. Мысалмен көрсетсек:
А) “Wares” кестесін торкөз түрінде шығару керек болсын.
1. DataAccess панелінен қалыпқа Ttable компонентін орналастырамыз. Қасиеттерін береміз:
Мәліметтер қорының атауы DataBaseName - Firma1 деп.
Кесте атауын TableName – Wares.db деп.
Кесте активті болсын Active - True деп.
2. DataAccess панелінен қалыпқа TdataSource компонентін орналастырамыз да қасиетін көрсетеміз:
Керекті кестені көрсету DataSet - Table1 деп.
3. DataControl панелінен қалыпқа TDBGrid компонентін орналастырамыз, ол кестеден деректерді торкөз түрінде шығарады. Қасиеттерін көрсетеміз.
Байланыстырылатын кестені көрсету DataSource - DataSourse1 деп.
1. Қалыпқа Ttable, TdataSource компоненттерін орналастырамыз. А) мысалындағы сияқты компоненттер қасиеттерін көрсетеміз.
2. DataControl панелінен қалыпқа TDBGrid компонентінің орнына 9 TDBEdit компоненттерін , бір TDBText, бір TDBMemo компоненттерін орналастырамыз да қасиеттерін көрсетеміз:
Деректер көзін көрсету үшін DataSource - DataSource1 деп.
Шығарылатын өрістерді көрсету үшін DataField жолында мысалы: Name, Adress, ClientsName, DateOfBirth, Age т.б. деп
Адамның жасын есептеу үшін есептеу өрісін TDBText формуласын береміз.
Адамдарға қосымша мағлұмат шығару үшін TDBMemo - Description деп.
Қалыпқа Tlabel компоненттерін орналастырған соң өрістердің атауларын береміз.
TDBRadioGroup компоненті үшін тақырып береміз. Мысалы “Клиент жынысы”. DataSource, DataField қасиеттерінен басқа Items қасиеті жолында мәндерді енгіземіз: әйел, еркек деп.
TDBComboBox компонентінің тақырыбын семьялық ағдайы деп береміз. DataSource DataField қасиеттерінен басқа Items қасиеті жолында “семьясы бар, бойдақ, ажырасқан” мәндерін енгіземіз.
TDBCheckBox компонентінің Caption қасиетіне “Балалары” деп жазамыз. Алдыңғы мысалдан белгілі DataSource, DataField қасиеттерін көрсетеміз.
DataControls панелінен TDBNavigator компонентін орналастырып, қасиеттерін береміз:
DataSource - DataSource1 деп
Hints - көмекші хабарлама шығару массиві, орысшаға аударуға болады.
ShowHint – True деп
DataControls панелінен TDBImage компонентін орналастырып қасиеттерін береміз:
Stretch - True деп
Dialogs панелінен OpenPictureDialog1 компонентін қалыпқа әкелеміз.
DBImage1 компонентін белгілеп, OnDblClick оқиғасына программалық код жазамыз:
Достарыңызбен бөлісу: |