Chapter Contents |
Previous |
Next |
Organizational Chart: _traverse |
Syntax | |
Details | |
Example |
Syntax |
CALL NOTIFY (orgchart-name, '_traverse', node-id, list-of-names, list-id, label); |
Argument | Type | Description | |
---|---|---|---|
node-id |
N | specifies the numeric identifier of the node for which the labeled section of SCL code is being run | |
list-of-names |
C | specifies a single, quoted text string containing the names of the node variables whose values are to be returned in list-id. Separate multiple node variable names with a space. Specify 'ALL' to return the value of all variables. | |
You can control the processing by including one of these options as the last item in the text string: | |||
/C | (current) run label only for the subtree beginning at node-id | ||
/R | (reverse) process nodes in reverse order of the default | ||
/W | (widget) run label only for nodes that are currently displayed | ||
list-id |
N | specifies the identifier of an SCL list in which the _traverse method stores the variable values for the current node being traversed | |
label |
C | specifies the label of the SCL program section to run for each node. _traverse calls _getCurrent before running label. |
Details |
Each time label runs, the organizational chart object sets node-id to the next node in the sequence. To traverse only a subtree instead of the entire tree, include the /C option in list-of-names and assign node-id on the initial call. The value automatically changes on the first call to label.
_traverse repeats this process for each node:
When done, if _traverse created the list, it deletes it.
Example |
This example uses the _traverse method to change the colors of the nodes. After _repopulate executes, all the nodes with a numeric value less than 0 are set to a red background. Otherwise, the background color is green. The organizational chart object calls the SETCOLOR section for each node in the tree after setting N to the node identifier and filling MYLIST with each node's data.
REPOP: call send(orgid,'_repopulate_'); mylist = 0; call send(orgid,'_traverse_',n,'nvalue', mylist,'setcolor'); return; /* the labeled section called by the _traverse method */ SETCOLOR: value = getnitemn(mylist,'nvalue'); if (value lt 0) then color = 'red'; else color = 'green'; call send(orgid,'_set_color_', 'background_color',color,.,n); return;
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.