JSL-열린 그래프 X 및 Y 값 가져 오기안녕하세요
열려있는 데이터 테이블을 콤보 상자에서 선택할 수있는 스크립트가 있습니다.

아래에 그래프가있는 데이터 테이블이있는 경우

이 그래프를 어떻게 선택할 수 있습니까?
그 이유는 X 및 Y 열 이름을 얻고 싶기 때문입니다.
예를 들어 위의 그림에 표시된 첫 번째 그래프에서 test 및 test2를 받고 싶습니다.

이 그래프는 JMP에서 이미 열려 있으며 제어 할 수 없습니다 (그래프를 생성하는 스크립트 편집 측면에서)
스크립팅Re : JSL-열린 그래프 X 및 Y 값 가져 오기작성하려는 코드를 실행하기 전에 JMP 세션을 제어 할 수 없었기 때문에 다음과 같은 접근 방식을 시도 할 수 있습니다.
NamesDefaultToHere(1);
tableOfInterest = "Big Class";
allWindows = GetWindowList();
tableWindows = {};
for (w = 1, w <= NItems(allWindows), w++,
winTitle = allWindows[w] << GetWindowTitle;
if (StartsWith(winTitle,tableOfInterest) & (allWindows[w] << WindowClassName) == "Report", InsertInto(tableWindows, allWindows[w]));
);
for (w = 1, w <= NItems(tableWindows), w++,
Print(tableWindows[w] << GetWindowTitle);
);
다양한 명령이 어떻게 작동하는지 보려면 '도움말> 스크립팅 색인'을 사용하십시오.
하위 보고서 목록이 있으면 각각을 검사하여 원하는 항목을 추출 할 수 있습니다. 그러나 보고서 트리는 복잡 할 수 있으므로 충분히 견고하게 만들기 위해 약간의 작업이 필요할 수 있습니다.
Re : JSL-열린 그래프 X 및 Y 값 가져 오기도와 주셔서 감사합니다
이제 XY 값 (빨간색으로 표시된 것)을 얻고 싶지만 해당 값에 액세스하는 방법을 모르겠습니다.
내가 할 수있는 것은 제목 (노란색으로 표시된 것)을 얻는 것입니다.
"get Text"대신 "get XML"을 사용하면 이름도 제공되지만 거기에 많은 데이터가 있으며 더 쉬운 방법이 있기를 바랍니다.

Re : JSL-열린 그래프 X 및 Y 값 가져 오기다음은 플랫폼 (이 경우 Graph Builder)에서 작성한 JSL을 사용하여 요소를 찾는 방법으로, 다음을 설명하기 위해 포함합니다.
- expr ()
- 이름 expr ()
- 인수 ()
- 헤드 ()
- << 스크립트 가능한 개체 가져 오기 (스크립트를 가져온 그래프 빌더 개체를 반환 함)
이전에 사용하지 않았다면 스크립팅 가이드에서 이에 대해 읽어보고 싶을 것입니다. 강력하지만 약간의 연습이 필요합니다.
조건문을 입력하지 않았으므로 (창 이름 확인 등) 다음을 수행하여 스크립트가 아래와 같이 작동하는지 확인합니다.
1) 현재 보고서와 그래프를 닫습니다.
2) Graph Builder 그래프를 만듭니다.
3) 스크립트 창에서 아래 스크립트를 실행하십시오. (두 개 이상의 그래프 창을 순환하기 위해 이것을 외부 루프로 감쌀 수도 있습니다. 다시 말하지만 이것은 전체적인 아이디어를 설명하기위한 스켈 레탈 스크립트 일뿐입니다.)
건배,
브래디
</CODE></P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
winList = Get Window List( Type( "reports" ) );
obj = winlist[1][Outline Box( 1 )] << Get Scriptable Object;
script = obj << get script;
i = 1;
//move through the script's arguments until you get to the Variables ( ) argument.
While( Head( exp = Arg( Name Expr( script ), i ) ) != Expr( Variables ), i++ );
xList = ylist = {};
nexp = name expr ( exp ); //optional; this allows us to type nexp instead of name expr ( exp ) in the code below.
//cycle through the arguments in the Variables ( ) section. If X ( ) or Y ( ) is
//encountered, insert into the appropriate list.
For( i = 1, i <= N Arg( nexp ), i++,
If( Head( var = Arg( nexp, i ) ) == Expr( X ), Insert Into( xList, Arg( Name Expr( var ), 1 ) ));
If( Head( var = Arg( nexp, i ) ) == Expr( Y ), Insert Into( yList, Arg( Name Expr( var ), 1 ) ));
);
Show( xList, yList );