안녕하세요 여러분, jmp 스크립팅을 처음 사용하는 분입니다.2012년에 작성된 스크립트가 첨부되어 있는데 jmp16으로 이동한 이후에는 작동하지 않습니다. jmp14에서는 작동했습니다.기본적으로 모든 컬럼 매개변수에 대한 사양 상한 및 하한을 읽을 수 있습니다. 다음은 오류 메시지와 내가 읽은 데이터 파일의 샘플입니다.어떤 도움이라도 대단히 감사하겠습니다.제가 대본을 쓰지 않았고 그 사람은 회사를 그만뒀어요.
도움을 주셔서 미리 감사드립니다.


친절하게 감사드립니다 선생님, 그게 트릭이었습니다 !!
Names Default가 Here()인 경우에는 볼 것이 없습니다.단지 기본 범위를 설정하는 것뿐입니다.코드가 더 큰 코드 조각의 중간에 있는 경우 Names Default to Here()를 JSL의 첫 번째 줄로 이동해야 하며, 그래도 작동하지 않으면 해당 줄을 완전히 제거하세요.또한 열이 숫자형 연속 열이 아닌 경우 사양 제한을 처리하지 않도록 새 If() 절을 추가했습니다.
제거
Version = JMPVersion();
그리고 당신의
Version = "Limits as Attributes, v2.1 December 24, 2012";
고마워요 TX님,
여전히 동일한 오류 메시지가 나타납니다.내가 보기에 두 줄만 추가했는데 다른 변경 사항은 없나요?
조직 파일에서 원래 줄을 놓친 것을 발견했습니다.
버전 = "속성으로서의 제한, v2.1 2012년 12월 24일";
위의 파일은 원본 파일에 있었지만 제안된 솔루션이 변경되었는지 확실하지 않습니다.
버전 값을 보면 확실히 16 마녀가 내가 실행 중인 것입니다.Names Default to Here을 보려고 하면 전화가 끊깁니다.
이름의 기본값은 여기에 있습니다(1).
버전 = JMP 버전();
감사해요
2가지 문제가 있었습니다.
- "버전" 변수의 값이 설정되지 않았습니다.
- JMP 16에서는 Character 변수를 발견하면 코드가 중지됩니다.
두 가지 문제를 모두 해결했습니다.문자의 데이터 유형을 확인하는 대신 실제로 모델링 유형이 연속인지 확인합니다.명목 또는 서수 숫자 열에도 사양 제한이 설정되어서는 안 됩니다.
Names Default To Here( 1 );
version = JMP Version();
/*** This script will save the values in the specified rows as ***/
/*** Spec Limit column attributes for each respective column. ***/
/*** If there is no value for a particular column, the Spec ***/
/*** Limit attribute for that column will not be changed. By ***/
/*** saving the limits as column attributes, the Cpk analysis ***/
/*** along with limits reference markers, will automatically ***/
/*** be generated whenever a distribution is generated for a ***/
/*** column. ***/
/*** Alternatively, this script can be used to delete the ***/
/*** Spec Limits column attributes altogether by checking the ***/
/*** "Delete Attributes" checkbox. ***/
// 10/28/2004 v2.0
// 12/24/2012 v2.1, modified to handle limits with units, like "2 Ohms"
Limits_dlg = Dialog(
Text Box( Version ),
Text Box( " " ),
Text Box( " " ),
Text Box( " " ),
Text Box( "Spec Limits:" ),
Text Box( " " ),
LineUp( 2,
"LSL is in row", LSLRow = EditNumber( 1 ),
"USL is in row", USLRow = EditNumber( 2 )
),
Text Box( " " ),
Text Box( " " ),
Text Box( " " ),
Text Box( "My table already has Spec Limits attributes, and I want to delete them... " ),
DelAttr = Check Box( "Delete Attributes", 0 ),
Text Box( " " ),
HList( Button( "OK" ), Button( "Cancel" ) )
);
If( Limits_dlg["Button"] == -1,
Throw( "!User Cancelled" )
);
If( Limits_dlg["DelAttr"] == 1,
For( i = 1, i < N Col() + 1, i++,
Column( i ) << Delete Property( "Spec Limits" )
),
//Else...
For( i = 1, i < N Col() + 1, i++,
If( As Column( i ) << get modeling type == "Continuous",
LSpec = Column( i )[Limits_dlg["LSLRow"]];
LSpec = Num( Word( 1, Char( LSpec ) ) ); //Truncate to numeric if it has units appended to it.
USpec = Column( i )[Limits_dlg["USLRow"]];
USpec = Num( Word( 1, Char( USpec ) ) ); //Truncate to numeric if it has units appended to it.
Eval(
Substitute(
Expr(
Column( i ) << Set Property(
"Spec Limits",
{LSL( _LSL ), USL( _USL ), show limits( 1 )}
)
),
Expr( _LSL ), LSpec,
Expr( _USL ), USpec
)
);
)
)
);