<< Click to display table of contents >> TRVCrossTab.ColumnGenerationType |
Specifies how cross-tabs columns are generated.
type
TRVColGenerationType = (rvcgtAutoSeparate, rvcgtAutoGroup,
rvcgtDataQuerySeparate, rvcgtDataQueryCascade,
rvcgtRange);
property ColumnGenerationType: TRVColGenerationType;
This property affects all levels of cross-tab.
•rvcgtAutoSeparate and rvcgtAutoGroup, columns are generated basing on data of the report itself.
•rvcgtDataQuerySeparate and rvcgtDataQueryCascade: columns are generated by applying special data queries for each level of cross-tab.
•rvcgtRange: columns are generated by enumerating values in the specified range
|
rvcgtAutoSeparate |
rvcgtAutoGroup |
rvcgtDataQuerySeparate |
rvcgtDataQueryCascade |
rvcgtRange |
Columns are generated basing on... |
report data (results of Table.RowGenerationRules[0].DataQuery) |
special data query |
range of values |
||
Each group of columns are generated from an unique set of values, depending on the value of the parent cross-tab column (if not, all groups of columns on each level are generated from the same sets of values) |
– |
Yes |
– |
Yes |
– |
Can use special data field for captions |
Yes |
– |
|||
Can use integer, boolean, floating point, date-time data fields for values |
Yes |
||||
Can use text data fields for values |
Yes |
– |
|||
Sort order |
as returned by a data query |
For rvcgtAutoSeparate and rvcgtAutoGroup, columns are generated basing on data of the report itself.
ColumnGenerationType |
Comments |
rvcgtAutoSeparate |
Columns are generated basing on data field values returned by the application of Table.RowGenerationRules[0].DataQuery. Values for each cross-tab level are collected independently. |
rvcgtAutoGroup |
The same, but data for cross-tab levels are collected together. This option generates the minimal necessary set of columns. |
Let we have a data table containing the following data:
We want to build a cross-tab report on fields "Year" and "Subject", with "Student" used as a key field. The result is shown below.
As you can see, the right table does not have (2014, 'Law') column, because this combination of values does not exist in the data table. |
For each cross-tab level (i.e., for each item in Levels):
•values for column generation are taken from FieldName field;
•additionally, captions may be taken from CaptionFieldNameField;
•columns are sorted according to SortType.
For rvcgtDataQuerySeparate and rvcgtDataQueryCascade, columns are generated from data queries specified in cross-tab levels, i.e in Levels[].DataQuery.
ColumnGenerationType |
Comments |
rvcgtDataQuerySeparate |
All Table.Levels[].DataQuery are independent from each other. Each such a data query is executed only once. If each level of cross-tab repeats the same group of data, use this generation type, because it is more efficient. |
rvcgtDataQueryCascade |
Levels[N].DataQuery may refer to data queries of higher levels, i.e. the results of execution of Levels[M].DataQuery-s, where N is from 1 to Count-1, M can be from 0 to N-1. I.e. the N-th data query may use the results of 0..N-1 data queries. |
For each cross-tab level (i.e., for each item in Levels):
•values for column generation are taken either from DataQueryFieldName or from FieldName field;
•additionally, captions may be taken from CaptionFieldNameField;
For rvcgtRange, columns are generated from enumerations of values in the specified range.
For each cross-tab level (i.e., for each item in Levels), this enumeration is defined by MinValue, MaxValue, and Step properties.
rvcgtAutoGroup