모든 표시 트리 요소 찾기<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕,
JSL을 사용하여 스크립팅 목적으로 디스플레이 트리 내의 모든 개체 목록을 가져오고 싶습니다.특히, 창 내의 모든 FrameBox 목록을 가져온 다음 각각에 그래픽 스크립트를 추가하고 싶습니다.또는 더 좋은 방법은 사용 가능한 FrameBox 목록을 사용자에게 반환하고 사용자가 추가할 그래픽 스크립트를 선택하도록 하는 것입니다.
창에 있는 모든 FrameBox의 목록을 어떻게 얻을 수 있습니까?디스플레이 트리만 보는 것이 아니라 스크립팅에 적합한 형식의 목록을 얻고 싶습니다.이것이 가능한가?
감사해요!
Re: 모든 디스플레이 트리 요소 찾기사용 중인 JMP 버전은 무엇입니까?
Windows 상자 또는 Mac에서 실행 중입니까?
로그를 지우고 스크립트를 다시 실행한 후 다음 응답에 전체 로그 출력을 포함시켜 주시겠습니까?
Re: 모든 디스플레이 트리 요소 찾기이 스크립트를 실행하려고 하는데 오류 메시지가 나타납니다.
'Send' 액세스 또는 평가에서 Send 예상 스크립터블 개체{1} , 노드 << /*###*/className/*###*/
왜 또는 무엇을 해야 하는지 아십니까?
감사해요,
토바
Re: 모든 디스플레이 트리 요소 찾기이 스크립트를 실행하려고 하는데 오류 메시지가 나타납니다.
'Send' 액세스 또는 평가에서 Send 예상 스크립터블 개체{1} , 노드 << /*###*/className/*###*/
왜 또는 무엇을 해야 하는지 아십니까?
감사해요
Re: 모든 디스플레이 트리 요소 찾기안녕하세요 MS,
문제는 "parent << getTitle"이 JMP10에서 Graph Builder에 대한 결과를 생성하지 않는다는 것입니다.
우리 팀은 JMP10을 위해 이것 없이 마감할 것입니다. 당신의 도움을 주셔서 감사합니다!
Re: 모든 디스플레이 트리 요소 찾기저는 JMP 10 라이선스가 없기 때문에 도움을 드리지 못할 수도 있습니다. 무엇이 잘못되었나요? 로그에 메시지가 있습니까?
Graph Builder는 JMP의 새 버전이 나올 때마다 많이 발전했습니다. Graph Builder의 스크립팅 지원도 개선되었다고 생각합니다. v.10 Graph Builder 보고서에는 (아직) "스크립팅 가능"하지 않은 특수 디스플레이 상자 유형이 있어 검색이 완료되기 전에 while 루프가 중지될 수 있습니다.
당신은 또한 사용하려고 할 수 있습니다 끼워 넣다() 대신에 항목()을 삽입합니다.
Re: 모든 디스플레이 트리 요소 찾기안녕 석사 ,
귀하의 스크립트에 다시 한 번 감사드립니다. 그것은 JMP12에서 아름답게 작동합니다.이제 스크립트를 JMP10까지 호환되도록 만들려고 하는데 GraphBuilder용 스크립트를 디버깅하는 데 문제가 있습니다.스크립트를 작동시키는 방법을 알고 계십니까? JMP10의 GraphBuilder?
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
// 스크립트는 graph1에 대해 작동합니다.
그래프1 = dt << 적합 모델 (
와이 ( : 키 ) ,
효과 ( : 섹스 ) ,
성격 ( "표준 최소 제곱" ) ,
중요성 ( "효과 레버리지" ) ,
달리다 (
: 키 << { 적합성 부족 ( 0 ) , 예측으로 실제 플롯 ( 1 ) ,
박스콕스 Y 변환 ( 1 ) , 예측으로 잔차 플롯 ( 1 ) ,
플롯 효과 레버리지 ( 1 )}
)
) ;
// graph2에서 스크립트가 충돌합니다.
/*
graph2 = dt << 그래프 빌더(
제어판 표시( 0 ),
변수( X( :height ), Y( :weight ), Wrap( :age ) ),
요소( 점( X, Y, 범례( 1 ) ) )
);
*/
기다리다 ( 1 ) ;
이기다 = 현재 창 () ;
// 표시된 FrameBox 번호를 제목과 연결하는 연관 배열
fbTitles = [ => ] ;
나 = 1 ;
하는 동안 ( 스크립팅 가능 ( 노력하다 ( 부모의 = 이기다 [ 프레임박스 ( 나 )] << 부모의 ) ) ,
하는 동안 ( 부모 유형 = 숯 ( 부모의 << 클래스 이름 ) != "아웃라인박스" ,
부모의 = 부모의 << 부모의
) ;
fbTitles << 항목 삽입 ( 나 , 부모의 << getTitle ) ;
나 ++;
) ;
보여주다 ( fbTitles ) ;
// 창을 선택합니다.
이기다 << 창을 앞으로 가져오기 ;
을 위한 ( 나 = 1 , 나 <= N개 항목 ( fbTitles ) , 나 ++,
이기다 [ 프레임박스 ( 나 )] << 선택하다 ;
새창 ( "프레임박스 제목" , << 모달 , 텍스트 상자 ( 평가 ( fbTitles [ 나 ] ) ) ) ;
이기다 [ 프레임박스 ( 나 )] << 선택 취소 ;
) ;
Re: 모든 디스플레이 트리 요소 찾기고마워 MS.
이 후속 질문에 대한 별도의 토론에 답변을 게시하면, 숨겨지거나 표시된 FrameBox 찾기 , 올바르게 표시하겠습니다.
매우 인상적.
Re: 모든 디스플레이 트리 요소 찾기Ian이 내장한 다른 모든 것들이 필요하지 않은 경우에 이것은 저에게 효과적이었습니다.목록 목록을 반환하는 이유를 모르지만 첫 번째 목록을 선택합니다.
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
비브 = (dt << 이변량 (와이( : 키 , : 무게) , 엑스( : 나이))) ;
프레임리스트 = 비브 << xpath ( "//프레임박스" ) ;
기다리다 ( 2 ) ;
프레임_목록[ 1 ][ 1 ] <<선택;
기다리다 ( 2 ) ;
프레임_목록[ 2 ][ 1 ] <<선택;
Re: 모든 디스플레이 트리 요소 찾기흥미로운 토론. 다음은 위의 예에서 많이 차용한 예입니다. 여기에서 연관 배열을 사용하여 현재 숫자 제목과 함께 프레임 상자를 표시합니다.
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
객체 = dt << 적합 모형 (
와이 ( : 키 ) ,
효과 ( : 섹스 ) ,
성격 ( "표준 최소 제곱" ) ,
중요성 ( "효과 레버리지" ) ,
달리다 (
: 키 << { 적합성 부족 ( 0 ) , 예측으로 실제 플롯 ( 1 ) , 박스콕스 Y 변환 ( 1 ) , 예측으로 잔차 플롯 ( 1 ) ,
플롯 효과 레버리지 ( 1 )}
)
) ;
보고서 = 보고서 ( 객체 ) ;
// 표시된 프레임박스 번호를 제목과 연결하는 연관 배열
fbTitles = [ => ] ;
나 = 1 ;
하는 동안 ( 스크립팅 가능 ( 노력하다 ( 부모의 = 보고서 [ 프레임박스 ( 나 )] << 부모의 )) ,
하는 동안 ( 부모 유형 = 숯 ( 부모의 << 클래스 이름 ) != "아웃라인박스" , 부모의 = 부모의 << 부모의 ) ;
fbTitles << 항목 삽입 ( 나 , 부모의 << getTitle ) ;
나 ++;
) ;
보여주다 ( fbTitles ) ;
// 창을 선택합니다.
객체 << 창을 앞으로 가져오기 ;
을 위한 ( 나 = 1 , 나 <= N개 항목 ( fbTitles ) , 나 ++,
보고서 [ 프레임박스 ( 나 )] << 선택하다 ;
이기다 = 새창 ( "프레임박스 제목" , << 모달 , 텍스트 상자 ( 평가 ( fbTitles [ 나 ]))) ;
보고서 [ 프레임박스 ( 나 )] << 선택 취소 ;
) ;
Re: 모든 디스플레이 트리 요소 찾기좋아요.고마워 이안.반환된 숨겨진 FrameBox의 불행한 부작용은 FrameBox 제목이 아래와 같이 FrameBox 번호와 일치하지 않을 수 있다는 것입니다.Try() 함수의 다른 변형을 사용하여 스크립트를 작동시킬 수 있습니다.
여기에 기본 이름 ( 1 ) ;
로그 지우기 () ;
// 이 함수는 표시 트리를 재귀적으로 탐색하여 다음을 생성합니다.
// 구성하는 디스플레이 상자 이름의 사전 주문 목록
// 나무. 또한 각 FrameBox(표시 여부에 관계없이)를 찾습니다.
// 부모 OutlineBox의 이름을 가져옵니다.
선주문 = 기능 ( { 마디 } ,
현지의 ( { chnode } ,
// 현재 노드 검사
노드 유형 = 숯 ( 마디 << 클래스 이름 ) ;
인쇄 ( "노드: " || 노드 유형 ) ;
만약에 ( 노드 유형 == "프레임박스" ,
// 이 FrameBox의 부모 외곽선 노드의 제목을 찾습니다.
부모의 = 마디 << 부모의 ;
부모 유형 = 숯 ( 부모의 << 클래스 이름 ) ;
하는 동안 ( 부모 유형 != "아웃라인박스" ,
부모의 = 부모의 << 부모의 ;
부모 유형 = 숯 ( 부모의 << 클래스 이름 ) ;
) ;
에 집어 넣다 ( fbTitles , 부모의 << getTitle ) ;
) ;
// 재귀 수행
chnode = 마디 << 어린이 ;
하는 동안 ( 스크립팅 가능 ( chnode ) ,
재귀 ( chnode ) ;
chnode = chnode << 형제자매 ;
) ;
)
) ;
// '선주문'을 시도합니다. . .
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
객체 = dt << 적합 모델 (
와이 ( : 키 ) ,
효과 ( : 섹스 ) ,
성격 ( "표준 최소 제곱" ) ,
중요성 ( "효과 레버리지" ) ,
달리다 (
: 키 << { 적합성 부족 ( 0 ) , 예측으로 실제 플롯 ( 1 ) , 플롯 회귀 ( 0 ) , 예측으로 잔차 플롯 ( 1 ) , 플롯 효과 레버리지 ( 1 )
}
)
) ;
보고서 = 보고서 ( 객체 ) ;
fbTitles = {} ;
선주문 ( 보고서 ) ;
인쇄 ( "\!N" , fbTitles ) ;
// 창을 선택합니다.
기다리다 ( 1 ) ;
객체 << 창을 앞으로 가져오기 ;
을 위한 ( 나 = 1 , 나 <= N개 항목 ( fbTitles ) , 나 ++,
노력하다 (
보고서 [ 프레임박스 ( 나 )] << 선택하다 ;
이기다 = 새창 ( "프레임박스 제목" , << 모달 , 텍스트 상자 ( 평가 ( fbTitles [ 나 ] ) ) ) ;
보고서 [ 프레임박스 ( 나 )] << 선택 취소 ;
)
) ;
Re: 모든 디스플레이 트리 요소 찾기귀하의 질문에 직접 대답하지는 않지만 'Try()' 기능을 사용하여 언급한 실패를 무해하게 만들 수 있습니다.
Re: 모든 디스플레이 트리 요소 찾기안녕 이안@JMP ,
다시 한 번 감사드립니다. 선주문 기능.함수가 실제로 표시되는 FrameBox만 반환하는 방법이 있습니까?또는 JMP에서 어떤 FrameBox가 표시되는지 알 수 있는 방법이 있습니까?
내 스크립트가 표시되지 않는 FrameBox에 명령을 보내려고 하면 오류가 발생합니다.
Re: 모든 디스플레이 트리 요소 찾기고마워 이안.
Re: 모든 디스플레이 트리 요소 찾기완벽하게 가능합니다. 아래 코드는 선주문 순회를 사용하여 디스플레이 트리를 탐색합니다(원래는 JMP 사업부의 Joseph Morgan이 작성했다고 생각합니다). 나머지 코드에 따라 약간의 조정으로 필요한 것을 얻을 수 있어야 합니다.
NamesDefaultToHere ( 1 ) ;
로그 지우기 () ;
// 이 함수는 표시 트리를 재귀적으로 탐색하여 다음을 생성합니다.
// 구성하는 디스플레이 상자 이름의 선주문 목록
// 나무. 또한 각 FrameBox(표시 여부에 관계없이)를 찾습니다.
// 부모 OutlineBox의 이름을 가져옵니다.
선주문 = 기능 ({ 마디 } ,
현지의 ({ chnode } ,
// 현재 노드 검사
노드 유형 = 숯 ( 마디 << 클래스 이름 ) ;
인쇄 ( "노드: " || 노드 유형 ) ;
만약에 ( 노드 유형 == "프레임박스" ,
// 이 FrameBox의 부모 외곽선 노드의 제목을 찾습니다.
부모의 = 마디 << 부모의 ;
부모 유형 = 숯 ( 부모의 << 클래스 이름 ) ;
하는 동안 ( 부모 유형 != "아웃라인박스" ,
부모의 = 부모의 << 부모의 ;
부모 유형 = 숯 ( 부모의 << 클래스 이름 ) ;
) ;
에 집어 넣다 ( fbTitles , 부모의 << getTitle )
) ;
// 재귀 수행
chnode = 마디 << 어린이 ;
하는 동안 ( 스크립팅 가능 ( chnode ) ,
재귀 ( chnode ) ;
chnode = chnode << 형제자매 ;
) ;
) ;
) ;
// '선주문'을 시도합니다. . .
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
객체 = dt << 적합 모델 (
와이 ( : 키 ) ,
효과 ( : 섹스 ) ,
성격 ( "표준 최소 제곱" ) ,
중요성 ( "효과 레버리지" ) ,
달리다 (
: 키 << { 적합성 부족 ( 0 ) , 예측으로 실제 플롯 ( 1 ) ,
플롯 회귀 ( 0 ) , 예측으로 잔차 플롯 ( 1 ) ,
플롯 효과 레버리지 ( 1 )}
)
) ;
보고서 = 보고서 ( 객체 ) ;
fbTitles = {} ;
선주문 ( 보고서 ) ;
인쇄 ( "\!N" , fbTitles ) ;