BookmarkSubscribe
Choose Language Hide Translation Bar
galactus3000
Community Trekker

number of LSL USL for M machines with N parameters each

Hello.

I know how to do this in JMP but cannot figure out how to efficiently script it.

Below is the report from which I can easily right-click  "Make Combined Data Table" and have a table with number of xSL exceedances for each of the M machines and N parameters.

 

In a JSL script, how do I achieve same thing?  Easy to do.  Impossible to script?

 

Capture_xSL counts for M machines with N parameters each.PNG

0 Kudos
1 ACCEPTED SOLUTION

Accepted Solutions
Jeff_Perkinson
Community Manager Community Manager

Re: number of LSL USL for M machines with N parameters each

Right after posting above, @Justin_Chilton showed me that you can use Xpath to avoid the loop:

 

((Report( pc[1] ) << Top Parent) << XPath( "//NumberColBox[NumberColBoxHeader/text() = 'Observed Count']" ) ) << Hide( 0 ); 
-Jeff
8 REPLIES 8
galactus3000
Community Trekker

Re: number of LSL USL for M machines with N parameters each

What's a bit frustrating is a simple "Make into Data Table" right-click provides a table replete with "Source" script.
When I right-click "Make Combined Data Table" there is no concomitant source script!
THANKS IN ADVANCE FOR ANY INSIGHT YOU CAN PROVIDE

0 Kudos
Highlighted
Jeff_Perkinson
Community Manager Community Manager

Re: number of LSL USL for M machines with N parameters each

JMP 14 makes this pretty easy to figure out. The first rule of scripting is to let JMP write it for you. With JMP 14, when you right click and "Make Into Data Table" the resulting table has a "Make Into Data Table" script that will show you how to script it. 

JMPScreenSnapz306.png

JMPScreenSnapz307.png

JMPScreenSnapz308.png

You'll need to work a bit to get the By () statement into the platform call and then direct the "Make Combined Data Table" to the outline box in the first report. Let us know if this points you in the right direction or if you need more clarification.

-Jeff
0 Kudos
Jeff_Perkinson
Community Manager Community Manager

Re: number of LSL USL for M machines with N parameters each

Looks like our messages may have crossed. You've already seen that you can get a script to help guide you to the right outline box.

 

Now you need to deal with the result of a By() option in the platform launch.

 

Consider this script:

 

 

dt=open("$SAMPLE_DATA\Semiconductor Capability.jmp");

pc=Process Capability(
	Process Variables( :NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3 ),
	By(:lot_id),
	Individual Detail Reports( 1 ),
	Goal Plot( 1 ),
	Capability Index Plot( 1 ),
	Process Performance Plot( 0 )
);

After running this pc has a list of platform references, one for each by group.

 

 

 

 

pc = {Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[], Process Capability[]};

So, you'll need to index into this list to get to the first report and then the proper outline box. You can use the wildcard character "?" in the Outline Box names to match an outline box without having to know which by group or parameter name it's referring to. Finally, change "Make Into Data Table" to "Make Combined Data Table".

 

Report( pc[1] )[Outline Box( "Process Capability ?" )][
Outline Box( "Individual Detail Reports" )][Outline Box( "? Capability" )][
Outline Box( "Nonconformance" )][Table Box( 1 )] << Make Combined Data Table;

 

 

 

 

-Jeff
galactus3000
Community Trekker

Re: number of LSL USL for M machines with N parameters each

Aha .... the wildcard character ... makes sense.  trying now ...

 

0 Kudos
galactus3000
Community Trekker

Re: number of LSL USL for M machines with N parameters each

I'm 90% there ...

I can do the Make Combined Data Table!

 

Now the remaining 10% ...  I just need to do a SendToByGroup Dispatch to all to show Observed Count of Noncoformance for all my variables in all tables.

tried this and it didn't work?

 

 

Dispatch(
                {"Process Capability ?", "Individual Detail Reports",
                "? Capability", "Nonconformance"},
                "Observed Count",
                NumberColBox,
                {Visibility( "Visible" )}
            )
 
//OR THIS
 
SendToByGroup(
        {:table == "?"},
        SendToReport(           
            Dispatch(
                {"Process Capability ?", "Individual Detail Reports",
                "? Capability", "Nonconformance"},
                "Observed Count",
                NumberColBox,
                {Visibility( "Visible" )}
             ) ));

 

 

 

 

0 Kudos
galactus3000
Community Trekker

Re: number of LSL USL for M machines with N parameters each

Then since this worked,

 

 

Report( pc[1] )[Outline Box( "Process Capability ?" )][Outline Box( "Individual Detail Reports" )][Outline Box( "? Capability" )][Outline Box( "Nonconformance" )][Table Box( 1 )] << Make Combined Data Table;

 

I tried this

 

Report( pc[1] )[Outline Box( "Process Capability ?" )][Outline Box( "Individual Detail Reports" )][
Outline Box( "? Capability" )][Outline Box( "Nonconformance" )][Table Box( 1 )] <<
Show Column( "Observed Counts" );

which did not work ...

 

0 Kudos
Jeff_Perkinson
Community Manager Community Manager

Re: number of LSL USL for M machines with N parameters each

The message for displaying a hidden column is Hide(0) and the message goes to the ColBox not the table box:

 

Report( pc[1] )[Outline Box( "Process Capability ?" )][Outline Box( "Individual Detail Reports" )][
Outline Box( "? Capability" )][Outline Box( "Nonconformance" )][Table Box( 1 )][NumberColBox("Observed Count")]<<hide(0);

Unfortunately, there's no way to send that message to all the boxes in the report at once. You'll have to construct a loop to find all of them and turn them on.

-Jeff
0 Kudos
Jeff_Perkinson
Community Manager Community Manager

Re: number of LSL USL for M machines with N parameters each

Right after posting above, @Justin_Chilton showed me that you can use Xpath to avoid the loop:

 

((Report( pc[1] ) << Top Parent) << XPath( "//NumberColBox[NumberColBoxHeader/text() = 'Observed Count']" ) ) << Hide( 0 ); 
-Jeff