About crosstabs

Cross tabulation is a useful technique for analyzing data. By presenting data in a spreadsheet-like grid, a crosstab lets users view summary data instead of a long series of rows and columns. For example, in a sales application you might want to summarize the quarterly unit sales of each product.

In PowerBuilder, you create crosstabs by using the Crosstab presentation style. When data is retrieved into the DataWindow object, the crosstab processes all the data and presents the summary information you have defined for it.

An example

Crosstabs are easiest to understand through an example. Consider the Printer table in the EAS Demo DB. It records quarterly unit sales of printers made by sales representatives in one year. (This is the same data used to illustrate graphs in Chapter 26, “Working with Graphs.”)

Table 27-1: The Printer table in the EAS Demo DB

Rep

Quarter

Product

Units

Simpson

Q1

Stellar

12

Jones

Q1

Stellar

18

Perez

Q1

Stellar

15

Simpson

Q1

Cosmic

33

Jones

Q1

Cosmic

5

Perez

Q1

Cosmic

26

Simpson

Q1

Galactic

6

Jones

Q1

Galactic

2

Perez

Q1

Galactic

1

.

.

.

.

.

.

.

.

.

.

.

.

Simpson

Q4

Stellar

30

Jones

Q4

Stellar

24

Perez

Q4

Stellar

36

Simpson

Q4

Cosmic

60

Jones

Q4

Cosmic

52

Perez

Q4

Cosmic

48

Simpson

Q4

Galactic

3

Jones

Q4

Galactic

3

Perez

Q4

Galactic

6

This information can be summarized in a crosstab. Here is a crosstab that shows unit sales by printer for each quarter:

The sample crosstab has the heading " This report summarizes the unit sales of printers in each quarter. 11 / 9 / 98."  Under the title are the headings Sum of Units and Quarter. Below them is a column heading for Product, a column heading for each quarter, and a grand total for each product row. At the bottom of the crosstab are grand totals for all products for the columns that represent each quarter. Data is show for three sample products, Cosmic, Galactic, and Stellar.

The first-quarter sales of Cosmic printers displays in the first data cell. (As you can see from the data in the Printer table shown before the crosstab, in Q1 Simpson sold 33 units, Jones sold 5 units, and Perez sold 26 units—totaling 64 units.) PowerBuilder calculates each of the other data cells the same way.

To create this crosstab, you only have to tell PowerBuilder which database columns contain the raw data for the crosstab, and PowerBuilder does all the data summarization automatically.

What crosstabs do

Crosstabs perform two-dimensional analysis:

Each cell in a crosstab is the intersection of a column (the first dimension) and a row (the second dimension). The numbers that appear in the cells are calculations based on both dimensions. In the preceding crosstab, it is the sum of unit sales for the quarter in the corresponding column and printer in the corresponding row.

Crosstabs also include summary statistics. The preceding crosstab totals the sales for each quarter in the last row and the total sales for each printer in the last column.

How crosstabs are implemented in PowerBuilder

Crosstabs in PowerBuilder are implemented as grid DataWindow objects. Because crosstabs are grid DataWindow objects, users can resize and reorder columns at runtime (if you let them).

NoteImport methods return empty result A crosstab report takes the original result set that was retrieved from the database, sorts it, summarizes it, and generates a new summary result set to fit the design of the crosstab. The ImportFile, ImportClipboard, and ImportString methods can handle only the original result set, and they return an empty result when used with a crosstab report.