J'ai un rapport mensuel de capacités à générer, et le client interne apprécie beaucoup l'Explorateur de capacités de la marketplace ; il est vraiment performant. Mon problème est que j'ai 60 rapports individuels à compiler (un par colonne). J'ai donc écrit (piraté) ce JSL qui a rassemblé les rapports sélectionnés dans un journal que je pouvais exporter au format PDF. Tout fonctionnait correctement (à l'exception de l'option de fermeture automatique des fenêtres, que j'avais abandonnée), mais le problème persiste depuis la mise à jour vers la version 19. L'erreur (du moins la première !) est la suivante :
Argument de plateforme attendu dans l'accès ou l'évaluation de « Rapport », mauvais argument (w), Rapport/*###*/(w)
à la ligne 92 dans pathGoesHere\Chooser et PDF export v2.jsl
J'apprécierais vraiment un peu d'aide ou de conseils.
// ===== 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>
Il semble que JMP19 ait modifié le comportement de la fonction Rapport dans une nouvelle fenêtre : dans JMP18, la valeur manquante est renvoyée, et dans JMP19, l'erreur que vous voyez s'affiche. Plusieurs options s'offrent à vous, mais une solution comme celle-ci pourrait suffire : ajouter Try() à la ligne 92.
Original:

Modifié
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
);
Merci pour cela - je suis encore en train de me familiariser avec JSL - Try() est un concept très nouveau pour moi.