열에서 제한을 가져와 JSL을 통해 다른 열에 사용하는 방법은 무엇입니까?첨부된 데이터 테이블에는 각 열에 측정된 각 매개변수(전류, 저항)에 대한 제한(LSL/USL)이 표시되어 있습니다.
데이터 테이블 형식을 변경하지 않고 예를 들어 중앙값이 PartID에 대해 플롯될 때(첨부된 데이터 테이블의 스크립트에서와 같이) 참조선으로 표시할 각 매개변수에 대한 제한을 얻으려면 어떻게 해야 합니까?
내가 생각할 수 있는 한 가지 방법은 LSL/USL을 각 매개변수의 열 속성에 저장하는 것이지만, 이를 위해서는 JSL 도움말이 필요합니다.
윈도우Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?가장 쉬운(그리고 내 생각에 가장 좋은) 것은 테이블 형식을 변경하는 것이지만 그렇게 할 수 없으므로 다른 옵션은 열 속성(제한에 대한 제한이 있기 때문에 약간 이상할 것입니다) 또는 그래픽 스크립트를 사용하는 것입니다. . 먼저 각 열에 대해 가능한 모든 제한을 수집해야 합니다(동일한 열에 대해 서로 다른 제한이 있을 수 있습니까?). 요약은 이에 대해 매우 잘 작동해야 하며 그런 다음 선택에 따라 열 속성으로 추가하거나 사용합니다. 그래픽 스크립트로.
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?내가 당신의 테이블을 처리하는 방법은 다음과 같습니다.모든 USL 및 LSL 값을 각 열의 열 속성으로 이동한 다음 열을 그래프로 표시할 때 자동으로 제한이 표시됩니다.

Names Default To Here( 1 );
dt = Current Data Table();
colNamesList = dt << get column names( string, numeric );
For Each( {col}, colNamesList,
LSL = Column( col )[(dt << get rows where( :Label == "LSL" ))[1]];
USL = Column( col )[(dt << get rows where( :Label == "USL" ))[1]];
Eval(
Substitute(
Expr(
Column( col ) << set property(
"spec limits",
{LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )}
)
),
Expr( _USL_ ), USL,
Expr( _LSL_ ), LSL
)
);
);
// Uncomment the below 2 lines to delete the LSL and USL rows in the table
//dt << select where(:Label == "LSL" | :Label=="LSL");
//dt << delete rows;
Graph Builder(
Size( 570, 578 ),
Variables( X( :partID ), Y( :Current ), Y( :Resistance ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 8 ), Jitter( "None" ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 6 ), Jitter( "None" ) ) ),
Local Data Filter( Add Filter( columns( :Label ), Where( :Label == {"Median"} ) ) )
);
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?@txnelson @jthi
감사합니다. 지금 귀하의 솔루션을 시도해 보겠습니다. 비슷한 작업을 하고 싶었지만 다음 기능이 작동하지 않습니다. 테스트된 모든 매개변수 열을 그룹화한 후 이를 열 그룹에 적용하는 것이 아이디어입니다. 테스트된 매개변수(현재) 열 하나에 대해 시도했지만 작동하지 않았습니다. 숫자가 한계에 전달될 때는 잘 작동하지만 변수가 전달될 때는 제대로 작동하지 않습니다. 내가 어디서 잘못됐나요(Eval() 및 Expr() 없이 시도했습니다).
Names Default To Here( 1 );
setSpecLimits = Function( {dt_ref, colName, _LSL, _USL},
{specLimits},
tmp = Eval( Expr( dt_ref:colName << Set Property( "Spec Limits", {LSL( _LSL ), USL( _USL ), Show Limits( 1 )} ) ) );
Return( specLimits ); //optional
);
////Check
Clear Log();
//test before
specLims = Data Table( "exampleData" ):Current << Get Property( "Spec Limits" ); Show( specLims );
//New values
_LSL = Data Table( "exampleData" ):Current[2]; Show( _LSL );
_USL = Data Table( "exampleData" ):Current[3]; Show( _USL );
dt_ref = Data Table( "exampleData" ); show (dt_ref);
colName = "Current"; Show( colName );
//call function
setSpecLimits( dt_ref, colName, _LSL, _USL );
//test after
specLims = Data Table( "exampleData" ):Current << Get Property( "Spec Limits" ); Show( specLims );
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?이렇게 하면 문제가 해결됩니다.
setSpecLimits = Function( {dt_ref, colName, _LSL, _USL},
{specLimits},
tmp = Eval(
eval Expr(
dt_ref:colName << Set Property( "Spec Limits", {LSL( expr(_LSL) ), USL( expr(_USL ) ), Show Limits( 1 )} )
)
);
Return( specLimits ); //optional
);Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?대신에 대리자 , 당신은 또한 사용할 수 있습니다 평가(평가 Expr( ...Exp())) :
Eval(EvalExpr(dt_ref:colName << Set Property( "Spec Limits", {LSL(Expr(_LSL )), USL(Expr( _USL) ), Show Limits( 1 )} )))사양 한계를 사전 평가하려면 _LSL & _USL 그 사람들은 안에 있어야 해 만료 () 다음을 통해 사전 평가를 받으세요. 평가 표현식() .
그런 다음 다음을 통해 전체 표현식을 평가할 수 있습니다. 평가()
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?@txnelson 감사해요. Eval Expr()이 그 트릭을 수행합니다.
사양 참조선을 점선으로 변경하고 점선 색상을 빨간색으로 변경하려면 어떻게 해야 합니까?
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?GUI를 사용할 수 있습니다.

Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?또는 JSL:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:height << Set Property("Spec Limits",{LSL( 57 ), USL( 67 )});<BR /><BR /><BR />
gb = dt << Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
);
specs=dt:height << Get Property("Spec Limits");
LSL=specs["LSL"];
USL=specs["USL"];
report(gb)[ScaleBox(1)] <<{ Add Ref Line( LSL, "Dashed", "Red", "LSL", 1 ),
Add Ref Line( USL, "Dashed", "Red", "USL", 1 )}Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?@호기 감사해요. 나는 사양 한계가 정의되어 열 속성에 저장되고 JMP에 의해 자동으로 표시될 때 실선을 점선과 기본 색상으로 변경하는 JSL 방법을 찾고 있었습니다(3번 포스트에서와 같이). @txnelson ).
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?Spec Limits의 "Show Limits" 기능을 사용하면 파란색 실선만 표시됩니다.JSL을 사용하여 색상, 레이블, 선 유형 등을 지정하여 한계를 표시하려면 메시지를 사용하는 코드를 작성해야 합니다.
obj << add ref line(......);
능력.
설명과 예제는 스크립팅 색인을 참조하세요.
Re: JSL을 통해 열에서 제한을 가져와 다른 열에 사용하는 방법은 무엇입니까?처음에는 다소 "실망적"입니다. 이 멋진 "한계 표시" 기능을 사용하면 색상을 변경할 수 없는 이유는 무엇입니까?
하지만 실제로는 GUI를 사용하면 가능합니다. 그냥 사용 한계 표시(1) 그리고 축 설정으로 들어갑니다.
반면에 :
JSL을 통해 색상을 변경하려면 추가로 작은 코드를 추가하다 색을 바꾸면서 선이 너무 마음에 들지 않죠?
환경 설정에서 기본 색상/선 스타일을 설정하는 것을 고려해 볼 수 있습니다.
완전 자동 - JSL 없음 - 수동 변경 없음 - 원하는 대로 줄만 입력하면 됩니다.