J'ai donc une table de données générée à partir d'une requête SQL, ainsi le script "Mise à jour à partir de la base de données" y est associé. Je peux exécuter ce script aussi souvent que je le souhaite et cela fonctionne sans problème pour la table de données, en extrayant de nouvelles données du serveur.
Cependant, le problème est que j’ai un graphique en superposition avec Automatic Recalc (1) activé et que cela fonctionne la première fois que j’exécute le script Update from DB, les nouvelles données apparaissent instantanément dans le graphique, mais lorsque je le refais, le graphique mises à jour en dépit de nouvelles données remplissant la table.
J'ai trouvé un comportement similaire pour d'autres plates-formes, donc chaque fois que je peux, je dessine des visuels dans le cadre de la requête de mise à jour.La modification du visuel pour que JMP soit obligé de le redessiner fonctionne cependant, par exemple en ajoutant puis en supprimant des aiguilles dans un tracé de superposition, il est mis à jour.
Un script pourrait dessiner le tracé de superposition :
//make a new overlay plot
myvis = Overlay Plot(
X( :time ),
Y( :value )
);
Un deuxième script actualise la requête (copié à partir du script 'Update from DB', puis ajoute et supprime des aiguilles du tracé de chevauchement :
//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 );