problème avec les éléments de légendeDans JMP18 (18.1.1), cet exemple d'index de script ne fonctionne pas :

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ), Color( :age ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
server = gb << Get Legend Server;
items = server << Get Legend Items;
For Each( {item, index}, items[1],
item << Set Label( "Item " || Char( index ) )
);
Cela produit le message d'erreur :

alors, Legend Server << obtenir les éléments de légende()
ne renvoie pas d'objets scriptables ?
Automatisation et scriptsRe: obtenir les éléments de légende : aucun objet scriptablesolution de contournement :
utiliser l'élément de légende
N'oubliez pas de pré- évaluer pour obtenir l'objet de légende
- pour l'étiquette définie, aucune pré-évaluation n'est nécessaire.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ), Color( :age ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
server = gb << Get Legend Server;
Nitems = Nitems(( server << Get Legend Items)[1]);
for(i=1, i<= Nitems, i++,
Eval(Eval Expr(item = server << Get Legend Item(1, Expr(i))));
item << Set Label( "Item " || Char( i ) )
);
Re: obtenir les éléments de légende : aucun objet scriptableProchain piège : ça ne marche pas pour les graphiques à barres ?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb =Graph Builder(
Variables( X( :age ), Y( :weight ), Overlay( :sex ) ),
Elements( Bar( X, Y ) )
);
server = gb << Get Legend Server;
items = server << Get Legend Items;
show(items);
server << get legend item(1,1) // error message

edit : je n'ai pas pu reproduire le problème sur un autre ordinateur / après un redémarrage de JMP (?).
Re: obtenir les éléments de légende : aucun objet scriptableEn fait, il renvoie des objets scriptables. Il semble que ce soit un bug avec For Each(). Si vous modifiez le code en quelque chose qui devrait être équivalent, cela fonctionne.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ), Color( :age ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
server = gb << Get Legend Server;
items = server << Get Legend Items;
For Each( {item, index}, items[1],
items[1][index] /*isn't this exactly what item is?*/ << Set Label( "Item " || Char( index ) )
);Re: obtenir les éléments de légende : aucun objet scriptableAh, désolé, vous avez raison, les éléments individuels sont en effet scriptables.
Interesting: a batch message like items << get label produces the same issue.
maybe batch messages use pour chaque in the background ?
En creusant plus profondément, j'ai trouvé un ancien ticket : TS-00128192
Heureusement, entre-temps, le problème a été suffisamment pris en compte : dans JMP19 (EA5), il est résolu :

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ), Color( :age ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
server = gb << Get Legend Server;
items = server << Get Legend Items;<BR /><BR />items << get label // same issue as with for each
show(items[1][1])
items[1][1] << get label(); // OK, on the lowest level, there <U>is</U> a scriptable object
Show(tmp = items[1][1::2]); // then this is a list of ...
tmp[1] << get Label(); // ...no
Re: obtenir les éléments de légende : aucun objet scriptable
@mmarchandFSLR a écrit :
En fait, il renvoie des objets scriptables.
d'un autre côté... un peu surprenant :

JMP19 :
