Підготовка звітів в 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>

*

*