- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Editing chart with 'Dispatch'
JMP 9.0.3
Windows 7 Enterprise SP1
I am trying to edit some 'control chart' display parameters using 'Dispatch'. It seems like the only way I can get the command to work is if I use the string for the chart title directly. I need to be able to pass that name into the Dispatch command somehow. Here's my 'not working' script:
xbarname = eval("XBar of "||Testname);
Control Chart(
Sample Label( :Sample ),
Chart Col( :Testcolumn,
XBar(
Box Plots( 1 ),
Connect Points( 0 ),
),
),
SendToReport(
Dispatch(
{xbarname},
"2",
ScaleBox,
{Min(1), Max( 1.5 ), Inc( 0.05 ),
Minor Ticks( 1 )}
),
)
);
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Editing chart with 'Dispatch'
I tried but couldn't find the magic combination of eval, parse, expr that will make it work directly. When faced with situations like this I tend to use a brute force approach. Basically you build a string dynamically and execute it with eval(parse()). Using evalinsert allows clean insertion of parameters, in this case xbarname. Also, using the constructs \[ and ]\ allow for embedding of double quotes without the need to escape them, which also gives the code a cleaner look.
testname = "Temperature";
xbarname = "XBar of " || Testname;
cc_expr = evalinsert("\[
Control Chart(
Sample Label( :Sample ),
Chart Col( :Testcolumn, XBar( Box Plots( 1 ), Connect Points( 0 ), ), ),
SendToReport(
Dispatch(
{"^xbarname^"},
"2",
ScaleBox,
{Min( 1 ), Max( 1.5 ), Inc( 0.05 ), Minor Ticks( 1 )}
),
)
)]\");
eval(parse(cc_expr));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: Editing chart with 'Dispatch'
I tried but couldn't find the magic combination of eval, parse, expr that will make it work directly. When faced with situations like this I tend to use a brute force approach. Basically you build a string dynamically and execute it with eval(parse()). Using evalinsert allows clean insertion of parameters, in this case xbarname. Also, using the constructs \[ and ]\ allow for embedding of double quotes without the need to escape them, which also gives the code a cleaner look.
testname = "Temperature";
xbarname = "XBar of " || Testname;
cc_expr = evalinsert("\[
Control Chart(
Sample Label( :Sample ),
Chart Col( :Testcolumn, XBar( Box Plots( 1 ), Connect Points( 0 ), ), ),
SendToReport(
Dispatch(
{"^xbarname^"},
"2",
ScaleBox,
{Min( 1 ), Max( 1.5 ), Inc( 0.05 ), Minor Ticks( 1 )}
),
)
)]\");
eval(parse(cc_expr));