cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
pticguy
Level I

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 )}

             ),

     )

  );

1 ACCEPTED SOLUTION

Accepted Solutions
pmroz
Super User

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));

View solution in original post

1 REPLY 1
pmroz
Super User

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));