cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
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));

Recommended Articles