Автор работы: Пользователь скрыл имя, 17 Декабря 2013 в 17:39, реферат
Мәліметтер қорының әр кестесі өрістердің жиынтығынан тұратын жеке құрылымға ие болады. Әр өрстің мәліметтерінің жиынтығы мәліметтің типін сипаттайтын мазмұнынан тұрады, оған анықталған орында мән сәйкес келуі тиіс.
Delphi тіліндегі мәліметтер қорынының қосымшасындағы әр жинаққа өзіне сәйкес объект тура келеді. Өрістің негізгі объектісі болып Tfield классы табылады, ол абстрактілі өріспен жұмыс жасауға да негізделген. Ол мәліметтердің типіне сәйкес келеді. Осы базалық классқа басқа класстар сәйкес келеді.
QReport палитра компоненттерінің бетінде есеп беруді құруға арналған, бірнеше он шақты компоненттер орналасқан.
Орталық компонент болып есеп берудің күйін толығымен анықтайтын, TQuickRep болып табылады. Басқа компоненттердің көмегімен есеп берудің құрамдық бөліктері құрылады.
TQRBand– мәліметтерді, тақырып аттарын, есеп беру титулдарын және т.б. орналастыруға арналған алдын ала дайындықтар.Есеп беру, негізінде TQRBandкомпоненттерінен құрылады, ол:
TQRStringsBand– TQRBandсияқты қолданылады.Itemsендірілген жолдар тізімімен ерекешеленеді. Оның құрамы басып-шығару режимі кезінде және алдын-ала қарау режимінде көрінеді, егер де TQRStringsBandкомпонентіне TQRExprкомпоненті салынған болса. Items-те әрбір жол үшін өзінің TQRStringsBandжолағы шығарылады.
TQRSubDetail – ішкіжолақ. Ата-аналық жолаққа жалғанады және оның кеңейтілуіне септігін тигізеді. Әрбір жолақ ата-аналық бола алады, егер де оның HasChildқасиетіне Trueмағынасын орнатса.
TQRGroup – есеп берудегі мәліметтерді топтау үшін қолданылады.
TQRLabel – есеп беруде кез келген мәтіндік жолды орналастыруға мүмкіндік береді.
TQRDBText – есеп беруге мәліметтер жинақтаудың мәтіндік алаңының құрамын шығару үшін қолданылады.
TQRExpr – айтылудың анықтау нәтижесі болып табылатын, мағыналарды шығару үшін қолданылады. Айтылуды анықтау алгоритмі осы компоненттің формула редакторы арқылы құрылады.
TQRSysData – есеп беруде жүйелік шамаларды шығаруға арналған: күн, уақыт, беттің нөмірі және т.б.
TQRMemo – есеп беруге көп беттік мәтінді орналастырады.
TQRExprMemo – көп беттік есептегіш алаңдарды құру үшін қолданылады.
TQRRichText – есеп беруге RTFформатындағы көп беттік мәтінді орналастырады.
TQRDBRichText – есеп беруде RTFформатындағы көпжолдық мәтіннен тұратын, НД жолдарын шығару үшін қолданылады.
TQRShape – есеп беруде графикалық фигуралады, мысалы, тіктөртбұрышты шығаруға арналған.
TQRImage – есеп беруде, негізгі көзі мәліметтер жинақтау алаңы болып табылатын, графикалық ақпаратты шығару үшін қолданылады.
TQRPreview – алдын-ала қараудың стандарттық емес терезелерін құруға арналған базалық компонент. Стандарттық терезе TQuickRepкомпонентінің Previewтәсілі көмегімен орындалады.
TQRXXXFilter – басып шығару кезінде есеп беруді мәтінге, HTMLбетіне түрлендіруге арналған сүзгіш клмпонент.
TQRChart – есеп беруге графиктерді енгізуге арналған.
Осы компоненті формаға орналастырған кезде мұнда есеп беру торы пайда болады (сурет 1). Ары қарай осы торда есеп берудің құрамыд бөліктері орналасады, мысалы TQRBandжолақтары (сурет 2).
Сурет - 1. Есеп берудің бос торы. Формада TQuickRep компоненті орналасқаннан кейңн құралады.
Сурет - 2. Есеп беру компоненттері орналасқан есеп беру торы
TQuickRepкомпоненттінің маңызды қасиеттерін, тәсілдерін және оқиғаларын қарастырайық.
Қасиет |
Тағайындалуы |
propertyBands: TQuickRepBands; |
Bandsобъектінде логикалық қасиеттер бар, оларға Trueмағынасын орнатқан кезде, есеп беруге: содержит логические свойства, которые после установки в них значений включают в отчет: HasColumnHeader– бағандартақырыбы; HasDetail– нақтылық ақпарат; HasPageFooter – беттің белдемесі (подвал); HasPageHeader– беттің тақырыбы; HasSummary– есеп берудің белдемесі (подвал); HasTitle– есеп берудің тақырыбы. |
property Dataset: TDataSet; |
Есеп беру құрылатын мәліметтер жинағын көрсетеді. Егер қосарланған ақпаратты бірнеше БД кестелерінен шығару керек болса, онда оны TQueryкомпонентінің көмегімен бір НД-да біріктіреді. Бірнеше қосарланған НД-дан ақпаратты есеп беруге қосуға болады, егер де осы НД-лар қосымшада басты-бағынышты қатынасымен байланысқан болса. Бұл жағдайда есеп беру НД-сі негізінде басты жинақ көрсетіледі, ал сәйкес келетін бағыныштыларға арналған сілтемелер TQRSubDetailкомпоненттерінде орындалады. Егер есеп беруге байланыспаған НД-дағы ақпаратты қосу керек болса, онда композитті есеп беру қолданылады, яғни басқа есеп беру топтарынан құралған есеп беру. |
property Frame: TQRFrame; |
Есеп берудің шектерінің параметрлерін анықтайды: Color– сызық түсі; DrawBottom– астындағы сызықтың болуы; DrawLeft– сол жақтағы сызықтың болуы; DrawRight– оң жақтағы сызықтың болуы; DrawTop– жоғарыда сызықтың болуы; Style– сызық үлгісі (тұтас, үзік (пунктирная)және т.с.с.); Width– пиксельдегі сызықтардың қалыңдығы. |
propertyOptions: TQuickReportOptions; |
Келесідей көптеген логикалық мағыналардан тұрады: HasFirstHeader– бірінші беттің тақырыбын басып-шығаруға рұқсат береді; HasLastFooter– соңғы беттің белдемесін (подвал) басып-шығаруға рұқсат береді; Compression– есеп беруді метафайлға шығару кезінде қысуға рұқсат береді. |
property Page: TQRPage; |
Есеп беру беттерінің параметрлерін анықтайды. Осы қиын қасиеттің барлық ішкі қасиеттері ReportSettingтерезесінде рұқсатталған (төменде қасиеттер редакотар терезесінен PagesizeжәнеMarginтоптары көрсетілген. |
property PrintIfEmpty: boolean; |
Егер есеп беруде мәліметтер болмаса оны басып-шығаруға рұқсат береді/рұқсат бермейді. |
property ReportTitle: String; |
Есеп берудің аты (оның тақырыбы емес!). Желілік басып-шығару тапсырмасында есеп берудің идентификациясы кезінде қолданылады, Data=ReportTitleкезінде QRSysDataкомпонентімен қайтарылады және бірнеше мүмкін болатын есеп берудің біреуінің жиынтығы үшін қолданылуы мүмкін. |
property ShowProgress: boolean; |
Есеп беру процессінің индикаторын көрсетуге рұқсат береді/рұқсат бермейді. |
propertySnapToGrid: boolean; |
Егер Trueболса, онда есеп беруде орналасатын компоненттер есеп берудің торына байланады. |
type TQRUnits = (Inches, MM, Pixels, Native, Characters); property Units: TQRUnits; |
Есеп берудегі арақашықтықтықты өлшеу шамаларын анықтайды: Inches– дюймдар; MM– миллиметрлер; Pixels– пиксельдер; Native–TQuickRep-діңішкі шамалары(0,1 мм-ге тең); Characters– мәтін таңбалары. |
property Zoom: Integer; |
Өңдеу деңгейіндегі есеп беруді көрсету масштабтарын анықтайды (қағаз бетіндегі оның мөлшерінің пайызында) 1..300 диапазонындағы мағынаға ие бола алады. Қасиеттің мағынасы есеп беруді басып-шығару кезінде немесе алдын ала қарастыру режимі кезінде ескерілмейді. |
Есеп берудің көптеген
қасиеттерін қасиеттер
Сурет 3. Есеп берудің параметрлерін орнату терзесі.
Paper size тобы беттің сипаттамаларын береді: оның форматы (A4 210 x 270 mm), енін (Width), ұзындығын (Length) жәнебасып-шығарудың бағытын – қағаз бетінің қысқа жағы бойынша (Portait) немесе ұзын жағы бойынша (Landscape).
Marginэлементтер тобы есеп берудің шекараларын көрсетеді: жоғарыдан (Top), төсеннен (Bottom), солдан (Left), оңнан (Right), сонымен қатар бағаналар саны (Numberofcolumns) және олардың арасындағы арақашықтық (ColumnSpace).
Otherтобының элементтерінің көмегімен шрифті (Font), оның биіктігін (Size) жәнеұзындықты өлшеудің қолданылатын шамасын беруге болады (Units).
Pageframeтобы шектің (рамка) қасиеттерін анықтайды: жоғарыда сызықтың болуы (Top), төменде (Bottom), сол жақта (Left), оң жақта (Right), сызықтың түсі (Color) және олардың қалыңдығын (Width).
Bandsтобы тақырыптың жолақтарын және белдемесінің бар болуын (Pageheader – беттің тақырыбы; Title – есеп берудің тақырыбы; Columnheader – бағналар тақырыбы; Detailband – нақты ақпарат үшін жолақ; Pagefooter – беттің белдемесі; Summary – есеп берудің белдемесі), сонымен қатар сәйкес келетін жолақтың биіктігін анықтайды(Lengthжолы таңдауды ауыстырып-қосқыштың оң жағында). Жолақтың түрін мен биіктігін таңдағаннан кейін ол есеп беруде пайда болады, егер де терезе OKбатырмасымен жабық болса немесе Applay батырмасы басылған болса. Print first page header жәнеPrint last page footer элементтері сәйкесінше бірінші беттегі тақырыпты және соңғы беттегі белдемені басып-шығаруды басқарады.
Тәсіл |
Тағайындалуы |
procedure NewColumn; |
Ақпараттың есеп берудің келесі бағанасында шығарылуын қамтамасыз етеді, ал егерде тек бір бағана анықталса, онда келесі бетте шығарылуын орындайды. |
procedure NewPage; |
Ақпараттың есеп берудің келесі бетінде шығарылуынорындайды. |
procedurePrepare; |
Есеп берудің файлға шығаруға дайындайды (төмендегі 1-ші ескертуді қара). |
procedurePreview; |
Алдын-ала қараудың стандартты терезесін шығарады (төменде 2-ші ескертуді қара). |
procedure Print; |
Есеп беруді принтерде басып-шығарады. |
procedure PrintBackGround; |
Есеп беруді фондық режимде басып-шығаруды бастайды (бөлек командалар ағынында). Басып-шығару аяқталғаннан кейін оқиғаларды өңдеуші OnAfterPrint шақырылады. |
procedure PrinterSetup; |
Принтерді орнату параметрлерінің стандартты терезесін шақырады. |
Ескерту 1.
Есеп беруді файлға шығару
үшін алдымен оны Prepare тәсілін
қолдану арқылы дайындау керек, сосын TQuickRep.QRPrinterобъектіндег
MyReport.Prepare;
MyReport.QRPrinter.Save(‘
MyReport.QRPrinter.Free;
MyReport.QRPrinter := NIL;
Ескерту 2.
Алдын-ала қараудың стандартты терезесі 4-ші суретте көрсетілген.
Сурет- 4. Есеп беруді алдын-ала қарау терезесі
Құрастыру деңгейінде алдын ала қарау терезесінен есеп берудің құрамын баспаға шығару кезіндегі күйін қарау үшін, QuickRep компонентініңкөмекші мәзірінен Previewопциясын таңдау керек. Айта кету керек, бұл жағдайда кейбір мәліметтер көрінбейді, мысалы есептелетін алңдар мағынасы. Олар тек орындалу кезінде шығарылады.
Терезенің құрал-саймандық батырмаларының тағайындалуы:
Есеп беруді, барлық беттері толығымен көрінетіндей етіп масштабтайды
Есеп беруді 1:1 масштабында көрсетеді.
Есеп беруді, беттің ені терезенің еніне сәйкес келетіндей етіп масштабтайды.
Есеп берудің бірінші (соңғы) бетін көрсетеді.
Есеп берудің алдыңғы бетін (келесі) көрсетеді.
Принтерді баптаудың стандартты терезесін шақырады (есеп беруді басады).
Есеп беруді файлда сақтайды (есеп беруді файлдан жүктейді).
Оқиға |
Тағайындалуы |
property AfterPreview : TQRAfterPreviewPrint; |
Есеп берудің алдын ала қарау терезесін жабу кезінде пайда болады. |
propertyAfterPrint: TQRAfterPrintEvent; |
Есеп беруді басып-шығарғаннан кейін немесе оның баспаға дайындығы кезінде басталады. |
property BeforePrint: TQRBeforePrintEvent; |
Есеп берудің генерациясы |
property OnEndPage: procedure (Sender: TObject); |
Есеп берудің соңғы бетінің
генерациясына дайындығы |
property OnNeedData: procedure (Sender: TObject; var MoreData: boolean); |
Есеп беруді, НД-дан алынған мәліметтерден емес, мәтіндік файлдан, тізім жолдарынан, массивтен және т.б. алынған мәліметтерден жасалу кезінде қолданылады. Мәліметтер көзі таусылса, ондаMoreData параметрінде өңдеуші Trueмағынасын қайтару керек. |
property OnPreview: procedure (Sender: TObject); |
Стандартты емес қарау терезесін есеп берумен байланыстыру үшін қолданылады (төменде қара). |
property OnStartPage: procedure (Sender: TObject); |
Есеп берудің бірінші бетінің генерациясы кезінде басталады. |
QRPreviewкомпонентінің көмегімен бағдарламашы стандартты емес алдын ала қарау терезесін құра алады. Есеп берумен байланыс үшін келесі сұлбадан OnPreviewоқиғасы қолданылады:
Procedure RepForm.
begin
MyPrevForm.QRPreview1.
MyPreviewForm.Show;
end;
TQRPrinter(Sender) типті анық келтіру мүмкін болу үшін, сәйкес келетін модульдің Usesұсынысындағы QRPrntrмодуліне сілтеме керек (мысалда –RepForm модулі).
TQRBandкомпоненттері есеп берудің негізгі бөлігі болып табылады және де оларда бейнелегіш комопненттерді орналастыру үшін қолданылады, TQRLabel, TQRDBText, TQRImageжәне т.б. сияқтылар.
Компоненеттің қасиеттері:
Қасиет |
Тағайындалуы |
property AlignToBottom: boolean; |
Егер де Trueмағынасы болса, жолақ тікелей беттің белдемесінің үстінен басылып-шығарылады, әдеттегі алдыңғы беттен төмен/жоғары орналасуының орнына. |
typeTQRBandType = (rbTitle, rbPageHeader, rbDetail, rbPageFooter, rbSummary, rbGroupHeader, rbGroupFooter, rbSubDetail, rbColumnHeader); property BandType: TQRBandType; |
Жолақтың тағайындалуын |
property Enabled: boolean; |
Жолақтың басылуына рұқсат береді/рұқсат бермейді. |
property ForceNewColumn: boolean; |
Егер True болса, онда жолақ келесі бағанда басылады. |
property ForceNewPage: boolean; |
Егер True болса,онда жолақ жаңа бетте басылады. |
property HasChild: boolean; |
Егер Trueболса,онда жолақ ішкі TChildBandжолағынан тұрады. Осы қасиетте True–ды орнату есеп беруде автоматты түрде ішкі жолақты құрайды. |