Le code ci-dessous fonctionne à partir d'un script wondow et consiste en 3 façons différentes de modifier une formule de colonne.
Lorsque je lance le même code depuis une barre d’outils JMP personnalisée, il se bloque sur :: dt: helloworld << set formula ("5");
Pourquoi est-ce? le comportement ne devrait-il pas être identique?
open("$SAMPLE_DATA/Amplitude 100.jmp");
dt = datatable("amplitude 100");
obj = new column("helloworld");
:helloworld << set formula("3");
dt :helloworld << set formula ("4");
::dt:helloworld << set formula ("5");
caption("Hello World");
Il y a quelques problèmes. La première est que vous devez isoler votre code des autres scripts, etc. qui sont en cours d'exécution.
Noms par défaut ici (1);
est-ce que.
Deuxièmement, vous faisiez des références incomplètes et vous ne voyiez probablement pas d'erreur lorsque vous les exécutiez, car leurs valeurs se trouvaient dans l'espace mémoire global et vous ne les aviez pas éliminées.
Troisièmement, dans le contexte de votre code, la déclaration
obj <SPAN class="token operator">=</SPAN> <SPAN class="token function">new column</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"helloworld"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
n'aurait pas de référence, puisque OBJ n'avait pas été défini dans votre code.
Le code ci-dessous fonctionne sur mon système
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Amplitude 100.jmp" );
dt << New Column( "helloworld", character, set each value( "5" ) );
Caption( "Hello World" );