49634 (Засоби виводу інформації на принтер в об’єктно-орієнтованому середовищі програмування Delphi), страница 3

2016-07-30СтудИзба

Описание файла

Документ из архива "Засоби виводу інформації на принтер в об’єктно-орієнтованому середовищі програмування Delphi", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49634"

Текст 3 страницы из документа "49634"

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

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

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

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

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

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

  • смуга групи - компонентів 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, що дозволяє порахувати загальне число виведених у звіті записів або, іншими словами, загальна кількість співробітників підприємства.

На смузі підсторінки необхідно розмістити два компоненти QRSysData. Властивості Data одного з них привласнити значення qrsDate, а іншого - qrsPageNumber. Таким чином, у підсторінці буде відображатися поточна дата і номер поточної сторінки звіту.

На мал. 9 показаний зразковий вид вікна попереднього перегляду сформованого звіту.

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

Побудова звіту для зв'язаних наборів даних. У тих випадках, коли потрібно створити звіт на основі даних, одержуваних з декількох таблиць БД, можна здійснити двома способами.

  1. За допомогою компонента Query об'єднати дані з декількох таблиць в один набір даних, після чого будувати звіт звичайним чином, аналогічно тому, як було показано вище.

  2. Створити кілька наборів даних (по одному на кожну таблицю) і з'єднати ці набори між собою зв'язком майстер-детальний, використовуючи їх властивості MasterSource і Master Fields. Далі для відображення інформації зі зв'язаних наборів даних у звіті застосовуються компонент QRBand (для головної таблиці) і компонент QRSubDetail (для підлеглої таблиці). Саме особливості застосування цього способу і будуть розглянуті нижче.

Компонент QRSubDetail спеціально призначений для включення в звіт інформації з детального набору даних. Властивість DataSet цього компонента повинна містити посилання на детальний набір даних.

Нехай у БД бухгалтерії підприємства маються дві таблиці. Перша таблиця firm.db містить інформацію про співробітників і має такі поля: Табельний номер (Tab_nom), Ім'я співробітника (Name), Відділ (Otdel), Посада (Dolgn), Оклад (Salary). В другій таблиці zarplata.db зберігається помісячна інформація про виплату зарплати кожному співробітникові з початку поточного року і включає такі поля: Порядковий номер запису (Ncmer), Табельний номер (Tab_nom), Місяць (Mes), Кількість відпрацьованих днів (Dni), Виплачена зарплата (Zarpl).

Таблиці firm.db і zarplata.db знаходяться у відношенні один-до-одного, тобто одному співробітникові можуть відповідати кілька фактів виплати зарплати.

Для створення звіту, насамперед, потрібно розмістити на формі два компоненти Table1 і ТаЫе2, зв'язавши їх, відповідно, з таблицями firm.db і zarplata.db. Крім того на формі міститься компонент DataSource, зв'язаний з компонентом Tabl1. Після цього між наборами даних встановлюється зв'язок по одноіменних полях Tab_nom.

Після того як зв'язок був встановлений, можна перейти до проектування звіту. На форму додається компонент QuickRep. Властивості DataSet даного компонента присвоюється значення Table1. Потім у звіті розміщується смуга заголовка, тобто компонент QRBand1, властивість BandType якого рівна rbTitle. На цю смугу поміщається компонент QRLabel, у властивість Caption якого записується рядок, що позначає заголовок даного звіту. Потім додається ще одна смуга QRBand2 і її властивості BandType присвоюється значення rbDetail. На цій смузі містяться чотири елементи QRDBText, що зв'язуються з полями Tab_nom, Name, Dolgn і Otdel таблиці firm.db.

На наступному кроці в звіті розміщується компонент QRSubDetail. Даний компонент зв'язується з підлеглою таблицею: його властивості DataSet присвоюється значення Таbl2. На цій смузі містяться три компоненти QRDBText, що зв'язуються з полями Mes, Dni і Zarpl таблиці zarplata.db. Нарешті, у поле компонента QRBand2 розміщаються заголовки стовпців, що відповідають відображуваним полям підлеглої таблиці

У результаті з підлеглої таблиці виводиться помісячна інформація про виплату зарплати для кожного співробітника, дані про яке утримуються в головній таблиці.

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

Для створення композитного звіту використовується компонент QRCompositeReport . Об'єднання звітів здійснюється в оброблювачі події OnAddReport шляхом додавання назв відповідних звітів у список властивості Report даного компонента. Це робиться приблизно в такий спосіб:

Procedure TForm3.QRCompositeReportlAddReports (Sender: TObj ect);

begin

QRCompositeReport1.Reports.Add

(Forml.QuickRep1);

QRCompositeReport1.Reports.Add

(Form2.QuickRep1);

end;

У приведеному прикладі композитний звіт складається з двох звітів: QuickRep1, що був раніше визначений у формі Form1, і QuickRep1, визначений у формі Form2. Назви звітів збігаються, тому що на дві різні форми був поміщений новий компонент звіту, що за замовчуванням одержує ім'я QuickRep1. Природно, розроблювач може за бажанням змінити ім'я звіту. Друк і попередній перегляд складеного звіту виробляються так само, як і для простих звітів, наприклад, за допомогою методу Preview:

1.3. Інше програмне забезпечення для побудови звітів.

FastReport

Необхідність написання власного компонента для побудови звітів виникла в 1997 році, під час розробки системи обліку заробітної плати. Специфікою такої системи є велика кількість форм звітності, необхідність легкого настроювання їхнього зовнішнього вигляду. Існуючі доступні системи побудови звітів не мали потрібні характеристики, тому було прийняте рішення про розробку власного генератора звітів. Концепція була запозичена з 1С-Бухгалтерії 6.0 для Windows - основним елементом звіту є довільним образом обрамлений прямокутник із багаторядковим текстом усередині; у тексті можуть утримуватися змінні - рядка в квадратних дужках. Ця концепція виявилася досить життєздатною - незважаючи на те, що в найпершій версії генератора застосовувався тільки один бэнд - рядок даних, це дозволяло будувати багаторівневі звіти.

Пізніше, у 1998 році, генератор звітів оформляється у виді компонента (спочатку це був просто набір модулів, що підключаються,). З цього моменту він одержує назву "FastReport" і починає стрімко нарощувати функціональність. На сьогоднішній день FastReport - це цілком візуальний генератор звітів, тобто більшість звітів можна побудувати, користуючись тільки мишею.

Crystal Report

Популярний пакет генератора звітів Crystal Report призначений для створення звітів презентабельного виду різного типу: табличні запити до баз даних, створення діаграм, OLAP дані.

Висновок

Курсова робота була розроблена на основі об’єктно-орієнтованого середовища програмування Delphi. В ході виконання курсової роботи були розглянуті основні компоненти які призначені для виводу інформації на принтер в середовищі програмування. Було створено приклади програм які використовували різні компоненти закладки QReport. Зокрема було створено додаток, який дозволяє працювати із графічним звітом, звітом створеним на основі баз даних, та звітом, який друкує текстову інформацію з поля Memo.

Список використаної літератури:

Друковані джерела:

  1. Delphi 7. Для профессионалов, Кенту М., Издательство Питер. 2004, Книга, 1101 с.

  2. Программирование в среде Delphi 7. Глушаков С. В., Клевцов А. Л. Изд. 2-е дополненное м переработанное. –Харьков, 2003, 528с.

  3. Программирование в Delphi 6. Архангельский А. Я.

Інтернет ресурси:

  1. www.delphimastak.ru

  2. www.delphimaster.ru

  3. www.delphi.narod.ru

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее