1 –шi зертханалық жұмыс Тақырыбы: «Қойма» деректер қорын басқару жүйесін құру Зертханалық жұмыстың мақсаты



бет7/18
Дата08.06.2018
өлшемі2 Mb.
#41782
1   2   3   4   5   6   7   8   9   10   ...   18

Ескерту. Кейбір кездерде есептелетін өрістерге басқа кестелер өрістерінде болмайтын мәндерді меншіктеу қажеттілігі болады. Басқаша айтқанда, кейде есептелетін өріске форманың кейбір айнымалыларының мәндерін жазуға тиімді болады. Мысалы, біз Tbl мәліметтер жиынына жазбаларды қосайық, кейбір есептеу алгоритмі бойынша Summa өрісінің мәнін есептейміз. Summa өрісіне есептеулер жүргізу үшін, TekOstatok айнымалысы қолдансын. TekOstatok мәнін біз TblTO есептелетін өріске енгізетін болайық.

Мұнда бір қиындық туындайды: мәнді есептелетің өріске енгізілуі OnCalcFields өңдеу процедурасы арқылы жүзеге асады және бұл TekOstatok локалды айнымалы мәні жоғалтылған кезінде болады.

Осы жағдайда Tbl-ге қосылатын жазулар, алгоритм жұмысы үрдісінде, локалды айнымалыларды еске сақтау кейбір динамикалық тізімінде тура келеді, ал соннан соң осы элементтердің мәндерін TblTO өрісіне меншіктеп, оның қажетті элементтерін OnCalcFields оқиғалар өңдеуінде шығару.

Экрандық формада әртүрлі кестелер мәліметтерін бейнелеу үшін SQL-сұраныстарды қолдану.

Бірнеше кестелерді бейнелеуіне арналған бір форманы құрайық. Ол үшін, TDataModule5 контейнерінде TQuery компонентін (компоненттер палитрасының Data Access парағы) орналастырамыз. Өз бетінше оның аты Query1. Оның DatabaseName қасиетін PRIMER мәніне орнатамыз. TDataSource (атауы TDataSource4) компонентін орналастырамыз. Оның DataSet қасиетін Query1 мәніне орнатамыз.

№4 формада TDBGrid компонентін орналастырамыз. Оның DataSource қасиетін DataSource4 деп белгілейміз.

Query1 компоненті үшін, объектілер инспекторында SQL қасиетін табамыз да, батырмасын шертеміз. Пайда болған редактор терезесінде 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

ОК батырмасын шертеміз.



Осыдан кейін, Query1.Active қасиетін True мәніне орнатамыз. Query1 мәліметтер жиыны қоймаға келіп түсетін материалдар жөнінде мәліметтер құралған. Осы жиынның жазбасының құрамында DatPrih (келу мерзімі), Material (Материал аты), Kolvo (келіп түскен мөлшер), Zena (бір материал үшін орнатылған бағасы), Stoim (келіп түскен материалдың бағасы) өрістері бар. SQL қасиетіндегі сұраныс мәтінінен көрінгендей, PRIMER МҚ мәліметтер жиыны екі кестеден «жиналады», олар Materialy.DB және Prihod.DB. Осыдан осы МҚ кестелерінің жазулары, бірдей мәнді Material өрісінен жиналады (33-сурет).

33-сурет – Әртүрлі кестелерден мәліметтерді бір кестеге біріктіру
№1 формадағы Отчет пунктінде келесі кодты енгіземіз:

Form1.Visible := False;

Form4.Visible := True;

Query1 мәліметтер жиынында жаңа жазуларды қосуға, жазуларды өзгертуге және жоюға болмайды. Ол бірнеше кестелерден жиналған жазбалар тек оқуға ғана арналғанг болып табылатындақтын, өзгертуге рұқсаты жоқ.



4.3.4. Есептік формаларды құру және олардың МҚ қатынау жасалуы.

Есептің жасалуы басқа формалармен қатар қарастыруға болады. Бірақ оның өзіндік ерекшеліктері мен қасиеттері болғандықтан, оны жеке бөлім ретінде қарастырамыз. Сонымен қатар, есептің құрылымын тіпті МҚБЖ –дан жеке де қарастыруға болады. Есептік форма құрамында үш түрлі компоненттер бар. Олар есептің кесте түріндегі экрандық формасы және мәтіні, қағаз тасымалдағыштарына шығарылатын есепті шығару, электронды түрде құрылымдалатын есептер.



4.3.5. Жүйе жұмысын тексеру және іске қосу

Жүйені іске қосу келесі команда арқылы жүзеге асады: Rиn|Rиn. Сонымен қатар, жүйені іске қосу F9 батырмасы арқылы жүзеге асады.

Егер жүйе істемей қалсы, немесе жұмысы тоқтап қалған жағдайда Rиn|Program Reset командасы арқылы ақаулықтарды жоюға болады.

Егер формалардың бейнелену реті сәйкес келмесе, оны Main Form жолындағы Proect|Options мәзір элементі Forms қосымшасы жарлығы көмегімен өзгертуге болады.



Бөлім бойынша қорытынды.

Қойылған талаптарға сай МҚБЖ құру келесіге сүйенеді:



  1. Мәзірге арналған экрандық форманы құрылымдау.

  2. МҚ бейнелеу үшін экрандық форманы құрылымдау. Сонымен:

  • Бір кестенің мәліметтерін бейнелеуіне арналға экрандық форманы құрылымдау;

  • Екі кестенің мәліметтерін бейнелеуіне арналға экрандық форманы құрылымдау (2 кестені бейнелеу, олардың байланысын ескермеу);

  • Экрандық форма құрамына есептелетін өрісті қосу;

  • SQL – сұраныстарды қолданып, экрандық форманы құру.

  1. МҚ мәліметтерді енгізуге арналған экрандық форма құру, сонымен қатар МҚ бойынша навигациялауға және басқаруға арналған батырмалардың құрылуы.

5.1. Есептерді құруға арналған компоненттер.

Delphi –дің QReport компоненттер палитрасында есеп құруға арналған жиырмадан аса компоненттер орналасқан. Олардың негізгілері келесі болып табылады:



TQuickRep, TQRBand, TQRSubDetail, TQRGroup, TQRLabel,

TQRDBText, TQRExpr, TQRSysDat, TQRMemo, TQRRichText,

TQRDBRich Text, TQRShape, TQRImage, TQRChart.

Осы компоненттердің бағыты келесі:



  1. TQuickRep барлық басқаларға базалық болып табылады, ол толығымен есептің тұрысын анықтайды. Басқа компоненттер есептің құрылымдық бөлігін анықтайды:

  2. TQRBand – мәліметтердің орналасуына арналған бастама, есеп титулы және т.с.с.;

Есеп негізінде TQRBand компоненттерінен құралады, олар келесіні жүзнгн асырады:

  • есеп тақырыпшасының аймағы;

  • парақ тақырыпшасының аймағы;

  • топ тақырыпшасының аймағы;

  • Бөлшектік мәліметтерді бейнелеуге арналған аймақ;

  • Парақтың төменгі жағының аймағы;

  • Есептің төменгі жағының аймағы.

  1. TQRSubDetail- Бағыңынқы кестенің, есепте бар байланыстың негізінде, Master-Detail байланысын орнатқан кезіндегі мәліметтері орналасқан аймағын анықтайды.

  2. TQRGroup – есепте мәліметтерді топтауға арналған;

  3. TQRLabel – есепте статистикалық мәтінді орналастыруға мүмкіндік береді;

TQRDBText – есепте мәліметтер жиынынын құрамын орналастыруға мүмкіндік береді;
6)
TQRExpr - өрнектердің нәтижесі болап табылатын, мәндерді шығаруға арналған;

7) TQRSysDate – есептегі мерзімді, күнді, уақытты, парақ нөмірін, кез-келген мәннің қайталану счетчигін шығаруға мүмкіндік береді;

  1. TQRMemo – есепте түсініктеме өрістерін шығаруға мүмкіндік береді;

  2. TQRRichText – Түзетілген түсініктемелерді есепте шығару үшін арналған.

  3. TQRDBRich Text - Түзетілген түсініктемелерді есепте шығару үшін арналған, олардың ақпарат көзі мәліметтер жиынының өрісі болып табылады;

  4. TQRShape – есепте графикалық фигураларды орналастыруға арналған, мысалы тіктөртбұрыш;

  5. TQRImage – есепте графикалық ақпаратты шығаруға арналған, оның ақпарат көзі мәліметтер жиынынын өрісі болып табылады;

  6. TQRChart – есеп графиктерін орналастыруға мүмкіндік береді;

TQuickRep компоненті

TQuickRep есептің мінездемесін және тұрысын анықтайды. Осы компонентті формаға орналыстырған кезде формада есеп торы пайда болады (34-сурет).

34-сурет – Есептің бос торы. TquickRep компонентін формада орналыстырғаннан кейін пайда болады

Кейін осы торда есептің құрылымдық бөліктері орналастырылады, мысалы, TQRBand тобы



35-сурет – Есеп компоненттері орналасқан есеп торы
TQuickRep компонентінің маңызды оқиғалары мен тәсілдерін атап шығамыз.

Берілген компоненттің қасиеті келесідей:



1.Property Bands: TquickRepBands.

Берілген қасиет логикалық мәндердің жиынтығынан (False/True) тұрады, олар жеке құраушылардың типін анықтайды:



  • HasColumnHeader - есеп берудің бағандар тақырыпшалары;

  • HasDetail – бөліктенген ақпарат;

  • HasPageFooter – беттің төменгі бөлігі (подвал);

  • HasPageHeader – беттің тақырыпшасы;

  • HasSummary – есеп берудің төменгі бөлігі (подвалы);

  • HasTille – есеп берудің тақырыпшасы.

2.Property DataSet: TdataSet.

Ол есептің құрылуы негізіндегі мәліметтер жиынына көрсетіледі. Әдетте есеп беру үшін, бір мәліметтер жиыны қолданылады.

Егер МҚ бірнеше кестесінен байланысқан ақпаратты шығару керек болса, оны SELECT операторы көмегімен бір МЖ-на қосады. Бұл жағдайда МЖ ретінде есеп беру үшін TQuery компонентін қолдануға болады. Бірнеше байланысқан МЖ-ның ақпаратын есеп беруге қосуға болады. Бұл жағдайда МЖ есебі ретінде Master-жиын көрсетіледі, ал бағыттау Detail-жиынына сәйкесінше TQRSubDetail компонентінде жүзеге асырылады.

Егер есеп беруге байланыспаған мәліметтер тобының ақпаратын қосу керек болса, онда композициялық есеп берушілер қолданылады, яғни басқа есеп берушілердің тобынан құралған.



3.Property Frame: TQRFrame.

Берілген қасиет есеп берудің қоршау параметрлерін анықтайды:



  • Color - қоршау сызығының түсі;

  • DrawBottom - сызықты астынан шығаруды, не шығармауды анықтайды;

  • DrawLeft- сызықты сол жағынан шығаруды, не шығармауды анықтайды;

  • DrawRight- сызықты оң жағынан шығаруды, не шығармауды анықтайды;

  • DrawTop- сызықты үстінен шығаруды, не шығармауды анықтайды;

  • Style – сызықтың стилін анықтайды;

  • Width - сызықтың жуандығын пиксельмен анықтайды;

4.Property Page: TQRPage – парақтың параметрлерін анықтайды.

5.Property PrinterSettings: TquickRepPrinterSettings – принтердің параметрлерін анықтайды.

6.Property PrintIfEmpty: Boolean - Есеп беруді оның ішінде мәлімет жоқ болса да баспаға беру керектігін көрсетеді (True);

Берілген компоненттің әдістері келесідей:



7.Procedure NewPage;

Берілген әдіс жаңа бетке көшуді орындайды. BeforePrint немесе AfterPrint есептер компоненттері оқиғаларды өңдеуде қолданылуы мүмкін және OnPrint, OnStartPage және OnEndPage оқиғаларды өңдеуде қолданылмайды.



8.Procedure Preview - есеп беруді алдын-ала қарау терезесіне шығарады.

Алдын-ала қарау терезесінде есеп берудің құрамын баспаға қалай шығатынын қарау үшін:



  • есепті тышқанның көмегімен таңдау;

  • тышқаннның оң жақ батырмасын басу;

  • шыққан мәзірден Preview элементін таңдау керек;

9. Procedure Print – есепті принтерде басып шығарады;

10. Procedure PrinterSetup - принтердің параметрлерін орнатуын қамтамасыз етеді.

Берілген компоненттің оқиғасы келесідей:



11.Property AfterPreview : TQRAfterPreviewEvent - есеп беруді алдын-ала қарау терезесі жабылғаннан кейін келеді.

12.Property AfterPrint: TQRAfterPrintEvent - есеп беруді баспаға шығарудан кейін келеді.

13.Property BeforePrint: TQRBeforePrintEvent - есепті алдын-ала қарау терезесі шығар алдында және есепті баспаға шығару алдында, есеп беруді генерациялау кезінде келеді.

14.Property OnEndPage : procedure(Sender : TObject) - есептің соңғы бетін генерациялауға дайындық кезінде келеді.

15.Property OnStartPage : procedure(Sender : TObject) - есептің бірінші бетін генерациялауға дайындық кезінде келеді.

TQRBand компоненті

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

Берілген компонент келесі қасиеттерге ие болады.



1.Рroperty BandType: TQRBandType - есеп компоненттерінің орналасу орнын және тәртібін анықтайды.

Бұл компоненттің мүмкін мәндері мынадай:



  1. rbTitle - есеп компонентінің тақырыпшасын анықтайды. TQRBand компонентінде орналасқан ақпарат, есептің басқа барлық бөліктерінің алдында орналасады. Бұл TQRBand компонентінің түрі есеп берутің bi тақырыпшалық ақпараты үшін қолданылады.

  2. rbPageHeader - бет тақырыпшасының компонентін анықтайды.

  3. rbDetail - бөліктік ақпараттың компоненті.

  4. rbPageFooter – бет подвалының компоненті. Есеп берудің әрбір беті үшін беттегі барлық мәліметтерден кейін шығарылады.

  5. rbSummary – есеп подвалының компоненті. Барлық басқа ақпараттан кейін есептің пост бетіне шығарады және есеп берудің ақырғы беттің алдына шығарылуы керек.

  6. rbGroupHeader - топтың тақырыпшалық компоненті. Есепте ақпараттың топталуы кезінде қолданылады. Жаңа топтың шығуы кезінде шығарылады.

  7. rbGroupFooter – топтың подподвалының компоненты. Есепте ақпараттың топталуы кезінде қолданылады.

  8. rbSubDetail - Master-Detail механизмінің көмегімен байланысқан есеп беруде екі немесе одан да көп ақпараттарды шығару кезінде бағыныңқы мәліметтер тобынан бөліктенген ақпаратты шығару үшін қажетті компонент. TQRSubDetail компонентін формада орналастыру кезенде TQRBand компоненті генерацияланғанда бұл мән компонентке автоматты түрде беріледі. Программа бұл мәнді BandType қасиетіне орналастырмауы керек.

  9. rbColumnHeader - бағандардың тақырыпшаларын орналастыру үшін керекті компонент. Есеп беруде беттің тақырыпшаларынан кейін әр бір бетте орналасады.

  10. rbOverlay - алдыңғы нұсқалы есептермен бірігуі үшін қолданылады.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   18




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет