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


2문제가 있었습니다.
- "Version" 변수의 값이 설정되지 않았습니다.
- 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
)
);
)
)
);
TX님, 감사합니다.
여전히 동일한 오류 메시지.내가 믿는 두 줄만 추가했는데 다른 변경 사항은 없습니까?
org 파일에서 원래 줄을 놓친 것을 발견했습니다.
버전 = "속성으로서의 제한, v2.1 2012년 12월 24일";
위의 내용은 원본 파일에 있었지만 제안된 솔루션이 변경되는지 확실하지 않습니다.
내가 버전 값을 볼 때 확실히 16 마녀가 내가 실행하고 있는 것이라고 읽습니다.Names Default to Here를 보려고 하면 끊깁니다.
기본 이름은 여기에 (1);
버전 = JMP 버전();
감사 해요
Names Default to Here()로 볼 것이 없습니다.그것은 단지 기본 범위를 설정하는 것입니다.코드가 더 큰 코드 조각의 중간에 있는 경우 Names Default to Here()를 JSL의 첫 번째 줄로 이동해야 하며 작동하지 않으면 해당 줄을 완전히 제거해야 합니다.또한 열이 숫자 연속 열이 아닌 경우 사양 제한을 처리하지 않도록 새로운 If() 절을 추가했습니다.
제거
Version = JMPVersion();
그리고 당신의
Version = "Limits as Attributes, v2.1 December 24, 2012";