JMP는 메인 메뉴와 툴바를 오랫동안 사용자 정의 할 수 있도록 지원합니다. 그러나 메뉴 사용자 정의가 구현 된 방식에는 여러 가지 단점이 있으며, 사용자가이를 지적했습니다. 그들의 의견에 따라 우리는 버전 7에서 메뉴 / 툴바 사용자 정의를 크게 변경했습니다.
과거에는 JMP의 새 버전을 설치하고 이전 사용자 지정 내용을 복구하려는 경우 두 가지 옵션 중 하나가 선택되지 않았지만 어느 것도 매력적이지 않았습니다. (1) JMP에서 이전 JMPCMD 파일을 가리키고 JMP에게 해당 정의 집합을 적용하도록 지시 할 수 있습니다. JMP의 전체 기본 메뉴가 이전 사용자 정의를 반영하도록 재설정됩니다. 그러나이 과정에서 JMP의 새 메뉴 및 / 또는 명령이 사라집니다 (이전 JMPCMD 파일에 포함되지 않았기 때문에). (2) 메뉴 편집기를 사용하여 이전 JMPCMD 파일에 포함 된 사용자 정의 명령을 현재 주 메뉴로 고심하게 복사 할 수 있습니다.
JMP 7은 새로운 딜레마를 제공함으로써 이러한 딜레마를 제거합니다. 메뉴 병합 특색. JMP 7을 사용하면 병합하다 JMP 6에서 메뉴 및 툴바에 대한 사용자 정의. 사실 JMP 7을 처음 실행하면 JMP 6에서 사용자 정의 항목을 병합하라는 메시지가 자동으로 표시됩니다 (있는 경우).

(클릭하여 원래 크기로보기)
병합 프로세스는 JMP 7의 새로운 메뉴를 없애지는 않습니다. JMP 7의 기본 메뉴와 툴바에 명령, 메뉴 및 / 또는 툴바가 JMP 6 사용자 정의에 고유 한 것이 든 상관없이 삽입됩니다. 이것은 이전 버전의 JMP에 비해 크게 개선 된 기능입니다. 병합하다 특색.
이전 버전의 JMP에서는 메뉴 사용자 정의가 "전부 또는 아님"이었습니다. 하나의 새로운 명령을 추가하려면 파일 메뉴에서 명령을 메뉴 편집기에 추가 한 다음에 저장해야한다고 가정 해 봅시다. JMPCMD 파일 이 파일에는 전체 주 메뉴의 정의가 포함되어 있습니다. 따라서 JMPCMD 파일을 다른 사람에게주고 JMP 세션에 적용하면 전체 메인 메뉴를 대체하게됩니다.
그러나 JMP 7을 사용하면 단일 명령 (또는 도구 모음)과 단일 명령의 정의를 생성 할 수 있습니다.이 명령은 새로운 "JMPMENU"파일 확장자가있는 아카이브 파일로 내보낼 수 있습니다. 다른 사람이 JMPMENU 파일을 가져 오면 기본 메뉴가 대체되지 않고 새 명령 만 해당 메뉴에 추가됩니다. 메뉴 정의를 내보낼 때 JMPM이 JMPMENU 파일을 가져올 때마다 명령이 기본 메뉴와 동일한 위치에있는 기본 메뉴에 삽입되도록 JMP에서 컨텍스트를 보존해야하는지 여부를 지정할 수도 있습니다.
아마도 오래된 메뉴 사용자 정의 체계의 가장 큰 단점은 메뉴 정의와 JSL 스크립트가 종속 된 경우 (있는 경우) 분리되었다는 사실이었을 것입니다. 이로 인해 메뉴 사용자 정의를 다른 사용자와 공유하는 것이 매우 어려웠습니다. 예를 들어, JMP 6을 사용하고 있는데, "Euler Phi"와 "Fibonacci"라는 두 개의 명령을 포함하고있는 "NTheory"라는 메인 메뉴에 새 메뉴를 추가했다고 가정하십시오. 각각의 메뉴는 특정 JSL 스크립트를 실행할 때마다 특정 JSL 스크립트를 실행하도록 정의되었습니다. 명령이 선택되었습니다. 따라서 실행될 스크립트의 경로는 각 경우에 명령 자체의 정의로 하드 코딩되었습니다. 새 메뉴를 친구와 공유하고 싶다면 JMPCMD 파일을 제공하는 것만으로는 충분하지 않습니다. 명령을 사용하는 JSL 파일을 제공해야한다는 점도 기억해야했습니다. 설상가상으로 친구에게 JMPCMD 파일과 필요한 스크립트 파일을 모두 주 었더라도 메뉴가 친구에게 제대로 작동하지는 않습니다. 친구의 JSL 파일 복사본 경로는 JMPCMD 파일에 정의 된 경로와 거의 일치합니다. 따라서 친구는 JMP의 메뉴 편집기에 들어가서 각 명령에 대한 JSL 파일의 경로를 수정해야합니다.

(클릭하여 원래 크기로보기)
사용자 정의 된 팝업 메뉴의 예
JMP 7은 새로운 JMPMENU 파일로 이러한 모든 문제를 제거합니다. 때를 수출 메뉴 (또는 툴바 또는 명령)에서 JMP가 메뉴 명령이 의존하는 JSL 파일을 아카이브하도록할지 여부를 묻는 메시지가 나타납니다. 긍정적으로 대답하면 커맨드와 연관된 JSL 스크립트가 메뉴의 정의와 함께 JMPMENU 파일에 보관됩니다. 그리고 네 친구가 수입품 JMPMENU 파일에서 JMP는 아카이브에 포함 된 JSL 스크립트를 특별한 "종속성"디렉토리에 추출하고 JMP는 명령 자체의 정의를 추출한 JSL 파일을 가리 키도록 수정합니다. 마찬가지로 비트 맵을 메뉴 명령 중 하나와 연관 시키면 JMP 파일과 함께 아카이브되고 JMPMENU 파일을 가져올 때 추출됩니다. 따라서 친구가 필요로하는 모든 것이 하나의 파일에 포함되어 있으므로 JMPMENU 파일을 가져온 후 명령을 실행하기 위해 다른 작업을 수행 할 필요가 없습니다.
JMPMENU 파일은 실제로 Zip 파일입니다. 따라서 메뉴 파일의 내용이 궁금하면 WinZip과 같은 도구를 사용하여 JMP 외부에서 언제든지 검사 할 수 있습니다. 기본적으로 영어 로켈에서 Windows 운영 체제를 실행하는 경우 JMPMENU 파일은 C : Documents 및 Settingsuser-nameLocal SettingsApplication DataJMP7 DataEnglish 디렉토리에 저장됩니다.

(클릭하여 원래 크기로보기)
JMPMENU 파일 내부를 엿볼 수 있습니다.
예를 들어 내 컴퓨터에서 JMPMENU 파일은 다음 위치에 있습니다.
C : \ Documents and Settings \ potter \ Local Settings \ Application Data \ JMP7 데이터 \ 영어 디렉토리에 복사하십시오.
마지막으로, JMP 7 자동으로 가져 오기 설치 디렉토리의 특수 하위 디렉토리에서 JMPMENU 파일을 찾을 경우 메뉴 사용자 정의. 예를 들어 로켈을 영어로 설정하고 기본 위치에 JMP를 설치 한 상태에서 Windows에서 실행하는 경우 JMP가 의존하는 영어 지원 파일로 이동합니다.
C : \ Program Files \ SAS \ JMP7 \ Support 파일 영어
"Factory Default Menus"라는 하위 디렉토리를 만들고 그 위치에 JMPMENU 파일을 복사하면됩니다 (디렉토리에 원하는만큼의 파일을 가질 수 있습니다). 그런 다음 JMP가 시작될 때마다 기본 메뉴 및 도구 모음 목록에 "Factory Default Menus"하위 디렉토리의 각 JMPMENU 파일을 자동으로 가져옵니다. (사용자 정의 된 메뉴의 명령 중 하나라도 JSL 스크립트에 의존하는 경우 메뉴를 내보낼 때 해당 명령이 아카이브되었는지 확인하십시오.) JMP가 메뉴를 가져 오면 아카이브에서 JSL 파일을 추출하여 "종속성" 디렉토리의 "Factory Default Menus"하위 디렉토리에 있습니다.
마이크와 다르 지크 쓴 :
사용자가 이미 메뉴 항목을 직접 정의했거나 다른 제품의 jmpmenu 패키지를 가져 와서 메뉴 항목을 정의한 경우 "Factory Default Menus"폴더는 더 이상 읽지 않습니다. 따라서 이미 다른 메뉴가 설치된 사용자베이스에 새 메뉴를 배포하기가 어렵습니다. 이와 같은 사용자 레벨 폴더가 있다면 개별 패키지 소유자가 자신의 메뉴를 넣고 다른 패키지와 잘 연동 할 수 있다면 좋을 것입니다.