Script di tabella?Potrebbe essere sicuramente un caso di RTFM, ma ho una domanda:
In uno dei miei set di dati JMP, utilizzo una funzione come intermedia in più colonne formula. Per evitare la duplicazione dello stesso codice (e la duplicazione del lavoro se dovessi cambiare quella funzione), ho inserito la funzione in uno script e l'ho salvata nella tabella dei dati.
Il problema si presenta quando apro il set di dati e voglio aggiungere dati. Affinché le colonne della formula vengano eseguite correttamente, devo prima premere la freccia verde accanto allo script per eseguirla prima che le colonne della formula possano fare il loro lavoro. Se lo script non viene eseguito, la funzione non è definita.
Esiste un modo per attivare funzioni come queste in forma simile alle variabili di tabella, che vengono eseguite automaticamente all'apertura del file di dati?
modifica: ho allegato un file di esempio. Lo script si trova nello script Funzioni di utilità.
Ri: Script di tabella?Verifica se lo script OnOpen soddisfa le tue esigenze; verrà richiesto (per impostazione predefinita). È possibile modificare la preferenza, se necessario. Si noti che lo script OnOpen NON viene eseguito quando viene eseguito il seguente script, ma se si salva la tabella vuota, la si chiude e si apre di nuovo, lo script verrà eseguito. Quindi l'aggiunta di righe alla tabella appena aperta sarà in grado di utilizzare la funzione globale.
New Table( "globalFunctionOnOpen",
Add Rows( 0 ),
New Script( "OnOpen", global:myFunc = Function( {a, b}, a + b ) ),
New Column( "x", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "y", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "z", Numeric, "Continuous", Format( "Best", 12 ), Formula( global:myfunc( :x, :y ) ), Set Selected )
)Ri: Script di tabella? @robhanssen ,
Di seguito sono riportate alcune opzioni. Quale potrebbe essere la scelta migliore dipende dall'uso.
- Refactor: Per questo esempio, la semplice funzione di utilità può essere ottenuta con una colonna che chiamerò MTD. La funzione restituisce 1 o 0. Quindi cambia le tue funzioni: cambia yearToDate (: month,: Elec Cost) in: MTD *: ElecCost. In altre parole, utilizzare le funzioni di colonna, quando possibile.
- Crea un componente aggiuntivo : qualcosa di specifico per la tabella, chiamato UpdateMyTablename, o uno script che esegue tutte le funzioni della tua utility, chiamato RunUtiltyFunc. Si noti che un componente aggiuntivo può essere condiviso e utilizzato da altri utenti ed eseguito su richiesta e le funzioni saranno disponibili per l'intera sessione a meno che i globuli non vengano eliminati.
- Crea uno script di avvio : Se si dispone di una serie di funzioni di utilità che è possibile utilizzare spesso, è possibile definirle / includerle / eseguirle tramite uno script di avvio. Esempi che ho usato includono: una definizione specifica del turno di produzione aziendale, funzione settimana lavorativa, logo o funzione matematica comunemente usata. Dal Guida agli script JMP> Creazione di applicazioni > Componenti aggiuntivi
Specificare gli script di avvio e di uscita (facoltativo)
Fare clic sulla scheda Script di avvio per aggiungere uno script che viene eseguito all'avvio di JMP (e il componente aggiuntivo
inizia). È possibile selezionare uno script esistente (Esegui JSL in questo file) o copiare e incollare in uno script (Esegui
questo JSL). Ad esempio, è possibile fornire un messaggio che informa l'utente che il componente aggiuntivo è
installato all'avvio.