I have a monthly run of capability reports to run, and the internal customer really likes the Capability Explorer from the marketplace - and why not it's really good. My problem is I have 60 individual reports to collate (it makes one per column) - So I wrote (hacked) this JSL which collected selected reports into a journal that I could export to a pdf - it all worked fine (apart from the auto-close windows option - I gave up on that) but fails since I updated to 19. The error (at least the first error!) is
Expected platform argument in access or evaluation of 'Report' , Bad Argument( w ), Report/*###*/(w)
at line 92 in pathGoesHere\Chooser and PDF export v2.jsl
I'd really appreciate some help or pointers.
// ===== 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>
Seems like JMP19 has changed what happens when you try to use Report function on New Window: In JMP18 it will return missing value and in JMP19 it will throw an error you are seeing. There are many options you could do, but maybe something like is enough: Add Try() to your line 92
Original:

Modified
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
);
Thank you for that - I'm still getting to grips with JSL - Try() is a very new concept for me.