누구든지 셀을 색칠하는 스크립트를 생성한 적이 있습니까?
dt = Current Data Table();
// Get all numeric columns
colList = dt << get column names( numeric, string );
foundCols = "";
// Loop across the columns and generate the test pass/fails
Try(For( i = 1, i <= N Items( colList ), i++,
spec = Column( dt, colList[i] ) << get property( "Spec Limits" );
//Establish the Notes Value from the Parent Column
Notes = Column( dt, colList[i] ) << get property( "Notes" );
dt << clear select;
If( Is Empty( spec ) == 0,
// Set Property("Notes", Notes), in the next line reattaches the Notes to the Child Column
dt << New Column( (Column( dt, colList[i] ) << get name) || " Pass/Fail", Set Property("Notes", Notes) );
// Select out of spec rows
If( Is Missing( Try( spec["LSL"], . ) ) == 0,
dt << select where( As Column( dt, colList[i] ) < spec["LSL"] );
Try( Column( dt, N Cols( dt ) )[dt << get selected rows] = 0 );
);
If( Is Missing( Try( spec["USL"], . ) ) == 0,
dt << select where( As Column( dt, colList[i] ) > spec["USL"], current selection( "extend" ) );
Try( Column( dt, N Cols( dt ) )[dt << get selected rows] = 0 );
);
// Throw net to include missing cells
dt << select where( Is Missing( As Column( dt, colList[i] ) ), current selection( "extend" ) );
// Invert Selection
dt << invert row selection;
Try( Column( dt, N Cols( dt ) )[dt << get selected rows] = 1 );
Column( dt, N Cols( dt ) ) << set property( "Value Labels", {0 = "Fail", 1 = "Pass"} );
If( foundCols == "",
foundCols = ":Name(\!"" || (Column( dt, colList[i] ) << get name) || " Pass/Fail\!")",
foundCols = foundCols || ", " || ":Name(\!"" || (Column( dt, colList[i] ) << get name) || " Pass/Fail\!")"
);
);
););
// Create the Row Pass/Fail
Eval( Parse( "dt << New Column( \!"Row Pass/Fail\!", formula( If( Min(" || foundCols || " ) == 1, 1, 0 ) ))" ) );
dt = Current Data Table();
Grps = dt << Get Column Groups Names;
For( j = 1, j <= N Items( Grps ), j++,
colrefs={};
colrefs = dt << get column group(Grps[j]);
colnames = Transform Each({colref}, colrefs,
Head Name( As Namespace( colref )) ||" Pass/Fail"
);
show(colrefs, colnames);
Group = dt << Group Columns(colnames);
dt << rename column group( Group, Grps[j]||" Pass Fail" ););
Eval( Parse( "dt << New Column( \!"Count Of Tests\!", formula( Number(" || foundCols || " ) ) ))" ) );
Eval( Parse( "dt << New Column( \!"% Yield\!", formula( 100* Sum(" || foundCols || " ) / Number(" || foundCols || " ) ) ))" ) );
Eval(EvalExpr(dt << New Column( "Process Script", Character, "Nominal", Formula(Expr(Char(Process_Script))))));
dt = Current Data Table();
colList = dt << Get Column Names( String );
For( i = 1, i <= N Cols( dt ), i++,
If( Contains( colList[i], "Pass/Fail" ), /* select only columns with Pass/Fail
in the name */
Column( colList[i] ) << Set Property( "Value Colors", {0 = -13912408, 1 = 20} ) << Color Cell by Value( 1 )
)
);
spec vs fail? 새로운 등급 컬럼을 생성하는 스크립트가 있는데 기본 컬럼에 영향을 주고 싶었습니다.
커뮤니티에는 셀에 색상을 입히는 데 스펙 제한을 사용하는 예가 많이 있습니다. 스펙 제한 열 속성에 따라 색상을 입힐 수 있는 JMP 플랫폼도 있습니다.
예를 찾을 수 없습니다. Manage Spec Limits 색상 구성표에 만족하지 않습니다. 대신 이렇게 했습니다.
dt = Current Data Table();
colList = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colList ), i++,
spec = Column( dt, colList[i] ) << get property( "Spec Limits" );
fails = As List( dt << get rows where( As Column(Column( dt, colList[i] )) < spec["LSL"] | As Column(Column( dt, colList[i] )) > spec["USL"] ) );
Column( dt, colList[i] ) << color cells( "Red", fails );
passes = As List( dt << get rows where( As Column(Column( dt, colList[i] )) > spec["LSL"] & As Column(Column( dt, colList[i] )) < spec["USL"] ) );
Column( dt, colList[i] ) << color cells( "Green", passes );
);
호기
물론입니다. 그동안 위의 스크립트는 작동하며 회계나 다른 용도로 재활용하기 위해 수술하기 쉽습니다.