안녕 모두,
커뮤니티에서 지원을 검색해야 할 때 다른 주제에 대한 코딩 작업을 하고 있었는데 이것을 발견했습니다. 우편 몇 년 전의 일이고 그것이 가능했는지 궁금합니다(원래 게시물에 대한 해결책이 없었습니다)? 윤곽 상자에 기능을 할당하여 열기/닫기 상태에 따라 다른 윤곽 상자를 닫거나 열 수 있습니까? 다른 개요 상자가 열리면 창을 자동으로 업데이트하여 방금 열린 개요 상자를 제외한 다른 모든 개요 상자를 닫을 수 있습니까?
몇 가지 다른 접근 방식을 시도했으며 개요 상자 내에서 함수를 정의할 수 있지만 아래 예를 참조하십시오. 분명히 함수 호출 내에서 다른 개요 상자를 참조할 수 없으며(JMP는 다른 개요 상자에 대한 삭제된 참조에 대해 불평함) Outline Box()는 보내기 명령 <
Names Default To Here( 1 );
w = New Window( "My Window",
A = Outline Box( "Panel Box A",
H List Box( Button Box( "A1" ), Button Box( "A2" ), Button Box( "A3" ) ),
AFunc = Function( {this},
x = this + 2;
Show( x );
);
AFunc( 7 );
),
B = Outline Box( "Panel Box B", H List Box( Button Box( "B1" ), Button Box( "B2" ), Button Box( "B3" ) ), <<CLOSE></CLOSE>
위의 스크립트는 다음과 같은 출력을 제공합니다.

원하는 창을 명확하게 생성하고 x=9인 함수의 출력을 표시합니다. 그러나 다른 Outline Box의 상태에 액세스하고 그에 따라 동적으로 닫히거나 열리는 함수를 Outline Box 내에서 만들려는 시도에는 실패했습니다.
요컨대, 위의 질문(및 원래 게시물)에 대한 대답은 아니오(또는 적어도 아직, 또는 적어도 그렇게 할 수 있는 방법을 찾았다는 것)입니다. 긴 대답은 더 재미있고 Yes( 주로 , 해결 방법 포함).
원래 게시물이 요청한 것과 매우 유사한 것은 현재 개요 상자를 닫고 이전(주기적) 또는 다음 개요 상자를 여는 "이전" 및 "다음" 버튼 상자를 추가하는 아래 코드에 있습니다. 따라서 기술적으로 원하는 솔루션은 아니지만 필요한 것을 (다소나마) 달성합니다.
유일한 단점은 개요 상자 A를 열어 개요 상자 C를 여는 것으로 건너뛸 수 없으며 C를 제외한 다른 모든 개요 상자를 닫아 창을 동적으로 업데이트한다는 것입니다. 개요 상자에 이 기능을 사용하면 매우 도움이 되는 상황을 상상할 수 있습니다. JMP의 새 릴리스에서 향후 기능이 될 수 있습니까?
어쨌든, 나는 원래 게시물이 재미있다고 생각했고 다른 작업으로 돌아가기 전에 그 경로를 조금 조사하고 싶었습니다.
감사 해요!,
DS
"해결 방법"에 대한 코드:
Names Default To Here( 1 );
w = New Window( "My Window",
A = Outline Box( "Outline Box A",
V List Box(
H List Box( Button Box( "A1" ), Button Box( "A2" ), Button Box( "A3" ) ),
H List Box(
Button Box( "prev",
<<STYLE>&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/PRE&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/lingo-body&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;lingo-labs id="lingo-labs-438433" slang="en-US"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;lingo-label&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;스크립팅&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/lingo-label&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/lingo-labs&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/lingo-labs&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;</STYLE>XPath를 사용하거나 <
시작하는 데 도움이 되는 몇 가지 예:
Names Default To Here(1);
func_prev = Function({this},
((this << Parent) << parent) << Close(1);
(((btn_prev << parent) << parent) /*current*/ << prev sib) << Close(0);
);
func_next = Function({this},
((this << Parent) << parent) << Close(1);
(((this << Parent) << parent) << sib) << Close(0);
);
nw = New Window("My Window",
Outline Box("Panel Box A",
H List Box(Button Box("A1"), Button Box("A2"), Button Box("A3")),
H List Box(
Button Box("prev", <<STYLE>stop();
nw &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; XPath("//OutlineBox"); //get all outline boxes
nw &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; XPath("//OutlineBox[@isOpen='true']"); //get all open
nw &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; XPath("//OutlineBox[@isOpen='false']"); //get all closed
(nw &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; XPath("//OutlineBox[@isOpen='true']")) &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; Close(1); //close all open
(nw &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; XPath("//OutlineBox[@isOpen='false']")) &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt; Close(0); //open all closed
</STYLE>개요 상자에 대해 On Close() 함수를 지정할 수 있습니다.
안녕하세요 @jthi ,
귀하의 의견과 생각에 감사드립니다. 게시된 내 코드의 마지막 섹션도 기본적으로 귀하의 제안과 동일한 작업을 수행하므로 사용자가 다른 개요 상자를 주기적으로 이동할 수 있습니다. 유감스럽게도 Outline Box의 상태를 동적으로 평가한 다음 이에 대한 응답으로 다른 Outline Box를 변경하는 솔루션은 아직 없습니다.
감사 해요!,
DS