Difference between revisions of "QAS getCallStack"
Nguyenduyan (talk | contribs) (→QAS_getCallStack) |
Nguyenduyan (talk | contribs) (→QAS_getCallStack) |
||
Line 170: | Line 170: | ||
array a=QAS_getCallStack(); | array a=QAS_getCallStack(); | ||
− | //returned | + | //returned an answer sheet call stack with 2 stack frames |
{90462158,{90462158,90462159,90462160},{{{6432,90462158,D_returnBack},{6433,90462159,Q1}},{{6433,90462159,D_returnBack},{6458,90462160,Q1}}}} | {90462158,{90462158,90462159,90462160},{{{6432,90462158,D_returnBack},{6433,90462159,Q1}},{{6433,90462159,D_returnBack},{6458,90462160,Q1}}}} |
Revision as of 10:00, 11 April 2012
QAS_getCallStack
This function makes it possible for the script writer to peek into the current answer sheet call stack. The function requires an answer sheet context to be present which only exists for CG Scripts executed in dummy questions. The array which is returned from this function can be used to reset specific answer sheets on the call stack.
Syntax
QAS_getCallStack()
Arguments
No
Return type
array. The array returned from QAS_getCallStack has the following structure:
Index |
Property name |
Data type |
Description |
0 |
QAS_CALL_STACK_ANSWER_SHEET_CONTEXT_ID |
number |
The answer sheet id for the initial answer sheet, this id is also known as the answer sheet context id. |
1 |
QAS_CALL_STACK_ANSWER_SHEET_IDS |
array |
All the answer sheet ids currently on the answer sheet call stack, where the first answer sheet id in the array correspond to the caller answer sheet at the bottom of the call stack. This array always contains minimum one element, which is the initial answer sheet id. |
2 |
QAS_CALL_STACK_FRAMES |
array |
This array contains an array for each stack frame on the call stack, including information about caller and callee, where the stack frame in the array correspond to the stack frame at the bottom of the call stack. |
The property QAS_CALL_STACK_FRAMES consists of arrays which we refer to as call stack frames, each call stack frame consists of two arrays; one for the caller and one for the callee in the following way:
Index |
Property name |
Data type |
0 |
QAS_STACK_FRAME_CALLER |
array |
1 |
QAS_STACK_FRAME_CALLEE |
array |
And caller and callee each points to an array of the following structure:
Index |
Property name |
Data type |
Description |
0 |
QAS_STACK_FRAME_QUESTIONNAIRE_RESOURCE_ID |
number |
This is the questionnaire resource id for the caller or callee depending on which part this array exists in. |
1 |
QAS_STACK_FRAME_ANSWER_SHEET_ID |
number |
This is the answer sheet id for the caller or callee depending on which part this array exists in. |
2 |
QAS_STACK_FRAME_QUESTION_LABEL |
number |
This is the question label for the caller or callee depending on which part this array exists in. |
Example
There are 3 questionnaires jumping from A(6432)--> B(6433)--> C(6458). Users put the following CGS in a dummy question
array a=QAS_getCallStack();
//returned an answer sheet call stack with 2 stack frames
{90462158,{90462158,90462159,90462160},{{{6432,90462158,D_returnBack},{6433,90462159,Q1}},{{6433,90462159,D_returnBack},{6458,90462160,Q1}}}}
Availability
Version 5.9.5