Підготовка звітів в Crystal Reports. Урок 4

Урок 1 / Урок 2 / Урок 3 / Урок 5 / Урок 6


При генерації звіту залежно від його складності Seagate Crystal Reports виконує формування звіту в три етапи, яким можуть передувати деякі підготовчі дії. Першим попередніми дією є обчислення всіх формул, значення яких постійні і не будуть змінюватися, тобто не залежать від вмісту записів. Ця дія має назву «BeforeReading Records». Після цього починається перший етап читання записів бази даних. На даному етапі виконуються наступні дії:



На попередньому кроці перед другим етапом Seagate Crystal Reports впорядковує групи відповідно до заданої ієрархією (наприклад, Top / Bottom N). На цьому кроці читання записів не відбувається, а здійснюється тільки перегляд груп, сформованих на першому етапі.


На другому етапі Seagate Crystal Reports виконує необхідну форматування даних на сторінках, здійснюючи такі дії:



На третьому і останньому етапі створення звіту виконується підрахунок загальної кількості сторінок звіту (рис. 17).


Рис. 17. Граф процесу генерації звіту в Crystal Reports

Так як загальні підсумки обчислюються на першому етапі, а фільтрація груп здійснюється на наступному, то для звітів, які містять формули фільтрації груп, підсумкові поля можуть містити невірні значення. Під уникнути такої ситуації для підрахунку підсумків варто використовувати поля Running totals.

Поля Running totals. Спеціальні поля, що дозволяють контролювати підрахунок підсумків, можуть використовуватися для вирішення наступних завдань:



Залежно від тієї області звіту, в якій буде вміщено полі Running totals, результат, що повертається формулою, буде різним.


Report Header повертає лише перший запис звіту.
Page Header створена підсумок і включає в нього перший запис поточної сторінки.
Group Header створена підсумок і включає в нього перший запис поточної групи.
Details area створена поточний підсумок для кожного запису (з накопиченням).
Group Footer створена загальний підсумок для кожної групи.
Report Footer створена підсумок і включає в нього перший запис з наступної сторінки.
Page Footer створена загальний підсумок для всіх записів.


Створимо поточні підсумки (Running totals) для кожного запису. Для цього створимо простий звіт на базі таблиць Customers і Orders з бази даних Xtreme.mdb. У звіт включаємо поля customer.


CUSTOMER NAME, orders.ORDER ID, orders.ORDER AMOUNT. Доповнимо звіт полем з поточним підсумком, для чого здійснимо наступні дії:


1. Виконаємо команду Insert – Running Total Fields. У вікні «Field Explorer» клацнемо по кнопці New.


2. У вікні «Create Running Total Field» в рядок Running Total Name введемо текст «TotalOrders». В області «Available Tables and Fields» виділимо orders.ORDER AMOUNT і клацанням по першій з кнопок зі стрілкою вправо перенесемо його в рядок «Field to summarize». У списку «Type of summary» вибираємо функцію SUM. В області «Evaluate» виберемо значення перемикача «On change of field» і в однойменну рядок за допомогою другої кнопки зі стрілкою вправо занесемо ім'я поля – orders.ORDER ID. Це призведе до підрахунку підсумкових значень при кожній зміні вмісту цього поля. В області «Reset» збережемо значення перемикача «Never», що призведе до накопичення підсумкових значень за всіма даними звіту (рис. 18). Клацання по кнопці ОК збереже вибрані установки і поверне нас до вікна «Field Explorer».


Рис. 18. Вікно визначення параметрів поля Running Total

3. За допомогою кнопки Insert to Report вставимо полі TotalOrders правіше всіх полів звіту в області Detail. Перейшовши на вкладку Preview, можна побачити поточні підсумки в правому стовпчику звіту.

Аналогічним чином можна створити поточні підсумки для груп записів, але попередньо варто здійснити необхідну групування. Знову створимо простий звіт на базі таблиць Customers і Orders з бази даних Xtreme.mdb, в який включимо поля customer.CUSTOMER NAME, orders.ORDER ID, orders.ORDER AMOUNT, і проробимо наступне:


1. Виконаємо команду Insert – Group і створимо угруповання по полю cus tomer.USTOMER NAME.


2. Виконаємо команду Insert – Running Total Fields. У вікні «Field Explorer» клацнемо по кнопці New.


3. У вікні «Create Running Total Field» в рядок Running Total Name введемо Group RunningTotal. В області «Available Tables and Fields» виділимо orders.ORDER AMOUNT і клацанням по першій з кнопок зі стрілкою вправо перенесемо його в рядок «Field to summarize». У списку «Type of summary» вибираємо функцію SUM. В області «Evaluate» виберемо значення перемикача «For each record». В області «Reset» виберемо значення перемикача «On change of group» і залишимо запропоноване за замовчуванням ім'я групи (рис. 19). Клацання по кнопці ОК збереже вибрані установки і поверне у вікно «Field Explorer».


Рис. 19. Визначення параметрів поля Running Total для груп ЗАПБТ.

.


4. За допомогою кнопки Insert to Report вставимо полі GroupRunningTotal правіше всіх полів звіту в області Detail. Перейшовши на вкладку Preview, можна побачити поточні підсумки в правому стовпчику звіту. Якщо необхідно створити загальний підсумок для кожної групи, то поле Group RunningTotal слід помістити в область Group Footer.


Якщо у звіті не слід групувати записи або потрібно залишити їх розсортованими за іншою ознакою, але необхідно підрахувати підсумки з урахуванням певних умов, можна скористатися поточними підсумками по умові. Для прикладу таких підсумків попередньо створимо простий звіт на базі таблиць Customers і Orders з бази даних Xtreme.mdb. У звіт включимо поля customer.


CUSTOMER NAME, customer.COUNTRY, customer.LAST YEAR’S SALES.


Доповнимо звіт полем з поточним підсумком за умовою, для чого здійснимо наступні дії:


1. Виконаємо команду Report – Sort Records і виберемо сортування по полю customer.CUSTOMER NAME.


2. Виконаємо команду Insert – Running Total Fields. У вікні «Field Explorer» клацнемо по кнопці New.


3. У вікні «Create Running Total Field» в рядок Running Total Name введемо USTotal.


В області «Available Tables and Fields» виділимо customer.LAST YEAR'S SALES і клацанням по першій з кнопок зі стрілкою вправо перенесемо його в рядок «Field to summarize». У списку «Type of summary »виберемо функцію SUM.


В області «Evaluate» виберемо значення перемикача «Use a formula» і клацнемо по кнопці Formula. У вікні «Running Total Condition Formula Editor» в рядок Formula вводимо [Customer.Country] = «USA». Це означає, що при обчисленні поточних підсумків будуть використані тільки записи, значення поля customer.COUNTRY, яких одно USA. Перевіряємо синтаксис і закриваємо вікно клацанням по кнопці Save and Close.


В області «Reset» виберемо значення перемикача «Never».


Клацання по кнопці ОК збереже вибрані установки і поверне у вікно «Field Explorer».


3. За допомогою кнопки Insert to Report вставимо полі USTotal правіше всіх полів звіту в області Detail. Перейшовши на вкладку Preview можна побачити умовні поточні підсумки в правому стовпчику звіту.

Урок 1 / Урок 2 / Урок 3 / Урок 5 / Урок 6


Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*