Курсовая работа: Засоби виводу інформації на принтер в об’єктно-орієнтованому середовищі програмування Delphi

Відображення системної інформації. Для відображення допоміжної і системної інформації використовується компонент QRSysData . Вид відображуваної інформації визначається значенням властивості Data даного компонента. Ця властивість може приймати одне з таких значень:

qrsColumnNo - номер поточного стовпчика звіту:

qrsDate - поточна дата;

qrsDataTinie - поточна дата і час;

qrsDetaiICount - кількість записів у наборі даних; при використанні декількох наборів даних - кількість записів у головному наборі. Якщо набір даних представлений компонентом Query, ця можливість може бути недоступна, що зв'язано з характером роботи даного компонента, що повертає стільки записів, скільки необхідно для використання в даний момент часу;

qrsDetailNo - номер поточного запису в наборі даних;

qrsPageNumber - номер поточної сторінки звіту;

qrsPageCount - загальна кількість сторінок звіту;

qrsReportTitle - заголовок звіту;

qrsTime - поточний час.

Компонент QRSysData, як правило, розміщається в заголовку або підсторінці звіту.

Групування даних у звіті. Для групування даних використовується компонент QRGroup . Умова групування зберігається у властивості Expression , інакше кажучи, у групу будуть входити записи набору даних, що задовольняють встановленій умові. Роль такої умови виконує ім'я поля набору даних, на основі якого буде здійснюватися групування записів. Для кожної групи виводиться її заголовок. Як заголовок групи використовується компонент QRGroup, а як під компонент QRBand зі значенням властивості BandType , рівним rbGroupFooter . При цьому властивість FooterBand компонента QRGroup повинне обов'язково містити посилання на компонент підгрупи. Як правило, у заголовку групи виводиться вираження, що групує, а в підзаголовку - різна інформація, така як, наприклад, сумарне або середнє значення по групі в цілому.

Важливою умовою є те, що угрупування буде здійснюватися тільки на основі поточного індексу. Іншими словами, необхідно, щоб як поточний індекс був використаний індекс, побудований за полем (або полями, у випадку створення вкладених груп даних), що використовується для групування записів у звіті.

Розглянемо групування даних у звіті на прикладі. Тут же буде проілюстровано, як можна застосувати деякі інші компоненти.

Приклад. Нехай, є таблиця, у якій зберігається інформація про співробітників фірми. Нехай дана таблиця має такі поля: Табельний номер (Tab_nom) , Ім'я співробітника (Name) , Відділ (Otdel) , Посада (Position) , Оклад (Salary) . Необхідно скласти звіт, що відображає дані з цієї таблиці. При цьому потрібно здійснити групування всіх записів за номерами відділів, у яких працюють співробітники. Також необхідно відображати назви стовпців звіту й у підсторінці виводити номер сторінки і поточну дату.Наприкінці звіту повинна бути виведена інформація про загальну кількість співробітників підприємства.

На першому кроці на форму міститься компонент Table1 і його властивості IndexFieldNames або indexName установлюється відповідне значення, що містить посилання на індекс, побудований за полем Otdel .

Після того як на форму поміщений компонент QuickRep1 і його властивість DataSet задана як Tablel , у звіті розміщаються такі смуги:

• смуга заголовка звіту - компонентів QRBandl , у якого властивість BandType має значення rbTitle ;

• смуга заголовків колонок - компонентів QRBand2 із значенням властивості BandType , рівним rbCol - Col umnHeader ;

• смуга групи - компонентів QRGroupl , його властивість FooterBand одержує значення QRBand4 (посилання на підзвіт - див. нижче), а властивості Expression присвоюється значення Tablel .Otdel (встановлює поле, на основі якого буде вироблятися групування даних);

• смуга детальної інформації - компонентів QRBand3 для якого властивість BandType встановлена в rbDetail ;

• смуга підгрупи - компонентів QRBand . властивості BandType якого задане значення rbGroupFooter ;

• смуга підзвіту - компонентів QRBand , властивість BandType має значення rbSuiranary ;

• смуга підсторінки - компонентів QRBand6, зі значенням властивості BandType , рівним rbPageFooter

На смугах звіту розміщаються компоненти QRLabel , що містять різні пояснювальні записи, у тому числі заголовок звіту, заголовки стовпців і т.д.

На смугу групи QRGroup1 міститься компонент QRExpr, у якого властивості Expression необхідно присвоїти значення Tablel.Otdel , що дозволяє відображати значення поля Otdel для поточної групи даних.

У смузі детальної інформації розміщаються компоненти QRDBText .що посилаються на відповідні поля набору даних, а саме на поля Tab nom. Name . Position і Salary .

У підгрупі додається компонент QRExpr. Його властивості Expression присвоюється значення SUM (Tablel. Salary) для підсумовування зарплати всіх співробітників відділу.

У підзвіті також включається компонент QRExpr, властивості Expression якого потрібно задати значення COUNT , що дозволяє порахувати загальне число виведених у звіті записів або, іншими словами, загальна кількість співробітників підприємства.

К-во Просмотров: 247
Бесплатно скачать Курсовая работа: Засоби виводу інформації на принтер в об’єктно-орієнтованому середовищі програмування Delphi