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

Then, link a field in the main report to that parameter field using the Subreport Linking Expert.

How to combine unrelated reports using subreports

There may be times when you want to combine unrelated reports into a single report. For example, you may want to create a single report that presents:

sales by sales representative, and

sales by item.

While both reports deal with sales data, there is no real linear relationship between the reports.

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

You can combine unrelated reports into a single report like this using subreports. While the reports could be based on the same data set, they do not have to be. They could each be based on entirely different data sets.

Subreports

439

Each of these reports is freestanding; the data in any of the reports is not linked in any way to the data in any of the other reports. This is the easiest of the subreport options to work with.

TWO UNRELATED REPORTS

If you want your report to consist entirely of two unrelated reports:

Create the report you want to print first as the primary report. Import an existing report for use as a subreport or create one.

3 Place the report you want to print first in the Details section.

4 Place the subreport into the Report Footer and it will print immediately after the primary report.

THREE OR MORE UNRELATED REPORTS

If you want your report to consist of three or more unrelated reports:

Create the report you want to print first as the primary report.

Import or create each of the other reports you want to use as subreports.

!Using the Section Expert, insert enough Report Footer sections to match the number of subreports that you are using. For example, if you want to use three subreports, insert two new Report Footer sections so you have a total of three Report Footer sections.

"Place the subreport you want to print immediately after the primary report in Report Footer A, the subreport you want to print next in Report Footer B, and so forth. The primary report will print and the subreports will print in the order you placed them on your report.

440

Seagate Crystal Reports User’s Guide

NOTE: You can also place the subreports side-by-side in the same Report Footer section. They will print next to each other at the end of the report.

5 Place the report you want to print first in the Details section.

6 Place the subreports into the Report Footer sections and they will print sequentially after the primary report.

Related Topics

Area printing characteristics, Page 69

How to add, delete, move, and merge sections, Page 89

How to use subreports with unlinkable data

You can link tables in a report as long as the following criteria are met:

the link fields are both database fields,

the link fields contain similar data,

the link fields are the same length, and

the link field in the link to (lookup) table is indexed (PC databases only).

Linking tables is rarely a problem.

There are some circumstances, however, where you can not coordinate data in different tables because your situation does not fit the linking criteria.

Subreports

441

Linking

to/from a formula field

For example:

if you want to link to or from a formula field, or

if you want to link two unindexed tables,

you can not do it in a single report. You have to use subreports.

There are situations where you may need to link to or from a formula (calculated) field. For example, an employee ID could be an 11 character value that consists of a two character department code followed by the employee’s nine character Social Security number (for example, HR555347487). Using the formula language, it is easy to extract the Social Security number from this field:

{employee.EMPLOYEE ID} [-9 to -1]

OR

{employee.EMPLOYEE ID} [3 to 12]

For the value HR555347487, either formula would return the value 555347487.

While the return value is a valid Social Security number, the fact that it comes from a formula prevents you from using the field to link to a Social Security number field in another table. You can report on and coordinate the values in the two tables, however, using a subreport. Search Subscript in Seagate Crystal Reports online Help.

LINKING TO A FORMULA FIELD

Create the primary report using a table that includes the Social Security Number field (for this example, {file.SSN}).

Create (or import) a subreport using the formula that extracts the Social Security Number from the Employee ID field (for this example, {@EXTRACT}). See How to insert a subreport, Page 434.

!Insert the subreport where you want it to appear in the primary report.

"Link the subreport to the primary report by linking the Social Security Number field in the primary report ({file.SSN}) with

442

Seagate Crystal Reports User’s Guide

Linking

unindexed tables

the formula that extracts the number in the subreport ({@EXTRACT}). See How to link a subreport to the data in the primary report, Page 436.

LINKING FROM A FORMULA FIELD

Create the primary report using the formula that extracts the Social Security Number from the Employee ID field (for this example, {@EXTRACT}).

Create (or import) a subreport using a table that includes the Social Security Number field (for this example, {file.SSN}). See

How to insert a subreport, Page 434.

!Insert the subreport where you want it to appear in the primary report.

"Link the subreport to the primary report by linking the formula that extracts the Social Security Number in the primary report ({@EXTRACT}) with the Social Security Number field in the subreport ({file.SSN}). See How to link a subreport to the data in the primary report, Page 436.

When using PC databases (not SQL or ODBC), the link field in the lookup database needs to be indexed to create a valid link. When two tables contain related data yet neither is indexed on the field you want to use as a link field, or if the primary table is indexed but the lookup table is not, you can not link the tables in a single report. You must use subreports if you want to coordinate the data in both tables.

NOTE: It is important to note that linking unindexed tables or linking from an indexed primary table to an unindexed lookup table makes for inefficient reporting. If your data set is large, expect this kind of report to take a considerable time to run. Use this technique only if you do not have any other options.

Create your primary report.

Create (or import) the subreport and insert it into the primary report. See How to insert a subreport, Page 434.

!Link the subreport to the primary report using the unindexed fields (or the indexed field in the primary table and the unindexed field in the lookup table). See How to link a subreport to the data in the primary report, Page 436.

Subreports

443

How to show different views of the same data in one report

You can use subreports to provide a different view of the same data as the primary report. For example, assume you want to show summary values at the top of your report and details at the bottom, like this:

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

You can do this in different ways. The two easiest ways are:

1.Create the summary report as the primary report and the details report as the subreport. If you do this, you can place the details subreport in the Report Footer section.

2.Create the summary report as the subreport and the details report as the primary report. If you do this, you can place the summary report in the Report Header section.

Coordinate the data in the two reports by linking the report using the appropriate link fields.

444

Seagate Crystal Reports User’s Guide

20 Cross-Tab Objects

What you will find in this chapter...

Cross-tab overview, Page 446

Cross-tab components, Page 451

HANDS-ON (Cross-Tab Objects), Page 452

Cross-Tab Objects

445

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