<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Ho cercato nella Guida agli script e nell'Indice degli script, ma non riesco a trovare un modo per fare quello che voglio.
Ecco il compito:
- Sto scrivendo uno script che esegue molti altri script preesistenti uno alla volta. Gli aspetti necessari di ogni rapporto di script preesistente vengono presi e copiati in una finestra principale "Rapporto completo".
- Per motivi di fiducia, non sono autorizzato ad alterare gli script preesistenti
- Se ho solo bisogno di prendere il rapporto completo da uno script all'ingrosso, questo è molto semplice e può essere realizzato da:
[crea una finestra principale per il rapporto completo]
:: avere la meglio = Nuova finestra ( "Rapporto Completo_" || Sostituto ( Data abbreviata ( In data odierna () ) , "/" , "-" ) ,
:: vListOut = Casella di riepilogo V ()
) ;
:: dtMain = Tabella dei dati correnti () ;
:: dtMain << Cancella Seleziona ;
[esempio di aggiunta facile]
:: scatolaTemp = Casella di contorno ( "** Grafici di variabilità per tutte le settimane" ) ;
:: scatolaTemp << Aggiungere ( ( :: dtMain << Esegui script ( "VarChart" )) << Rapporto ) ;
:: vListOut << Aggiungere ( :: scatolaTemp ) ;
Ecco il problema:
- A volte ho bisogno di chiudere alcune caselle di contorno all'interno di un rapporto tramite JSL
- Il passaggio 1 è semplice se il report ha un'unica "casella principale" che contiene tutte le caselle di contorno che devono essere chiuse, ma non è sempre così.
- Ad esempio, esiste uno script che produce un modello di adattamento. Per questo modello di adattamento, viene utilizzata la funzione "By:", che crea 3 "caselle principali" separate intitolate "Response Log(Production) Condition = A", "Response Log(Production) Condition = B" e "Response Log(Production) Condition = B" e "Response Log(Production) Condition = B" e Log(Produzione) Condizione = C".
- Quindi quello di cui ho bisogno è il codice per fare:
- "Chiudi qualsiasi riquadro all'interno di questo rapporto intitolato 'Riepilogo effetti'"
- qualcosa di simile a (questo non funziona): :: repCurrent [ Casella di contorno ( "Riepilogo effetti" )] << Chiudere ( 1 ) ;
- "Per ogni casella di riepilogo in questo rapporto, controlla il suo nome. Se il suo nome contiene "Riepilogo effetti", chiudilo.
E, come secondo problema, qualcuno potrebbe spiegare il seguente comportamento?
- Codice come :: scatolaTemp << Aggiungere ( ( :: dtMain << Esegui script ( "VarChart" )) << Rapporto ) ; non sempre funziona quando il report generato da uno script non si limita a creare semplicemente un report (ad esempio, crea un report, modifica la tabella dei dati e quindi riformatta il report)
- Quando ciò accade, devo usare:
:: dtMain << EseguiScript ( "Distribuzioni" ) ;
:: repCurrent = Rapporto attuale () ;
:: scatolaTemp << Aggiungere ( :: repCurrent [ Casella di contorno ( "Distribuzioni" )] ) ;
Nota speciale "::boxTemp<
Qualcuno sa perché devo usare "Current Report"?
Per il mio primo problema, all'interno del rapporto ci saranno più riquadri di contorno che devono essere copiati, quindi non sarà così semplice come nell'esempio precedente. C'è comunque la possibilità di prendere un oggetto di report di salvataggio che è stato inizializzato tramite "Rapporto corrente ()" e utilizzare la funzione "Aggiungi" su quell'oggetto di report senza dover specificare un oggetto (ad esempio, come gli dico di aggiungere l'INTERO oggetto di report contenuto e non il contenuto specifico di una casella di riepilogo contenuta all'interno di un report).
Potresti trovare qualcosa che ti aiuterà con il tuo (primo) problema su https://community.jmp.com/message/225609#225609 .