凡例アイテムの取得に関する問題JMP18 (18.1.1) では、スクリプト インデックスのこの例は機能しません。

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 ) )
);
次のエラー メッセージが生成されます:

つまり、 Legend Server << 凡例アイテムを取得する()
スクリプト可能なオブジェクトを返さないのですか?
自動化とスクリプトRe: 凡例項目の取得: スクリプト可能なオブジェクトがありません回避策:
凡例項目を取得する
凡例項目を取得するには、 i を事前に評価することを忘れないでください。
-セットラベルの場合、事前評価は必要ありません。
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: 凡例項目の取得: スクリプト可能なオブジェクトがありません次の罠: 棒グラフでは機能しない?
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

編集: 別のコンピューターまたは JMP の再起動後でも問題を再現できませんでした (?)。
Re: 凡例項目の取得: スクリプト可能なオブジェクトがありません実際にはスクリプト可能なオブジェクトを返します。これは For Each() のバグのようです。コードを同等のものに変更すると、動作します。
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: 凡例項目の取得: スクリプト可能なオブジェクトがありませんああ、すみません、おっしゃる通り、個々の項目は確かにスクリプト化可能です。
Interesting: a batch message like items << get label produces the same issue.
maybe batch messages use それぞれ in the background ?
さらに深く掘り下げると、古いチケットが見つかりました: TS-00128192
幸いなことに、その間にこの問題は十分な優先度を獲得し、JMP19 (EA5) で修正されました。

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: 凡例項目の取得: スクリプト可能なオブジェクトがありません
@mmarchandFSLR は次のように書いています:
実際にはスクリプト可能なオブジェクトを返します。
一方で...ちょっと意外なことに:

JMP19:
