毎月、機能レポートを実行する必要があり、社内の顧客はマーケットプレイスのCapability Explorerを大変気に入っています。これは本当に優れた機能です。問題は、60個の個別レポートを照合する必要があることです(列ごとに1つ作成されます)。そこで、選択したレポートをジャーナルにまとめてPDFにエクスポートできるJSLを作成(ハッキング)しました。すべて正常に動作しました(ウィンドウの自動閉じオプションを除いて - これは諦めました)。しかし、19にアップデートしてからエラーが発生しています。エラー(少なくとも最初のエラー!)は次のとおりです。
'Report' のアクセスまたは評価でプラットフォーム引数が必要です。引数 ( w ) が不正です。Report/*###*/(w)
pathGoesHere\Chooser and 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では、新規ウィンドウでレポート機能を使用しようとしたときの動作が変更されたようです。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() は私にとって非常に新しい概念です。