매달 기능 보고서를 실행해야 하는데, 내부 고객이 마켓플레이스의 기능 탐색기를 정말 좋아한다고 합니다. 정말 좋은 기능인데 말이죠. 문제는 60개의 개별 보고서를 모아야 한다는 것입니다(열당 하나씩 생성됨). 그래서 선택한 보고서를 저널로 수집하여 PDF로 내보낼 수 있는 JSL을 작성(해킹)했습니다. 모든 기능이 잘 작동했습니다(창 자동 닫기 옵션만 빼고 - 이 기능은 포기했습니다). 하지만 19로 업데이트한 후부터 오류가 발생합니다. 오류(적어도 첫 번째 오류!)는 다음과 같습니다.
'보고서'에 대한 액세스 또는 평가에서 예상된 플랫폼 인수, 잘못된 인수(w), Report/*###*/(w)
pathGoesHere\Chooser 및 PDF export v2.jsl의 92번째 줄에서
저는 도움이나 조언을 주시면 정말 감사하겠습니다.
// ===== BEGIN: Select windows and export a single combined PDF (with headers/footers & page breaks) =====
Names Default To Here( 1 );
// -------------------- User Controls --------------------
allowCloseDataTables = 1; // 0 = keep Data Table windows open (safe), 1 = allow closing them
forceCloseNoPrompt = 0; // 1 = Close(..., No Save) for hands‑free; 0 = allow Save prompts (may block)
// -------------------- Summary Counters --------------------
closedCount = 0;
attemptedCount = 0;
failedCount = 0;
skippedDTCount = 0;
skippedJournalCount = 0;
// -------------------- 1) Collect open windows (JMP 18 reliable) --------------------
winRefs = Get Window List(); // list of top-level window handles
winTitles = {};
// Build clean titles for the list (characters only)
For( i = 1, i <= N Items( winRefs ), i++,
w = winRefs[i];
t = "Window " || Char( i );
Try(
t0 = w << Get Window Title;
t = Char( t0 );
If( Is Empty( t ), t = "Window " || Char( i ) );
);
Insert Into( winTitles, t );
);
// -------------------- 2) Dialog: pick windows + optional "close after export" --------------------
selIdx = {};
closeAfter = 0;
New Window( "Select windows to include", <
<MODAL>
0; ), Spacer Box( Size( 12, 0 ) ), Button Box( "Cancel", selIdx = {}; closeAfter = 0; ) ) ) ); If( N Items( selIdx ) == 0, Throw( "No windows selected." ) ); // -------------------- 3) Build a list of Data Table windows (no probing on random windows) -------------------- dtWinRefs = {}; nt = N Table(); For( i = 1, i <= nt, i++, dt = Data Table( i ); Try( dtw = dt << Get Window; // window that hosts this Data Table If( !Is Empty( dtw ), Insert Into( dtWinRefs, dtw ); ); ); ); // -------------------- 4) Build the combined journal with static content -------------------- jnw = New Window( "Combined Report", <
<JOURNAL></JOURNAL></MODAL>
JMP19에서 새 창에서 Report 함수를 사용하려고 할 때 발생하는 동작이 변경된 것 같습니다. JMP18에서는 누락된 값을 반환했지만, JMP19에서는 오류가 발생합니다. 여러 가지 방법이 있지만, 다음과 같은 방법으로 충분할 수 있습니다. 92번 줄에 Try()를 추가합니다.
원래의:

수정됨
rb = Try(Report(w), .);
content = Picture Box(w << Get Picture);
If(!Is Empty(rb),
Try(content = rb << Clone Box); // upgrade to cloned report if possible
);
감사합니다. 저는 아직 JSL을 익히고 있는 중이에요. Try()는 저에게는 아주 새로운 개념이에요.