Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CRW_REF.PDF
Скачиваний:
5
Добавлен:
13.02.2015
Размер:
13.99 Mб
Скачать

Introduction

Advanced totalling is any kind of report totalling that requires the extensive use of formulas. Tutorials included in this chapter demonstrate the techniques needed to produce many of the most common reports that require advanced totalling. Each tutorial takes you step-by-step through the process of creating the report and adding the necessary formulas.

The topics covered in this chapter are advanced techniques. Before starting, you should be familiar with how to design reports in Seagate Crystal Reports, how to group values in a report and how to summarize data. You should also know how to use the formula language, including variables, to create formulas and add them to a report.

Related Topics

Sorting, Grouping, and Totalling, Page 271

Formulas 101, Page 321

Advanced Formulas, Page 345

Search for Functions Index in Seagate Crystal Reports online Help.

HANDS-ON (Advanced Totalling)

How to maintain running totals in a list

Running totals are totals that are displayed generally on a record by record basis. They total all records (in the report, in the group, and so forth) up to and including the current record. For example, if your first three records have values of 2, 4, and 6, the running total for each of the three records would be as follows:

Values

Running Total

 

 

 

 

2

2 = 0 + 2

 

 

4

6 = 2 + 4

 

 

6

12 = 6 + 6

 

 

378

Seagate Crystal Reports User’s Guide

The most basic form of running total is a single running total maintained throughout a list. In this tutorial you will create that kind of report, setting up a running total for a list of order amounts.

To set up this report, you will create two formulas:

1.ResetTotal

This formula resets the Amount variable to $0.00 at the beginning of the report.

2.@RunningTotal

This formula adds the value of the current record to the Amount variable and displays the current total as the running total.

NOTE: To see an example of this report, open the report file RTO1.RPT located in the \CRW directory.

To get started, create a report using the sample data, CRAZE.MDB, link the Customers and Orders tables, and place the following fields from left to right in the Details section:

{customer.CUSTOMER NAME} {orders.ORDER ID} {orders.ORDER AMOUNT}

Create a formula named ResetTotal and enter the following in the Formula Editor:

ResetTotal (“Amount”)

This formula says:

Reset the value in the Amount variable to $0.00.

!Place the formula in the Report Header section of your report. Since it’s in the Report Header section, it will run only once, at the beginning of the report.

"Right-click the @ResetTotal field and choose the FORMAT FIELD command from the shortcut menu that appears. The Format Editor appears.

# Click the Common Tab to activate it.

Advanced Totalling

379

$Toggle the Suppress option on to hide the field from view when printing, and click OK when finished to return to your report.

%Create a formula named RunningTotal and enter the following into the Formula Editor:

RT (“Amount”, “Sum”, ToNumber ({orders.ORDER AMOUNT}), {customer.CUSTOMER NAME})

This formula says:

Convert the value in the {orders.ORDER AMOUNT} field to a number (if necessary), add the value in that field to the Amount variable, and keep track of the customer name.

NOTE: If you have NULL values in the field you are performing a running total on, you will have to add code to check for NULL values or toggle the Convert NULL field value to default check box

on using the Reporting Tab of the File Options dialog box. Search for File Options dialog box in online Help.

&Place this formula in the Details section of your report, just to the right of the Order Amount field.

NOTE: When you place @RunningTotal in the Details section of the report, the formula executes for every record, thus keeping a running total of the Order Amount field. See Area printing

characteristics, Page 69.

Your report should look similar to the following:

NOTE: This example report has been designed to illustrate concepts only, not the actual look of your finished report.

380

Seagate Crystal Reports User’s Guide

The value in each record is added to the sum of the previous value in the report.

The total continues, unbroken, throughout the running list.

Related Topics

How to subtotal running totals within groups, Page 381

Formulas 101, Page 321

Advanced Formulas, Page 345

Reporting 101, Page 95

How to subtotal running totals within groups

Another common use of running totals is for tallying items in a group. The running total starts with the first item in the group and ends with the last. Then it starts all over again for the next group, then the next, and so on.

Advanced Totalling

381

In this example, you will create a report that:

maintains a running total of customer orders,

groups customer orders and resets the running total for each group, and

displays the subtotal for each order (the last running total for that order).

To set up this report, you will create three formulas:

1.ResetTotal

Sets the value of the Amount variable to $0.00 at the beginning of each group.

2.RunningTotal

Adds the value of the current record to the Amount variable, and displays the current total as the running total.

3.PrintTotal

Prints the final running total value for the group as the group subtotal.

NOTE: To see an example of this report, open the report file RTO2.RPT in the \CRW directory.

To get started, create a report using the sample data, CRAZE.MDB, link the Customers and Orders tables and place the following fields from left to right in the Details section:

{customer.CUSTOMER NAME} {orders.ORDER ID} {orders.ORDER AMOUNT}

Create a formula named ResetTotal and enter the following in the Formula Editor:

ResetTotal (“Amount”)

This formula says:

Reset the value in the “Amount” variable to $0.00.

!Place this formula in the Group Header section of your report. Since it’s in the Group Header section, it will run each time a new group is started. See Area printing characteristics, Page 69.

382

Seagate Crystal Reports User’s Guide

"Right-click the @ResetTotal field and choose the FORMAT FIELD command from the shortcut menu that appears. The Format Editor appears.

# Click the Common Tab to activate it.

$Toggle the Suppress option on to hide the field from view when printing, and click OK when finished to return to your report.

%Create a formula named RunningTotal and enter the following into the Formula Editor:

RT (“Amount”, “Sum”,ToNumber({Orders.Order Amount}),{Customer.Customer Name})

This formula says:

Convert the value in the {orders.ORDER AMOUNT} field to a number (if necessary), add the value in that field to the Amount variable, and keep track of the customer name.

NOTE: If you have NULL values in the field you are performing a running total on, you will have to add code to check for NULL values or toggle the Convert NULL field value to default check box

on using the Reporting Tab of the File Options dialog box. Search for File Options dialog box in online Help.

&Place this formula in the Details section of your report, just to the right of the Order Amount field.

NOTE: When you place @RunningTotal in the Details section of the report, the formula executes for every record, thus keeping a running total of the Order Amount field. See Area printing

characteristics, Page 69.

Your report should look similar to the following:

NOTE: This example report has been designed to illustrate concepts only, not the actual look of your finished report.

Advanced Totalling

383

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]