Override for the _getRowInfo method of the Table Data Model.
/* This is a method override for the _getRowInfo method
* of the Table Data Model, which provides the table editor with
* the information about the row labels. Parameters passed to this method:
* 'rcdvecid' - Use instance of the Row/Column data vector.
* The information about the requested row is
* set on the data vector. */
GETROW: method rcdvecid 8;
/* Retrieve the value of the instance variable DATABASE
* which contains the information for this multi-dimensional example.
* From the DATABASE list, retrieve the ROWS sublist which
* contains the information about the rows. Within the ROWS
* list, the rows are stored in order starting at the beginning
* of the list. For example, the first row, 1998, in the
* ROWS list is the first row to display in the table editor. */
database = getniteml( _self_, 'DATABASE' );
rowlst = getniteml( database, 'ROWS' );
/* Use the _getCoordinates method of the Row/Column Data Vector
* to retrieve which row is currently being requested by the
* table editor for display. */
coords = makelist();
call send ( rcdvecid, '_getCoordinates', coords );
/* Get the first row dimension off of the COORDS list */
rownum = getitemn( coords, 1 );
/* Retrieve the other row subdimension if available on the
* COORDS list. */
if ( listlen( coords ) = 1 ) then
subrownum = 0;
else
subrownum = getitemn( coords, 2 );
/* The COORDS list is no longer needed. Delete the COORDS list. */
coords = dellist( coords );
/* Determine the label for the row to be displayed. */
/* If Table Editor has requested two dimensions... */
if ( subrownum ) then
do;
/* Using the top-level row dimension(ROWNUM), retrieve the
* top-level dimension list from ROWS. For example, if
* ROWNUM is 1, then the sublist 1998 would be retrieved
* from the ROWS list. */
rowlst = getiteml( rowlst, rownum );
/* Since the last requested level is the second-level dimension,
* you need retrieve the row label by getting the
* name of the SUBROWNUM item from the top-level list. */
label = nameitem( rowlst, subrownum );
end;
/* If Table Editor has requested one dimension... */
else
/* Since the last requested level is the top-level dimension,
* you need retrieve the row label by getting the
* name of the ROWNUM item from the ROWS list. */
label = nameitem( rowlst, rownum );
/* Set the label on the Row/Column Data Vector for the row. */
call send( rcdvecid, '_setText', label );
endmethod;