Using Advanced Cross-Tab Features
Crystal Reports version 9 introduced significant cross-tab improvements. The advanced features gave cross-tabs improved flexibility and functionality to satisfy even more reporting requirements.
Setting Relative Position
When it comes to planning the width or length of cross-tabs, remember they expand dynamically. With the addition of new information or data, the number of rows or columns can grow or shrink. This makes putting objects at the end of a cross-tab very difficult because it's unclear when the object will be overwritten if new data appears.
For the same issue at the bottom of a cross-tab an easy solution exists. Place the new object in the next report sectioneven if it means adding a new section. By default, objects in Crystal Reports do not overwrite a section.
However, you often need to specify an item in the far-right column. In this report you might want a logo to be displayed to the right of the cross-tab. But, in Design, the size of the cross-tab doesn't match what you see in Preview. Follow these steps to set the Relative Position:
- Open crosstab2.rpt. Start with your last saved document by choosing it from the File list on the File, Open menu.
- Insert a text object by opening the Insert menu, and then selecting Text Object.
- Preview the report. Click F5 to see the result. It's not exactly as you intended (see Figure 10.6).
Figure 10.6. Design with cross-tab and text field in improper location.
- Set the Relative Position property. Right-click on the Report Header label (on the left where it says Report Header, or RH, in the gray area). Choose Section Expert. Toggle the Relative Positions check box and click OK. To see the resulting report, refer to Figure 10.7.
Figure 10.7. Preview of the cross-tab and text field as requested.
The Relative Position property works on the left, top, and right borders of the cross-tab. Remember that the bottom border of the cross-tab is handled by the end of a section.
Relative positions can be used in many situations. For example, showing a chart on the information in the cross-tab can be very useful.
Inserting a "Percentage of" Summary
Summary values can also be displayed as percentages of either the total rows or total columns:
- Add another summary. Right-click in the top left of the cross-tab where no data appears and choose Cross-Tab Expert. In the Cross-Tab tab, choose to add the Order Amount to the Summarized Fields list box by clicking the arrow (>) button. Notice that it looks like it duplicates the summary above it, so choose the Change Summary button.
- Change the Summary to a Percentage Summary. In the Edit Summary dialog in the Options box, select Show As Percentage Summary. Notice that it has an option for Row or Column. In this case you want to know by country (row) where the percentage split is, so keep Row selected as shown in Figure 10.8.
Figure 10.8. The Edit Summary dialog.
- Preview the results by clicking OK on both dialog windows. It should look like Figure 10.9.
Figure 10.9. Percentages by country.
Notice that the USA is consistently the largest percentage of Xtreme's orders. It's very easy to see this when percentages are added to the cross-tab.
Horizontal and Vertical Placement
Because the percentages add up to 100% down the page, it would be easier to understand if the summaries could be displayed side by side instead of one on top of the other. That way, the numbers down the page could be added up easily.
Crystal Reports allows the toggle between horizontal and vertical placement of summaries:
- Launch the Cross-Tab Expert. Right-click in the top-left of the cross-tab again and choose Cross-Tab Expert. Select the Customize Style tab. Under Summarized Fields, choose Horizontal; select the Show Labels option.
- View the report. Click the OK button to see the changes made to the cross-tab (see Figure 10.10).
Figure 10.10. Horizontal placement of summaries.
Inserting Summary Labels
Notice that on the report in Figure 10.10, both titles for the percentage and the summary are exactly the same (Order Amount). This is because Crystal Reports is showing the field that a summary is acting on. In this case, where the field is being acted on twice, it's not a good choice.
Crystal Reports enables you to edit these labels right on the cross-tab in both Design and Preview modes:
- Edit the Summary's Title. Right-click on the first Order Amount field in the cross-tab and choose Edit Text. Delete the Order Amount Text and add Sum instead. Then choose the Align Center button on the toolbar while the item is highlighted. Click off the object and see the result.
- Edit the Percentage Title. Repeat the previous step for the second Order Amount field, but instead of changing the text to sum, change it to %, as shown in Figure 10.11.
Figure 10.11. Cross-tab with both labels changed.
Adding a Display String
Cross-tabs are based on the need for numbers or currency to be summarized, but there are times when the numbers don't need to be seen to get the point across. Crystal Reports has a feature for all fields called Display String. This formatting feature allows a different representation for a field than its underlying value. For example, a teacher might want to see a grade letter beside a percentage mark, as shown in Figure 10.12.
Figure 10.12. Math 101 marks with letter grades as display strings.
As previously mentioned, cross-tab cells are always an intersection of rows and columns with a summary because the strings are the visual representation of the underlying summary being computed in the cross-tab. You can affect this string using the advanced Cross-Tab features of Crystal Reports.
Crystal Reports can now separate the data value from its display. This is a powerful feature and is not limited to cross-tabs, although it plays a major role in cross-tabs because of the requirement of summaries.
To complete this report, ensure that all $0.00 amounts be shown as NONE on the report.
- Format the Order Amount Summary. Right-click on one of the $0.00 amounts on the report and choose Format Field. Choose the Common tab and then choose the Conditional Formatting (x+2) button to the right of Display String. The Formula Workshop appears.
- Format Formula for strings. Use an If-Then-Else formula structure to accomplish the task. The final result is If CurrentFieldValue = 0 Then "NONE" Else ToText(CurrentFieldvalue) (see Figure 10.13).
Figure 10.13. Display String formatting formula.
TIP
Try to avoid using explicit field names in these formulas so that they can be reused in other places.
Also, remember that these are string formulas. That's why the ToText is needed around the CurrentFieldValue. Both Then and Else clauses must contain similar data types.
- Close the dialog windows. Choose the Save and Close button on the Formula Workshop and then click OK on the Formatting dialog. The result is shown in Figure 10.14.
Figure 10.14. $0 changed to NONE by using the Display String feature.
- Save the report as Crosstab3.rpt by choosing File, Save As.
TIP
The same technique that you used to change the display value of the cell can be used on any area, and you can combine the interactivity provided by parameters and other formula functions to drive any section or field in the cross-tab.