스크립트 실행 중 오류 - Send가 'Send'에 액세스하거나 평가할 때 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/사용자가 열 데이터 파일(.jmp) 파일을 선택할 수 있도록 기여자 중 한 명이 이전에 공유한 스크립트를 수정했습니다(감사합니다).
Names Default To Here( 1 );
// Open a dialog to choose a .jmp file to open
// Get the filename of the .jmp file to open
dt = Pick File("Select a .jmp file to open", "", {"JMP Files|jmp;jsl;jrn", "All Files|*"}, 1, 0, "");
// If the user did not select a file, exit the script
If( Is Missing( dt ),
Throw(),
// Else Open the selected file
Open( dt )
);
// Get all of the numeric column's names
colNameList = dt << get column names( string, continuous );
// Take the data from rows 1 & 2 and create the Spec Limits column property
For Each( {col}, colNameList,
Eval(
Substitute(
Expr(
Column( dt, col ) << set property(
"Spec Limits",
{LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )}
)
),
Expr( _LSL_ ), As Column( dt, col )[1],
Expr( _USL_ ), As Column( dt, col )[2]
)
)
);
// Exclude and Hide row 1 & 2 to eliminate them from Distributions
dt << Select rows( {1,2} );
dt << hide and exclude;
// Run the Distribution Platform
dt << Distribution( column( eval(colNameList) ));스크립트를 실행할 때 다음 오류가 발생했습니다.
Send는 'Send'에 대한 액세스 또는 평가 시 스크립팅 가능한 개체를 기대합니다. dt << /*###*/열 이름 가져오기(문자열, 연속형) /*###*/
dt << 열 이름 가져오기에 문제가 있는 것 같나요?
처리하고 싶은 데이터 파일의 사본도 첨부했습니다. 데이터의 첫 번째 행과 두 번째 행은 각각 LSL과 USL이므로 데이터의 일부로 포함하고 싶지 않습니다. 그러나 오히려 분포 그래프에서 LSL 및 USL 선을 그리는 데 사용됩니다.
커뮤니티의 도움에 감사드립니다. 감사합니다!
자동화 및 스크립팅Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/안녕하세요 짐,
이번 여행을 안내해주셔서 정말 감사드립니다!
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 예상합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/예, 수행해야 할 작업은 출력 전체를 반복하고 각 축을 조정하는 것뿐입니다. 아래를 참조하세요
names default to here(1);
// Get the filename of the .jmp file to open
dt = Pick File("Select a .jmp file to open", "", {"JMP Files|jmp;jsl;jrn", "All Files|*"}, 1, 0, "");
// If the user did not select a file, exit the script
If( Is Missing( dt ),
Throw(),
// Else Open the selected file
dt = Open( dt )
);
// Get all of the numeric column's names
colNameList = dt << get column names( string, continuous );
// Take the data from rows 1 & 2 and create the Spec Limits column property
For Each( {col}, colNameList,
Eval(
Substitute(
Expr(
Column( dt, col ) << set property(
"Spec Limits",
{LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )}
)
),
Expr( _LSL_ ), As Column( dt, col )[1],
Expr( _USL_ ), As Column( dt, col )[2]
)
)
);
// Exclude and Hide row 1 & 2 to eliminate them from Distributions
dt << Select rows( {1,2} );
dt << hide and exclude(1);
// Run the Distribution Platform
dist = dt << Distribution( column( eval(colNameList) ));
// Loop across the output and addjust the axes
rdist = dist << report;
For Each( {col, i}, colNameList,
offset = (Column( col )[2] - Column( col )[1]) * .1;
myMin = Column( col )[1] - offset;
myMax = Column( col )[2] + offset;
// Adjust Min and Max Y-axis
rdist[axis box( i )] << Min( myMin ) << Max( myMax );
);Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/축 설정이 모든 분포 차트에 적용되도록 일종의 루프가 필요할 것 같습니까?
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/스크립트를 다음과 같이 변경하여 약간의 진전을 이루었습니다.
// Get the filename of the .jmp file to open
dt = Pick File("Select a .jmp file to open", "", {"JMP Files|jmp;jsl;jrn", "All Files|*"}, 1, 0, "");
// If the user did not select a file, exit the script
If( Is Missing( dt ),
Throw(),
// Else Open the selected file
dt = Open( dt )
);
// Get all of the numeric column's names
colNameList = dt << get column names( string, continuous );
// Take the data from rows 1 & 2 and create the Spec Limits column property
For Each( {col}, colNameList,
Eval(
Substitute(
Expr(
Column( dt, col ) << set property(
"Spec Limits",
{LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )}
)
),
Expr( _LSL_ ), As Column( dt, col )[1],
Expr( _USL_ ), As Column( dt, col )[2]
)
)
);
// Exclude and Hide row 1 & 2 to eliminate them from Distributions
dt << Select rows( {1,2} );
dt << hide and exclude;
// Adjust Min and Max Y-axis
//dist = dt << Set Axis(
// Min( -10 ),
// Max( 10 )
//);
// Run the Distribution Platform
dist = dt << Distribution( column( eval(colNameList) ));
// Adjust Min and Max Y-axis
rdist = dist << report;
axisbox = rdist[axis box( 1 )];
axisbox << Min( 0 );변경으로 인해 첫 번째 분포 차트의 Min이 "0"으로 변경되었지만 나머지 변경 사항은 변경되지 않았습니다. Min 설정이 모든 차트에 적용되도록 코드를 어떻게 변경해야 하는지 알 수 있을까요?
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/축의 최대값을 설정하는 구문은 다음과 같습니다.
dist = dt << Set Axis(
Min( -10 ),
Max( 10 )
);
AxisBox() 설정을 변경하기 위한 스크립팅 인덱스는 아래와 같습니다.

JSL 예제는 사용할 올바른 구문을 보여줍니다.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :weight ), X( :height ), FitLine );
rbiv = biv << report;
axisbox = rbiv[axis box( 1 )];
axisbox << Max( 120 );
다음은 예제 구문을 약간 수정한 것입니다. 여기서 축 설정은 스크립트에서 사용하려는 것과 유사하게 히스토그램 플롯에 대한 것입니다.
// Run the Distribution Platform
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = dt << Distribution( column( :weight ));
rdist = dist << report;
axisbox = rdist[axis box( 1 )];
axisbox << Max( 200 ) << Min( 50 );
디스플레이 트리에 대한 스크립팅 가이드 섹션에서 디스플레이 출력 조작에 대해 자세히 알아볼 수 있습니다.
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/분포 그래프에서 Y축의 최대값과 최소값을 변경할 수 있는지 확인하기 위해 다음 줄을 추가했습니다.
// Adjust Min and Max Y-axis
dist = dt << Set Axis(
Min( -10 ),
Max( 10 )
);
효과는 없는 것 같습니다. 내가 잘못하고 있는 걸까?
전체 스크립트:
// Get the filename of the .jmp file to open
dt = Pick File("Select a .jmp file to open", "", {"JMP Files|jmp;jsl;jrn", "All Files|*"}, 1, 0, "");
// If the user did not select a file, exit the script
If( Is Missing( dt ),
Throw(),
// Else Open the selected file
dt = Open( dt )
);
// Get all of the numeric column's names
colNameList = dt << get column names( string, continuous );
// Take the data from rows 1 & 2 and create the Spec Limits column property
For Each( {col}, colNameList,
Eval(
Substitute(
Expr(
Column( dt, col ) << set property(
"Spec Limits",
{LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )}
)
),
Expr( _LSL_ ), As Column( dt, col )[1],
Expr( _USL_ ), As Column( dt, col )[2]
)
)
);
// Exclude and Hide row 1 & 2 to eliminate them from Distributions
dt << Select rows( {1,2} );
dt << hide and exclude;
// Adjust Min and Max Y-axis
dist = dt << Set Axis(
Min( -10 ),
Max( 10 )
);
// Run the Distribution Platform
dist = dt << Distribution( column( eval(colNameList) ));Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/그것은 쉽게 이루어집니다. 스크립팅 인덱스를 살펴보고 AxisBox 개체에 사용할 수 있는 메시지를 살펴보세요. 최소값과 최대값을 설정할 수 있습니다. JSL을 설명하는 색인에 예제가 있습니다.
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/스크립트에 Show( ) 함수를 넣으면 JMP가 모든 데이터 포인트와 LSL 및 USL을 고려하여 축의 최대값과 최소값을 조정한다고 들었습니다.
하지만 스크립트를 통해 (앞서 언급한 공식을 사용하여) Max와 Min을 수동으로 정의하고 싶다면 가능할까요?
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/Spec Limits Column Properties가 설정되고 Show(1) 요소가 지정되면 기본적으로 JMP는 모든 데이터 포인트와 지정된 모든 Spec Limits를 포함하도록 각 그래프의 축 값을 변경합니다.

Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/명확한 설명에 감사드립니다. dt가 원래 경로 이름과 파일 이름을 사용하여 열 이름을 얻으려고 할 때 사용할 수 없게 된다고 말씀하신 의미를 이해합니다. 그러므로 나는 다음을 수행해야 합니다:
dt = Open( dt )
적절한 처리를 위해 파일의 적절한 데이터와 함께 데이터 테이블이 로드됩니다.
또한 스크립트를 통해 각 그래프 Y축의 개별 최대값과 최소값을 조정하고 싶은지 물어봐도 될까요? 어떻게 해야 합니까?
USL과 LSL 사이의 절대 범위를 찾은 다음 최대 Y를 USL + 0.1*범위에, 최소 Y를 LSL-0.1*범위에 배치하고 싶습니다. 아이디어는 분포 그래프에 대한 일관된 표현을 갖는 것입니다.
Re: 스크립트 실행 중 오류가 발생했습니다. Send는 'Send'에 대한 액세스 또는 평가에서 스크립팅 가능한 개체를 기대합니다. dt << /*###*/get 열 이름( 문자열, 연속 ) /*###*/변수 "dt"가 문제입니다. 선택 결과로 Pick File()에서 이를 사용하고 있습니다. 따라서 다음과 같이 열려는 파일의 경로와 이름 값을 갖게 됩니다.
"C:\문서\myfile.jmp"
이는 Open() 함수에 매우 적합합니다.
Open( dt )
Open() 함수에는 경로와 파일 이름이 있어야 하기 때문입니다.
그러나 데이터 테이블을 연 후에는 "dt"가 메시지의 객체로 사용되어 열 이름을 가져옵니다()
colNameList = dt << get column names( string, continuous );
열 이름 가져오기() 메시지는 경로 및 파일 이름이 아닌 데이터 테이블에 적용되어야 합니다.
Open() 함수 호출을 다음으로 변경하면 JSL이 실행됩니다.
dt = Open( dt )
변수는 값을 취하도록 변경됩니다.
Data Table( "데이터 테이블의 이름" )
이는 JSL의 나머지 부분에 필요한 양식입니다.