cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Learn how to build custom Python data connectors and further customize JMP’s Data Connector Framework with the Python Data Connector Demo, available now in the JMP Marketplace!
  • See how to create experiments to support product design and ID useful product features. Register for June 12 webinar, 2pm US Eastern Time.

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