Cell Operations
The Data Control callback interface provides functions to assist in navigating cells in the data cube.
Iterator Functions
The Iterator will visit all cells in the data cube. Using the iterator functions is the recommended method of navigating the data cube as it allows SuperSERVER to implement data cube navigation efficiently.
FirstCellT()
Move to the first cell in the data cube.
For a 3 dimensional cube, resets the location to [0][0][0].
Available To |
|
|
|
|---|
FirstCellT(JobInfoT *JobInfo)
Arguments |
| ||||
|---|---|---|---|---|---|
Returns |
|
EndCellT()
Test whether the current cell is the last in the iteration of the cube.
Available To |
|
|
|
|---|
EndCellT(JobInfoT *JobInfo)
Arguments |
| ||||
|---|---|---|---|---|---|
Returns |
|
NextCellT()
Moves the iterator to the next cell of the cube.
When calling NextCell for the first time after FirstCell, the iterator location will move to [0][0][1].
Once all cells in a particular dimension have been visited, that dimension's index is reset to zero and the following dimension's index will be incremented by one. For example [0][1][0].
When all cells have been visited (the last cell of the data cube is passed), this function returns 0.
Available To |
|
|
|
|---|
NextCellT(JobInfoT *JobInfo)
Arguments |
| ||||
|---|---|---|---|---|---|
Returns |
|
Cell Values
The following functions are used to access the current cell (the cell currently iterated to using the FirstCell() and NextCell() function calls).
GetCurrentCellValueT()
Retrieve the current cell value.
Available To |
|
|
|
|---|
GetCurrentCellValueT(JobInfoT *JobInfo, double *Value)
Arguments |
| ||||||
|---|---|---|---|---|---|---|---|
Returns |
|
GetCurrentCellSummationOffsetT()
Retrieve the position of the current cell's summation.
Available To |
|
|
|
|---|
GetCurrentCellSummationOffsetT(JobInfoT *JobInfo, int *Value)
Arguments |
| ||||||
|---|---|---|---|---|---|---|---|
Returns |
|
GetCurrentCellOffsetT()
Retrieve the position of the current cell within the cube.
Available To |
|
|
|
|---|
GetCurrentCellOffsetT(JobInfoT *JobInfo, int *Value)
Arguments |
| ||||||
|---|---|---|---|---|---|---|---|
Returns |
|
SetCurrentCellValueT()
Set the value of the current cell. This operation will fail if the cell is marked as concealed.
Available To |
|
|
|
|---|
SetCurrentCellValueT(JobInfoT *JobInfo, double Value)
Arguments |
| ||||||
|---|---|---|---|---|---|---|---|
Returns |
|
IsCurrentCellNullT()
Test whether the current cell is null.
Available To |
|
|
|
|---|
IsCurrentCellNullT(JobInfoT *JobInfo)
Arguments |
| ||||
|---|---|---|---|---|---|
Returns |
|
GetValueCodesOfCurrentCellThenFreeMemT()
Retrieve the classification value codes that are related to the current cell.
Available To |
|
|
|
|---|
GetValueCodesOfCurrentCellThenFreeMemT(JobInfoT *JobInfo, int Dimension, int FieldOffset, const SourceValueInfoT** Values, int* Len)
Arguments |
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
If the operation is successful, but the result set is empty, then |
GetCurrentCellAssociatedValueT()
Retrieve the associated value from within a given association cube for the current cell.
Available To |
|
|
|
|---|
GetCurrentCellAssociatedValueT(JobInfoT *JobInfo, const char* AssociationName, double *Value)
Arguments |
| |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
SetCurrentCellAssociatedValueT()
Set the associated value for the given association for the current cell.
Available To |
|
|
|
|---|
SetCurrentCellAssociatedValueT(JobInfoT *JobInfo, const char* AssociationName, double Value)
Arguments |
| |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
GetCurrentCellNthAssociatedValueT()
Retrieve the nth associated value from within the given association for the current cell.
Available To |
|
|
|
|---|
GetCurrentCellNthAssociatedValueT(JobInfoT *JobInfo, const char* AssociationName, int Pos, double* Value)
Arguments |
| ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
SetCurrentCellNthAssociatedValueT()
Set the nth associated value for the given association for the current cell.
Available To |
|
|
|
|---|
SetCurrentCellNthAssociatedValueT(JobInfoT *JobInfo, const char* AssociationName, int Pos, double Value)
Arguments |
| ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
Direct Cell Access
Using the iterator is the preferred method of cell access. However, the following functions allow direct access to specific cells. They are supplied for scenarios where an implementation only requires direct access to a subset of well-known cells, rather than iterating through the entire cube.
GetCellValueT()
Retrieve the value of the specified cell.
Available To |
|
|
|
|---|
GetCellValueT(JobInfoT *JobInfo, int *DimensionItems, double *Value)
Arguments |
| |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
IsCellNullT()
Determine whether the specified cell is null.
Available To |
|
|
|
|---|
IsCellNullT(JobInfoT *JobInfo, int* DimensionItems, int *Null)
Arguments |
| |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
SetCellValueT()
Set the value of the specified cell.
Available To |
|
|
|
|---|
SetCellValueT(JobInfoT *JobInfo, int* DimensionItems, double Value)
Arguments |
| |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
GetCellAssociatedValueT()
Retrieve the associated value from within a given association cube for the current cell.
Available To |
|
|
|
|---|
GetCellAssociatedValueT(JobInfoT *JobInfo, const char* AssociationName, const int Pos, const int* DimensionItems, double *Value)
Arguments |
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
SetCellAssociatedValueT()
Set the associated value from within a given association cube for the current cell.
Available To |
|
|
|
|---|
SetCellAssociatedValueT(JobInfoT *JobInfo, const char* AssociationName, const int Pos, const int* DimensionItems, double Value)
Arguments |
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
Absolute to Relative Conversion
ConvertAbsoluteToRelativeItemIndexT()
Convert from an absolute index for a dimension to a field and item index. The absoluteIndex variable will be different to the itemIndex variable for concatenated fields.
Available To |
|
|
|
|---|
ConvertAbsoluteToRelativeItemIndexT(JobInfoT* jobInfo, const int dimension, const int absoluteIndex, int* fieldIndex, int* itemIndex)
Arguments |
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|
ConvertRelativeToAbsoluteItemIndexT()
Convert from a field and item index to an absolute index for a dimension. The absoluteIndex variable will be different to the itemIndex variable for concatenated fields.
Available To |
|
|
|
|---|
ConvertRelativeToAbsoluteItemIndexT(JobInfoT* jobInfo, const int dimension, const int fieldIndex, const int itemIndex, int* absoluteIndex)
Arguments |
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns |
|