- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Get "On Close" script?
Hi. In JMP there's a way to create a script that automatically executes when the window or table is closed using the "On Close()" command. Is there any way to return the script without executing? That is, I'm looking for a command something like "dt << Get On Close".
My specifics:
JMP Pro 16.2.0
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
In your On Close() function for the given data table, you can use an Include() to bring in a script and run it. If you just want to just get the script, you can use Load Text File().
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
After trying a few things, I believe the on close script is write only and Jim's solution is the best choice.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
Other option would be to evaluate the script into On Close, then you could access it with the saved expression you have
Names Default To Here(1);
//This message applies to all display box objects
dt = Open("$SAMPLE_DATA/Big Class.jmp");
on_close_expr = Expr(Show(1));
Eval(EvalExpr(dt << On Close(
Expr(on_close_expr)
)));
Show(Name Expr(on_close_expr));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
Thanks for the suggestions everyone, but allow me to clarify. I have a script that assigns an << On Close expression to a table, among other things. My issue is that when I subsequently close the table by hand, the on-close expression is not executing the way I intended. As part of my debugging, I'm trying to read back the table's on-close script independently to confirm the script is there.
I can already inspect the original on-close expression that I'm assigning to the table in my larger script, but now want to confirm that when the table is closed, JMP sees the same expression I wrote.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
- I believe it is write-only. No way to read it back.
- I don't think JMP is changing your script.
- You might use @jthi idea to make an expression e of the main body, then use <<OnClose( show(char(nameexpr(e))); eval(e); 1 )
- If your script depends on globals, you might need to use the evalexpr(...expr(...) ) technique to capture them.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
Maybe you could try setting some very simple << On Close expression just to test it out or use << On Close expression which will prevent the closing of window, like example from Scripting Index:
Names Default To Here(1);
//This message applies to all display box objects
w = Open("$SAMPLE_DATA/Big Class.jmp");
w << On Close(
// Modal dialogs return Button(1) if OK is pressed, Button(-1) if canceled
New Window("Are you sure?",
<<modal,
V List Box(
Text Box("Press OK to allow the window to close"),
H List Box(Button Box("OK"), Button Box("Cancel"))
)
)["button"] == 1
);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Get "On Close" script?
Hello, thank you for the idea. I can confirm that your suggestion of a dt << Get On Close will be available in a future version of JMP. (JMP 18 is likely).