• • • • 5.3 • •
MsgBox displays a standard popup modal dialog box with a user-supplied message «msg» when it is evaluated. It pauses evaluation until the user presses a button on the message box. If the user presses Cancel, it stops further computation.
By default, the message box will show buttons OK and Cancel, and title of the dialog is the identifier of the Variable (or Function) that calls MsgBox().
You can use MsgBox to show the model user a message, warning, or error during evaluation. A common use is for model debugging to show intermediate values while a complex algorithm is in progress.
(New to Analytica 5.2) Optionally, you can include one or two URL links in the lower-left corner, and a checkbox on the message dialog.
Variable Profit := Array(Time, [-121.1M, -75.33M, -12.41M, 62.06M, 62.06M, 1.594M, -58.87M, -119.3M])
The optional «buttons» parameter can be used to control which buttons are displayed, as follows:
0= OK only
1= OK and Cancel [Default]
2= Abort, Retry and Ignore
3= Yes, No and Cancel
4= Yes and No
5= Retry and Cancel
6= Yes, No and No to all
7= Yes, No, No to all and Cancel
The icon can also be changed by adding the following to the buttons parameter:
The return value indicates which button was pressed, as follows:
10007= No to all
In ADE, MsgBox displays nothing and returns
If a user presses Cancel, the current computation aborts.
The optional «title» parameter can be used to provide a title for the message box . If no title is specified, the title defaults to the title of the calling variable or function.
Url and UrlText
(Requires Analytica 5.2 or later) If «url» is specified, a hyperlink appears in the lower-left corner of the dialog, with the «urlText», or labeled as More Information if «urlText» is not specified.
You can show two links by also specifying «url2», and optionally «url2Text».
Your URLS should start with "https://" or "http://".
URL information is not currently passed to ADE, so the links won't appear if run on ACP.
CheckboxText and checked
(Requires Analytica 5.2 or later) When you set «checkboxText», a checkbox appears at the bottom of the dialog. «checked» specifies whether it is checked initially or not. When you use a checkbox, the checkbox state is returned as a second return value, so you need to capture this using, e.g.,
- Local ( button, checkState ) := MsgBox( "Do you want to run the long simulation?", button: /*Y-N-Cancel*/ 3,
- checkboxText:"Enable logging during simulation", checked: True );
Details and more examples
MsgBox does not array abstract over its first parameter. Instead, it attempts to display the entire parameter using the current tableType system variable format with the number format of the variable containing the call. Atomic text strings or numbers appear as such, but arrays appear in a format such as:
Array(Time, [-121.1M, -75.33M, -12.41M, 62.06M, 62.06M, 1.594M, -58.87M, -119.3M])
Example: This example provides a peek at the result before returning it.
var v := Sales_revenue - Cost;
When evaluated from within the Analytica Decision Engine (ADE), it calls IAdeUICallbacks::MsgBox( ), and from within that callback the parent application has an opportunity to display a message box to the end-user and to provide the return value. The parent application must have previously registered the callback with ADE using CAEngine::SetCallbackObject( ). When the parent application has not registered a callback object, it returns 0 without displaying any message box.