A pivot table presents multidimensional data. A Dimension identifies the categories associated with each dimension.
Dimensions => int32[n-dims] Dimension*[n-dims] Dimension => Value[name] DimProperties int32[n-categories] Category*[n-categories] DimProperties => byte[x1] byte[x2] int32[x3] bool[hide-dim-label] bool[hide-all-labels] 01 int32[dim-index]
name
is the name of the dimension, e.g. Variables
,
Statistics
, or a variable name.
The meanings of x1
and x3
are unknown. x1
is
usually 0 but many other values have been observed. A writer may
safely use 0 for x1
and 2 for x3
.
x2
is 0, 1, or 2. For a pivot table with L layer
dimensions, R row dimensions, and C column dimensions,
x2
is 2 for the first L dimensions, 0 for the next
R dimensions, and 1 for the remaining C dimensions. This
does not mean that the layer dimensions must be presented first,
followed by the row dimensions, followed by the column dimensions—on
the contrary, they are frequently in a different order—but x2
must follow this pattern to prevent the pivot table from being
misinterpreted.
If hide-dim-label
is 00, the pivot table displays a label for
the dimension itself. Because usually the group and category labels
are enough explanation, it is usually 01.
If hide-all-labels
is 01, the pivot table omits all labels for
the dimension, including group and category labels. It is usually 00.
When hide-all-labels
is 01, show-dim-label
is ignored.
dim-index
is usually the 0-based index of the dimension, e.g.
0 for the first dimension, 1 for the second, and so on. Sometimes it
is -1. There is no visible difference. A writer may safely use the
0-based index.