오류: 플랫폼에서 현재 열을 찾을 수 없습니다.열 전환기, 데이터 필터 및 행 상태 처리기 기능을 결합할 때 이상한 오류 메시지가 나타납니다.
첨부된 스크립트는 간단한 예를 제공합니다(아직도 꽤 길다는 점에 대해 사과드립니다). 요약하면 스크립트는 다음과 같습니다.
- 사양 제한이 있는 열이 포함된 데이터 테이블을 사용합니다(예를 들어 '반도체 기능'을 사용합니다)
- 프로세스 능력 요약 보고서 테이블을 생성합니다.
- 배포 출력 및 열 전환기를 테이블에 추가합니다.
- 테이블을 정리하고 열 전환기를 배포판에 연결합니다.
- 프로세스 능력 테이블에 대한 업데이트를 모니터링하는 행 변경 함수를 생성합니다.
- 사용자가 테이블에서 행을 선택하면 매개변수 열 이름이 캡처되어 배포 플랫폼을 변경하는 열 전환기에 전달됩니다.
원본 데이터 테이블이 원치 않는 행을 숨기고 제외하여 필터링할 때까지는 정상적으로 작동합니다. 프로세스 능력 테이블은 정상적으로 업데이트되지만 테이블에서 새 매개변수를 선택하면 다음 메시지가 두 번(또는 그 이상) 나타납니다.

배포 플랫폼은 결국 업데이트됩니다. 그러나 사용자가 추가 필터링을 수행하면 결국 다음 오류가 발생합니다.

이 정보를 얻으면 행 상태 핸들러가 테이블과 완전히 연결되지 않은 것처럼 보입니다.
누구든지 수정 사항이나 내가 하고 있는 작업을 수행하는 더 나은 방법을 제안해 주시면 감사하겠습니다!
MacOS에서 JMP 17.2를 사용하고 있습니다.
데이터 탐색 및 시각화Re: 오류: 플랫폼에서 현재 열을 찾을 수 없습니다.몇 가지 사소한 변경을 했습니다 *) - 무엇이 실제로 문제를 해결했는지 확인해야 합니다 - 그랬습니까?
- 배포 보고서의 열 전환기를 사용하고 보고서 레이어를 통해 핸들을 얻습니다.
- 정의하다 설정테이블선택 인수가 1개인 함수로, 다음에서 함수 호출로 직접 사용할 수 있습니다. 행 상태 핸들러 만들기
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt << clear column selection() << clear select();
dt << Data Filter(
Mode( Select( 0 ), Include( 1 ) ),
Add Filter( columns( :lot_id ), Display( :lot_id, N Items( 13 ) ) )
);
colList = {:NPN1, :PNP1, :PNP2, :NPN2, :PNP3};
Eval(
Eval Expr(
win1 = New Window( "Parametric Test Summary Report",
pc = dt << Process Capability(
Process Variables( Expr( colList ) ),
Moving Range Method( Average of Moving Ranges ),
Capability Box Plots( 0 ),
Within Sigma Summary Report( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Process Performance Plot( 0 ),
Automatic Recalc( 1 ),
SendToReport(
Dispatch(
{"Within Sigma Capability Summary Report"},
"",
TableBox,
{Sort By Column( 14, 1 )}
)
)
),
tb = Text Box(
" Parameter distribution will appear below here. Select a row to show distribution for that parameter. \!N",
<<SET wrap=""> 1,
Throw( "Only select a single row" ),
Show( col1 = dt << get selected columns() );
cs << set current( Char( col1[1] ) );
);
dt << clear column selection();
)
);
);
setUpTableSelect(1);
rs = dt << make row state handler( setUpTableSelect );</SET>
Re: 오류: 플랫폼에서 현재 열을 찾을 수 없습니다.안녕 @matth1 ,
이것이 왜 작동하는지 완전히 잘 모르겠지만 코드를 약간 수정하고 링크 플랫폼 호출을 setUpTableSelect 호출 외부와 새 창을 포함하는 Epxr() 내에서 이동했습니다(그러나 새 창 호출 내부는 아님). . 이는 로트 간 전환 시 데이터 필터를 올바르게 적용하고 오류를 방지하는 것으로 보입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt << clear column selection() << clear select();
dt << Data Filter( Mode( Select( 0 ), Include( 1 ) ), Add Filter( columns( :lot_id ), Display( :lot_id, N Items( 13 ) ) ) );
colList = {:NPN1, :PNP1, :PNP2, :NPN2, :PNP3};
setUpTableSelect = Expr(
pct = Report( pc )[Table Box( 1 )];
pct << set click sort( 1 );
//cs << link platform( dist1 );
Try( pct[Number Col Box( "Cpm" )] << delete( 1 ) );
Wait( 0 );
pct << set height( 250 );
win1 << move window( 0, 0 );
pct << set row change function(
Function( {this},
selRow = this << get selected rows();
If( N Items( selRow ) > 1,
Throw( "Only select a single row" ),
Show( col1 = dt << get selected columns() );
cs << set current( Char( col1[1] ) );
);
dt << clear column selection();
)
);
);
WinExpr = Expr(
win1 = New Window( "Parametric Test Summary Report",
pc = dt << Process Capability(
Process Variables( Eval( colList ) ),
Moving Range Method( Average of Moving Ranges ),
Capability Box Plots( 0 ),
Within Sigma Summary Report( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Process Performance Plot( 0 ),
Automatic Recalc( 1 ),
SendToReport( Dispatch( {"Within Sigma Capability Summary Report"}, "", TableBox, {Sort By Column( 14, 1 )} ) )
),
tb = Text Box(
" Parameter distribution will appear below here. Select a row to show distribution for that parameter. \!N",
<<SET wrap=""></SET>도움이 되었기를 바랍니다!,
DS
Re: 오류: 플랫폼에서 현재 열을 찾을 수 없습니다.설명:
만약에
cs << link platform( dist1 );
의 일부입니다 설정테이블선택 이는 테이블이 업데이트될 때마다 실행됩니다.
하지만 이렇게 설정되어 있어요 :NPN1 다른 열로 대체됩니다. 이는 정확한 순간에 배포 플랫폼에서 :NPN1이 사용되는 경우에만 작동합니다. 그렇지 않은 경우 오류 메시지가 표시됩니다.
Re: 오류: 플랫폼에서 현재 열을 찾을 수 없습니다.둘 다 고마워요 @호기 그리고 @SDF1 ! 그게 도움이 됐어요. 링크 플랫폼 명령을 여러 번 반복하면 문제가 발생할 것이라는 점을 고려하지 않았습니다.