로컬 데이터 필터의 변경 감지<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
다음은 변경 시 행 상태 처리기를 트리거하고 차트를 업데이트하는 데이터 필터를 사용하는 스크립트입니다.로컬 필터를 꼭 사용하고 싶지만 로컬 필터의 변경 사항을 감지하는 방법을 알 수 없습니다.로컬 데이터 필터의 변경 사항을 어떻게 감지합니까?
이름의 기본값은 여기에 있습니다. ( 1 ) ;
dt = 열려 있는 ( "$SAMPLE_DATA\반도체 능력.jmp" ) ;
에프 = 기능 ( { ㅏ } ,
// 보고서 출력의 한도 요약 개요 상자에서 LCL 및 UCL을 캡처합니다.
myLCL = ( 보고서 ( CCB )[ "NPN1 한도 요약" ][ 테이블 박스 ( 1 )][ 2 ] << 얻다 )[ 1 ] ;
myUCL = ( 보고서 ( CCB )[ "NPN1 한도 요약" ][ 테이블 박스 ( 1 )][ 4 ] << 얻다 )[ 1 ] ;
// 새 축 설정을 제어 차트에 다시 적용합니다.
보고서 ( CCB )[ 축 상자 ( 삼 )] << 최소 ( myLCL ) ;
보고서 ( CCB )[ 축 상자 ( 삼 )] << 맥스 ( myUCL ) ;
) ;
RS = dt << rowstate 핸들러 만들기 ( 에프 ) ;
새창 ( "작업 예" ,
데이터 필터 컨텍스트 상자 (
H 목록 상자 (
dt << 데이터 필터 ( 필터 추가 ( 열 ( : 대지 ) ) , 방법 ( 선택하다 ( 1 ) , 보여주다 ( 1 ) , 포함하다 ( 1 )) ) ,
플랫폼 ( dt ,
CCB = 관리도 작성기 (
크기 ( 534 , 453 ) ,
제어판 표시 ( 0 ) ,
변수 ( 와이 ( : NPN1 ) ) ,
차트 ( 위치 ( 1 ) , 제한 ) ,
차트 ( 위치 ( 2 ) ) ,
SendToReport (
보내다 (
{} ,
"NPN1" ,
스케일박스 ,
{ 최소 ( 96.6346153846154 ) , 맥스 ( 131.634615384615 ) , Inc. ( 5 ) , 사소한 진드기 ( 0 ) ,
참조 라인 추가 ( 104.412948990151 , "단단한" , "파란색" , "LSL" , 1 ) ,
참조 라인 추가 ( 131.893493064355 , "단단한" , "파란색" , "USL" , 1 ) ,
참조 라인 추가 ( 118.153221027253 , "단단한" , "파란색" , "표적" , 1 )}
)
)
)
)
)
)
) ;
부터 보내진 우편 윈도우 10의 경우
Re: 로컬 데이터 필터의 변경 사항 감지와 함께
rs = xx << Make Filter State Handler( dosomethingwithselection );
대신에
xx << MakeRowStateHandler( dosomethingwithselection );
그것은 작동할 것이다.
반환된 필터 상태 처리기를 JSL 기호에 저장하는 것이 중요합니다. rs =
<STRIKE>rs =</STRIKE> xx << Make Filter State Handler( dosomethingwithselection );
(없이 RS = ) 작동 안 할 것이다: 필터 변경 핸들러
Re: 로컬 데이터 필터의 변경 사항 감지당신의 질문에 직접 대답하지 마세요, 짐. 하지만 FWIW, 로컬 데이터 필터 개체에 대한 메시지 목록에서 'MakeRowStateHandler'를 볼 수 없었습니다.
Re: 로컬 데이터 필터의 변경 사항 감지이안,
당신의 예는 훌륭했습니다.나는 스크립팅 인덱스에서 이에 대한 문서를 찾기 위해 다시 돌아갔고 "Mark Row State Handler"가 데이터 테이블 필터에서 작동한다는 가장 모호한 참조만을 발견했습니다.그래서 필터의 개요 상자가 아닌 필터를 직접 가리킬 수 있도록 설정하면 작동하고 훨씬 더 직접적인 코드 조각이 될 것이라고 생각했습니다.그러나 그것은 효과가 없었습니다.왜 그것이 작동하지 않는지에 대한 통찰력이 있습니까?스크립트를 실행하면 핸들 "xx"가 데이터 필터를 가리키고 있다는 것을 알고 있습니다.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
// 일부 데이터
dt = 새 테이블 ( "과일" ,
행 추가( 삼 ) ,
새 열 ( "과일" ,
성격 ,
"명사 같은" ,
값 설정( { "배" , "사과" , "주황색" } )
)
) ;
// 로컬 데이터 필터가 포함된 보고서
GB = dt << 그래프 빌더 (
크기( 528 , 448 ) ,
제어판 표시( 0 ) ,
범례 표시( 0 ) ,
변수( X( : 과일 ) ) ,
요소( 바( X , 전설( 삼 ) ) )
) ;
더블 엑스 = GB << 로컬 데이터 필터 ( 모드 , 필터 추가(열( : 과일 ) ) ) ;
// 행 상태 핸들러 함수
doSomethingWithSelection = 기능 ( {x} ,
{기본 로컬},
삑 하는 소리 () ;
기다리다 ( 0.1 ) ;
삑 하는 소리 () ;
) ;
// 보고서에 대한 참조 가져오기
gbReport = GB << 보고서;
// 데이터 필터 표시 상자가 이해하는 메시지를 확인합니다(로그에 인쇄).
속성 표시 ( gb보고서[ 아웃라인 박스 ( 1 )] ) ;
// 로컬 데이터 필터 표시 상자에 행 상태 핸들러를 할당합니다.
더블 엑스 << MakeRowStateHandler (선택으로 뭔가를 하세요) ;
//rsh = gbReport[OutlineBox(1)] << MakeRowStateHandler(dosomethingwithselection);
Re: 로컬 데이터 필터의 변경 사항 감지아마도 로컬 데이터 필터에 행 상태 핸들러를 추가해 볼 수 있을까요? 예를 들어:
이름DefaultTo여기 ( 1 ) ;
// 일부 데이터
dt = 새 테이블 ( "과일" ,
행 추가 ( 삼 ) ,
새 열 ( "과일" ,
성격 ,
"명사 같은" ,
값 설정 ( { "배" , "사과" , "주황색" } )
)
) ;
// 로컬 데이터 필터가 포함된 보고서
GB = dt << 그래프 빌더 (
크기 ( 528 , 448 ) ,
제어판 표시 ( 0 ) ,
범례 표시 ( 0 ) ,
변수 ( 엑스 ( : 과일 ) ) ,
강요 ( 술집 ( 엑스 , 전설 ( 삼 ) ) ) ,
로컬 데이터 필터 ( 방법 , 필터 추가 ( 기둥 ( : 과일 ) ) )
) ;
// 행 상태 핸들러 함수
doSomethingWithSelection = 기능 ({ 엑스 } , { 기본 로컬 } , 삑 하는 소리 () ; 기다리다 ( 0.1 ) ; 삑 하는 소리 () ) ;
// 보고서에 대한 참조 가져오기
gbReport = GB << 보고서 ;
// 데이터 필터 표시 상자가 이해하는 메시지를 확인합니다(로그에 인쇄).
속성 표시 ( gbReport [ 아웃라인박스 ( 1 )]) ;
// 로컬 데이터 필터 표시 상자에 행 상태 핸들러를 할당합니다.
rsh = gbReport [ 아웃라인박스 ( 1 )] << MakeRowStateHandler ( doSomethingWithSelection ) ;
Re: 로컬 데이터 필터의 변경 사항 감지나는 로컬 필터를 보다 직접적으로 모니터링할 수 있는 기능이 있기를 바랐습니다.아마도 14.0에는 그런 모니터가 있을 것입니다. . 코드를 보내주셔서 감사합니다.
Re: 로컬 데이터 필터의 변경 사항 감지스크립트로 로컬 데이터 필터를 모니터링하기 위한 기본 제공 지원은 생각할 수 없습니다.
다음은 사용자의 필터링 변경 사항을 찾기 위해 백그라운드에서 간단히 실행되는 해킹입니다.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
dt = 열려 있는 ( "$SAMPLE_DATA\반도체 능력.jmp" ) ;
에프 = 기능 ( { CCB } ,
// 보고서 출력의 한도 요약 개요 상자에서 LCL 및 UCL을 캡처합니다.
myLCL = ( 보고서 ( CCB )[ "NPN1 한도 요약" ][ 테이블 박스 ( 1 )][ 2 ] << 얻다 )[ 1 ] ;
myUCL = ( 보고서 ( CCB )[ "NPN1 한도 요약" ][ 테이블 박스 ( 1 )][ 4 ] << 얻다 )[ 1 ] ;
// 새 축 설정을 제어 차트에 다시 적용합니다.
보고서 ( CCB )[ 축 상자 ( 삼 )] << 최소 ( myLCL ) ;
보고서 ( CCB )[ 축 상자 ( 삼 )] << 맥스 ( myUCL ) ;
) ;
뉴 = 새창 ( "작업 예" ,
데이터 필터 컨텍스트 상자 (
H 목록 상자 (
ldf = dt << 데이터 필터 ( 현지의 , 필터 추가 ( 열 ( : 대지 ) ) , 방법 ( 선택하다 ( 1 ) , 보여주다 ( 1 ) , 포함하다 ( 1 )) ) ,
플랫폼 ( dt ,
CCB = 관리도 작성기 (
크기 ( 534 , 453 ) ,
제어판 표시 ( 1 ) ,
변수 ( 와이 ( : NPN1 ) ) ,
차트 ( 위치 ( 1 ) , 제한 ) ,
차트 ( 위치 ( 2 ) ) ,
SendToReport (
보내다 (
{} ,
"NPN1" ,
스케일박스 ,
{ 최소 ( 96.6346153846154 ) , 맥스 ( 131.634615384615 ) , Inc. ( 5 ) , 사소한 진드기 ( 0 ) ,
참조 라인 추가 ( 104.412948990151 , "단단한" , "파란색" , "LSL" , 1 ) ,
참조 라인 추가 ( 131.893493064355 , "단단한" , "파란색" , "USL" , 1 ) ,
참조 라인 추가 ( 118.153221027253 , "단단한" , "파란색" , "표적" , 1 )}
)
)
)
)
)
)
) ;
// 컨트롤 차트 아래의 Where 절을 살펴보고 로컬 데이터 필터링을 모니터링합니다.
// 먼저 Where 절 TextBox를 찾습니다.
// (숫자는 다양하지만 항상 마지막인 것 같습니다)
기다리다 ( 0 ) ;
나 = 1 ;
하는 동안 ( 스크립팅 가능 ( 노력하다 ( 부모의 = 뉴 [ 텍스트 상자 ( 나 )] << 부모의 )) ,
하는 동안 ( 부모 유형 = 숯 ( 부모의 << 클래스 이름 ) != "아웃라인박스" , 부모의 = 부모의 << 부모의 ) ;
나 ++;
) ;
// 적절한 빈도로 변경 사항을 검색합니다.
필터 = "없음" ;
하는 동안 ( 스크립팅 가능 ( 뉴 ) , // nw가 닫힐 때까지 실행됩니다.
기다리다 ( 0.1 ) ; // 여기에서 스캔 주파수를 설정합니다.
만약에 ( ! 누락 ( 새 필터 = 노력하다 ( 뉴 [ 텍스트 상자 ( 나 )] << gettext )) ,
만약에 ( 필터 != 새필터 ,
필터 = 뉴 [ 텍스트 상자 ( 나 )] << gettext ;
에프 ( CCB ) ; // 한계를 얻고 축을 설정합니다.
)
) ;
) ;