Tengo que generar informes de capacidad mensualmente, y al cliente interno le gusta mucho el Explorador de Capacidades del marketplace, y por qué no, es realmente bueno. Mi problema es que tengo que recopilar 60 informes individuales (uno por columna). Así que escribí (modifiqué) este JSL que recopilaba los informes seleccionados en un diario que podía exportar a PDF. Todo funcionaba bien (excepto la opción de cerrar ventanas automáticamente, que abandoné), pero falla desde que actualicé a la versión 19. El error (¡al menos el primero!) es...
Argumento de plataforma esperado en el acceso o evaluación de 'Informe', Argumento incorrecto (w), Informe/*###*/(w)
en la línea 92 en pathGoesHere\Chooser y exportación a PDF v2.jsl
Realmente agradecería alguna ayuda o sugerencias.
// ===== 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>
Parece que JMP19 ha cambiado lo que sucede al intentar usar la función "Informe" en una ventana nueva: en JMP18, devolverá un valor faltante y en JMP19, generará el error que se muestra. Hay muchas opciones disponibles, pero quizás algo como esto sea suficiente: Agregar Try() a la línea 92.
Original:

Modificado
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
);
Gracias por eso. Todavía me estoy familiarizando con JSL. Try() es un concepto muy nuevo para mí.