숨겨진 창문안녕하세요. 제 추가 기능을 실행할 때 JMP 창이 다른(JMP가 아닌) 응용 프로그램 뒤에서 열리는 문제가 있습니다. 다음 단계는 내 노트북에서 발생하는 문제를 보여줍니다.
- JMP를 열고 JMP 데이터 세트도 엽니다.
- 이제 다른 응용 프로그램(예: PowerPoint)을 열고 최대화합니다. 그러면 JMP 홈 창이나 데이터 세트가 포함된 창이 즉시 표시되지 않습니다.
- PowerPoint에서 작업(예: 슬라이드 편집 등)을 수행한 후 JMP에서 분석으로 돌아가고 싶습니다. 따라서 PowerPoint를 열어 최대화한 상태에서 화면 하단에 있는 JMP 아이콘 위에 마우스를 놓고 분석하려는 데이터 세트가 포함된 창을 선택합니다. 이제 이 창은 PowerPoint 위에 표시됩니다(JMP 홈 창은 여전히 숨겨져 있습니다). 뒤에 파워 포인트).
- 이제 추가 기능을 실행하고 싶으므로 데이터 세트 창 상단에 있는 메뉴에서 해당 추가 기능을 선택합니다. 내 추가 기능이 수행하는 첫 번째 작업은 분석할 데이터 테이블의 열을 선택하도록 요청하는 모달 대화 상자 창을 표시하는 것입니다. 그런 다음 계속하려면 "확인" 버튼을 클릭하기만 하면 됩니다. 추가 기능을 호출하면 실제로 모달 대화 상자 창이 나타납니다. 하지만 이 창과 데이터 세트가 포함된 창은 모두 PowerPoint 뒤에서 즉시 사라집니다(사용자에게 응용 프로그램이 방금 충돌했다는 인상을 줍니다).
데이터 세트 창에서 추가 기능을 여는 대신 JMP 홈 창을 앞으로 가져오면 첫 번째 을 클릭한 다음 두 창 중 하나에서 추가 기능을 실행하면 문제가 발생하지 않습니다(또는 엄밀히 말하면 데이터 창은 여전히 PowerPoint 뒤에 사라지지만 모달 대화 상자 창은 맨 위에 남아 있으며 이후에 분석 결과가 나타남). 위에도 있음).
제가 생각하는 해결책은 ~할 것 같다 분석을 시작하기 전에 JMP 홈 창을 현재 창(즉, 열려 있는 다른 응용 프로그램 앞으로 이동)으로 만드는 한 줄 시작 스크립트를 추가 기능에 삽입해야 합니다. 창 목록 가져오기 기능은 목록 내에 JMP 홈 창을 포함하지 않으므로 그런 식으로 참조할 수 없습니다.
아무도 내가 이 문제를 해결할 수 있는 방법을 제안할 수 있나요? (물론 모든 사용자에게 위에 설명된 방식으로 추가 기능을 사용하지 말라고 말할 수도 있지만 가능하다면 스크립팅을 통해 문제가 발생하지 않도록 하는 것이 좋습니다.)
많은 감사를 드립니다.
결과 공유 및 전달답: 숨겨진 창이제 숨겨진 창 문제가 해결되었으므로 이 문제를 게시할 때 해결됨으로 표시하겠습니다.
참고로 이 문제는 열 선택 대화 상자가 호출되기 전에 데이터 테이블이 최소화되었기 때문에 발생했습니다(순전히 미용 목적으로 수행한 작업). 나중에 비슷한 문제가 발생하는 경우 다음과 같은 짧은 스크립트가 원인을 식별하는 데 도움이 될 수 있습니다. 이는 추가 기능으로 컴파일한 다음 데이터 테이블 위의 기본 메뉴에서 호출해야 합니다( ~ 아니다 Windows 작업 표시줄에서 데이터 테이블을 연 후 JMP 홈 창에서)
Names Default to Here(1);
fnSelectColumn = function({dt}, {default local},
new window("Column Selection", << modal(1),
clb = ColListBox(dt, all, Output = (clb << get selected), << set max selected(1))
);
Output
);
expr_Load_DT = expr(
dt = current data table();
if(type(dt)=="Empty",
dt = open(PickFile( "Select the JMP data set to be analyzed:",, {"JMP Data Files|JMP"} ));
)
);
/*
================
START OF PROGRAM
================
*/
Intro = "There's another full-screen Windows application open right now, and you've just loaded the data table you can see ";
Intro = Intro || "behind this window from the Windows Taskbar, prior to selecting a column for analysis.\!r\!rHowever, the ";
Intro = Intro || "modal window containing the column selection dialog will disappear behind the other Windows application if the ";
Intro = Intro || "data table is minimized prior to the column selection dialog being displayed. (If it hasn't, there's no problem.)";
MinimizeYN = 1;
new window("Minimize the Data Table?", << modal(1),
VListBox(
HCenterBox(BorderBox(TextBox(Intro, << padding(5)), << padding(10), << sides(15))),
SpacerBox(size(0, 10)),
rb = RadioBox({"Minimize the data table after closing this window", "Don't minimize the data table after closing this window"},
MinimizeYN = (2 - (rb << get))
)
)
);
expr_Load_DT;
dt << minimize window(MinimizeYN); // THIS line is the one that causes the problem;
Output = fnSelectColumn(dt);
Caption("(You selected \!"" || Output[1] || "\!")"); wait(1.5); caption(remove);
/*
================
END OF PROGRAM
================
*/
답: 숨겨진 창안녕하세요 IH님,
확인을 위해 저는 이것을 MS Windows에서 실행하고 있으며(Mac에서도 동일한 문제가 나타나는지 모르겠습니다) 버전이 관련이 있는 경우 JMP 15.0.2를 실행하고 있으므로 JMP보다 이전 버전입니다. 15.2.1 - 하지만 JMP 16EA 버전 8에 액세스할 수 있고 거기에서도 동일한 동작이 나타납니다.
간단히 말해서 JMP 홈 창이 완전히 최대화된 JMP가 아닌 Windows 응용 프로그램 뒤에 숨겨져 있는 경우(어떤 응용 프로그램이든 별 차이가 없는 것 같으니 그냥 "X"라고 부르겠습니다) 추가할 때 -in이 실행되면 추가 기능에 의해 생성된 모든 출력 창이 X 뒤에 숨겨집니다. 위의 내용을 통해 추가 기능이 실행될 때마다 JMP 홈 창을 즉시 앞으로 가져오는 방법을 찾을 수 있다면 문제가 해결될 것이라고 추론합니다.
귀하가 게시한 addin.jmpcust의 구조를 내가 사용한 Add-In Builder에서 생성된 구조와 비교하려고 시도했지만 내 것은 매우 길고 내가 찾고 있는 것이 정확히 무엇인지 모르겠습니다. 뼈대까지 잘려진 추가 기능 버전을 만들어야 할 것 같고, 작업이 끝나면 JSL 스크립트 사본을 첨부하여 다시 도움을 요청해야 할 것 같습니다.
나는 이와 같은 일이 재현될 수 없다면 진단하기가 거의 불가능하다는 것을 잘 알고 있으므로, 더 구체적인 일이 생기면 다시 보고하겠습니다.
도움을 주셔서 감사합니다.
답: 숨겨진 창Windows의 JMP 15.2.1에서는 이것을 복제할 수 없었습니다.추가 기능을 위해 메뉴 내에서 대부분의 창을 호출하는 방법은 다음과 같습니다. 사용 중인 것과 다른 것이 있을 수 있습니까?
addin.jmpcust 내부:
<jm:command>
<jm:name>ABOUT</jm:name>
<jm:caption>About</jm:caption>
<jm:action type="path">$ADDIN_HOME(com.domain.subdomain)\addinAbout.jsl</jm:action>
<jm:icon type="none"></jm:icon>
</jm:command>
addinAbout.jsl 파일 내부 어딘가에 New Window() 함수가 있습니다.