열에 저장된 값이 있는 열의 사양 제한 설정안녕 모두,
csv 파일을 JMP로 가져와 각각 데이터 테이블(dt0으로 지정)과 사양 테이블(dt1로 지정)을 가져왔습니다. 사양 테이블(dt0)에서 사양을 가져오고 데이터 테이블(dt0)에서 열의 사양 제한을 설정하는 것이 궁금합니다.
사양을 성공적으로 설정할 수 없다는 것을 발견한 문제:

내 코드는 다음과 같습니다.
여기에 기본 이름 ( 1 );
파일 = 파일 선택 (
"CSV 파일 선택" ,
"$다운로드" ,
{ "JMP 파일|jmp;jsl;jrn" , "모든 파일|*" },
1 ,
0 ,
""
);
dt0 = 열려 있는 (
파일,
가져오기 설정(
줄 끝(CRLF, CR, LF),
필드 끝(쉼표, CSV( 0 ) ),
스트립 따옴표( 1 ),
인용 부호로 아포스트로피 사용( 0 ),
지역 설정 사용( 0 ),
전체 파일 스캔( 1 ),
빈 열을 숫자( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
라벨( 1 ),
열 이름 시작( 2 ),
데이터 시작( 8 ),
읽을 줄( "모두" ),
연도 규칙( "20xx" )
)
);
dt1 = 열려 있는 (
파일,
가져오기 설정(
줄 끝(CRLF, CR, LF),
필드 끝(쉼표, CSV( 0 ) ),
스트립 따옴표( 1 ),
인용 부호로 아포스트로피 사용( 0 ),
지역 설정 사용( 0 ),
전체 파일 스캔( 1 ),
빈 열을 숫자( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
라벨( 1 ),
열 이름 시작( 2 ),
데이터 시작( 5 ),
읽을 줄( 2 ),
연도 규칙( "20xx" )
)
);
을 위한 (나는= 13 , 나는<= N 열 (dt0), i++,
열 (dt0,i)<< 데이터 형식 (숫자);
열 (dt0,i)<< 모델링 유형 ( "마디 없는" );
);
을 위한 (나는= 13 , 나는<= N 열 (dt1), i++,
열 (dt1,i)<< 데이터 형식 (숫자);
열 (dt1,i)<< 모델링 유형 ( "마디 없는" );
);
을 위한 (나는= 13 , 나는<= N 열 (dt1), i++,
온도USL= 열 저장 값 (dt1, i, 1 ); //dt1 사양 테이블의 사양을 'tempUSL' 및 'tempLSL'에 할당
임시 LSL= 열 저장 값 (dt1, i, 2 );
평가 (
평가 만료 (
열 ( dt0,i ) << 속성 설정 (
"사양 제한" ,
{LSL( 만료 ( tempLSL ) ), USL( 만료 ( tempUSL ) ), 제한 표시( 1 )}
)
)
);
);
이 문제를 해결하기 위한 조언이 있습니까? 감사해요
Re: 열에 저장된 값이 있는 열의 사양 제한 설정아주 좋은 조언, 정말 도움이 됩니다. 대단히 감사합니다, 바이런!
Re: 열에 저장된 값이 있는 열의 사양 제한 설정나는 당신이 하고 있는 일을 보고 당신의 코드가 매우 멋져 보인다고 말해야 합니다. 또한 매우 복잡합니다.
JMP에 이미 존재하는 스크립팅 플랫폼으로 동일한 작업을 수행할 수 있는 다른 여러 가지 방법이 있습니다.
다음은 몇 가지 예입니다.
이것은 프로세스 스크리닝 플랫폼을 사용합니다.
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
dt2 = Open( "$SAMPLE_DATA/CitySpecLimits.jmp" );
dt1 << Process Screening(
Y( :OZONE, :CO, :SO2, :NO ),
Use Limits Table(
1,
dt2,
Process Variables( :Column 1 ),
LSL( :_LSL ),
USL( :_USL ),
Target( :_Target ),
Go
)
);
이것은 프로세스 기능 플랫폼을 사용합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt << Process Capability(
Process Variables( :OZONE, :CO, :SO2, :NO ),
Spec Limits(
Import Spec Limits(
"$SAMPLE_DATA/CitySpecLimits.jmp"
)
)
);
이 예에서는 사용자가 사양 제한 테이블을 선택할 수 있는 대화 상자가 열립니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
obj = dt << Manage Spec Limits(
Y( dt << Get Column Group( "Processes" ) )
);
플랫폼 기능을 활용하는 이 기본 코드는 유지 관리도 훨씬 쉽습니다.
도움이 되었기를 바랍니다.
건배,
비
Re: 열에 저장된 값이 있는 열의 사양 제한 설정안녕 모두,
다음 코드를 사용하여 해결책을 찾았습니다.
Eval(
Eval Expr(
tempUSL=Col Stored Value(dt1, Expr(i), 1)
)
);
Eval(
Eval Expr(
tempLSL=Col Stored Value(dt1, Expr(i), 2)
)
);
감사해요
Re: 열에 저장된 값이 있는 열의 사양 제한 설정'tempUSL'과 'tempLSL'에 직접 번호를 할당하면 작동할 수 있습니다.
하지만 사양 테이블에서 사양 제한을 할당해야 합니다.
Names Default To Here( 1 );
Files = Pick File(
"Select CSV File",
"$Downloads",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
""
);
dt0 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
dt1 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 5 ),
Lines To Read( 2 ),
Year Rule( "20xx" )
)
);
For(i=13, i<=N Cols(dt0), i++,
Column(dt0,i)<<DATA type=""></DATA>