Così ho una tabella di dati che viene generata da una query SQL in modo che abbia lo script "Aggiornamento da DB" collegato ad esso. Posso eseguire quello script tutte le volte che voglio e funziona senza problemi per la tabella dati, inserendo nuovi dati dal server.
Comunque il mio problema è che ho un grafico overlay con Automatic Recalc (1) attivo e che funziona la prima volta che eseguo lo script Update from DB, i nuovi dati appaiono istantaneamente sul grafico, ma quando lo faccio di nuovo, il grafico non è più aggiornamenti nonostante i nuovi dati che popolano la tabella.
Ho trovato un comportamento simile per altre piattaforme, quindi ogni volta che posso disegnare elementi visivi come parte della query di aggiornamento.Tuttavia, la modifica dell'aspetto in modo che JMP sia costretto a ridisegnarlo funziona, ad esempio aggiungendo e quindi rimuovendo gli aghi in un grafico di sovrapposizione lo fa aggiornare.
Uno script potrebbe disegnare la trama di sovrapposizione:
//make a new overlay plot
myvis = Overlay Plot(
X( :time ),
Y( :value )
);
Un secondo script aggiorna la query (copiato dallo script "Aggiorna da DB", quindi aggiunge e rimuove gli aghi dal grafico di sovrapposizione:
//Refresh the data
Current Data Table() << Update From Database(
"DSN=OSI PI Archive",
"SELECT TOP 10000000 time, value FROM piarchive..piinterp
WHERE (tag IN ('Sinusoid'))
AND time BETWEEN '*-5m' AND '*' AND timestep = '10s'"
);
//Add and remove needles from overlay plot (or modify axis, point type, etc.)
myvis << Needle( state=1 );
myvis << Needle( state=0 );