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

Database links vs. subreports in one-to-many situations

When two tables in your report have a one-to-many relationship, the program retrieves the data in different ways depending on:

the data source,

the index situation,

the record selection criteria, and

whether you are creating a single report based on linked tables or a primary report that contains a subreport.

When you are considering whether to use linked tables or a subreport, you need to understand the ramifications of each. These issues are discussed fully in the Performance considerations in one-to-many links, Page 522.

As a general rule, if you:

have indexed tables,

are linking on the indexed fields, and

have range limiting record selection criteria based on the indexed fields,

the program needs to read the same number of records whether you are linking tables in a single report or using subreports. Since each subreport is run as a separate report, however, there may be a performance advantage using linked tables. See Indexed tables, Page 518.

HANDS-ON (Subreports)

How to insert a subreport, Page 434, and How to link a subreport to the data in the primary report, Page 436, explain in detail how to perform the two basic subreporting tasks. You will do one or both of these tasks every time you set up a subreport. All other subreport tutorials, deal with subreport specifics: how to create specific kinds of reports using subreports. These are explained in broad terms (create a subreport, link these two fields, and so forth). Refer back to the first two topics for the specifics of performing those tasks.

Subreports

433

How to insert a subreport

Click the SUBREPORT button on the supplementary toolbar. The Insert Subreport dialog box appears.

To choose an existing subreport, click this option button and type the name into the text box. If you do not know the name, click the Browse button and locate it in the dialog box that appears.

To create a new subreport, click this option button and type a name into the text box. If you would like assistance in creating the subreport, click the Report Expert button.

Click OK. The program displays a rectangular placement frame.

3 Move the frame where you want it to appear in your report and click once to place it.

If you imported your subreport, the program creates a subreport Design Tab labelled with the subreport name.

¾If you do not need to edit your report, you are finished.

¾If you want to edit your report, click the Subreport Design Tab and make your modifications.

434

Seagate Crystal Reports User’s Guide

If you are creating a new report, the program creates a Subreport Design Tab labeled with the subreport name.

¾If you want to do more to your report than you did in the Expert, click the Subreport Design Tab and finish your subreport as you would any other report.

¾If you do not want to do more to your report, you are finished.

Click the Preview Tab to

 

 

 

Click the Subreport Preview

 

 

 

see your parent report.

 

 

 

Tab to see your subreport.

 

 

 

 

 

How to preview your subreport

There may be times that you want to preview a subreport by itself instead of previewing it as a part of the main report. For example, you might want to preview the subreport to view and analyze the data for a significant set of parameter values. While most Windows report designers do not allow you to preview subreports alone, Seagate Crystal Reports makes it easy.

Click the Design Tab corresponding to the subreport of interest.

Click the PRINT PREVIEW button on the standard toolbar.

The program displays a preview of the selected subreport.

Subreports

435

How to link a subreport to the data in the primary report

Many times the data in a subreport supplements the data in the primary report. You might, for example, have customer data in a primary report and use subreports to show the orders for each customer.

Primary Report Data

 

 

 

Linked Subreport Data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

In such a case, you will need to coordinate the data in the primary report and subreport so the orders in each subreport match up with the correct customer.

To do this, you need to specify a field in the subreport and one in the primary report that contain common data. Seagate Crystal Reports uses these companion fields to coordinate the data. You coordinate the data in the subreport with the data in the primary report using the Subreport Links dialog box. You get to that dialog box in one of two ways:

1.If you are importing a report as a subreport or creating one from scratch, you get to it by clicking the Subreport Link button

436

Seagate Crystal Reports User’s Guide

in the Insert Subreport dialog box. Thus you can build or import your subreport and link it to the primary report in one coordinated process.

2.If you already have a subreport in your primary report and you did not link it when you were setting it up, you can get to the Subreport Links dialog box by choosing the SUBREPORT LINKS command on the Edit menu.

Once you are in the Subreport Links dialog box, follow these steps:

1 Highlight the field you want to use as the link field in the primary (containing) report.

3 Choose the subreport you want to link from this drop-down list (if it is not already selected).

2 Click the Add button.

The field will be added to the Linking list box, thus selecting it as a link field.

4 Choose the subreport table to link to the containing report.

5 Choose the subreport field you want to use to link to the containing report from this drop-down list.

$ Repeat Steps 1 and 2 for each additional link as desired.

%Click OK when finished. Now, when you run the report, the program will coordinate the data in the primary report and the subreport.

Subreports

437

How to link a subreport to the main report without modifying the selection formula

There may be times that you want to use a linked parameter field in a subreport but you don't want that parameter field used as part of the selection formula for that subreport. For example, you may want the main report to pass in a summary value that can be used in calculations by the subreport, or you may want the main report to pass in the title of the subreport.

You can do these things with Seagate Crystal Reports, but you need to understand the way the program handles subreport linking in order to have it work the way you want to.

Seagate Crystal Reports uses a parameter field mechanism to link subreports to main reports.

If you link a field in the main report to a field in the subreport that is not a parameter field, the program:

automatically creates a parameter field to complete the link, and

modifies the subreport record selection formula to select those records where the subreport field is equal to the parameter field value.

The need for a parameter field is implied, thus this is called an “Implicit Link” situation.

When you link a field in the main report to a parameter field that you have created in the subreport, the Expert accepts the link you have specified. It:

does not create any additional parameter fields, and it

does not modify the subreport record selection formula. When you so specify a link, it is called an “Explicit Link” situation.

Thus, if you want to link a subreport to the main report but you don't want to modify the selection formula, you need to use an Explicit link:

Create a parameter field in the subreport.

438

Seagate Crystal Reports User’s Guide

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