취소
다음에 대한 결과 표시 
표시  만  | 다음에 대한 검색 
다음을 의미합니까? 
언어 선택 변환 막대 숨기기
게시된 스레드 원본 보기

레전드 아이템을 얻는 데 문제가 있습니다

hogi
Level XII

JMP18(18.1.1)에서는 스크립팅 인덱스의 이 예제가 작동하지 않습니다.

undefined

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 ) )
);

다음과 같은 오류 메시지가 생성됩니다.

undefined

그래서, Legend Server << get legend items()

스크립트 가능한 객체를 반환하지 않습니까?

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

5 응답 5
hogi
Level XII

Re: 범례 항목 가져오기: 스크립트 가능한 개체 없음

해결 방법:
get legend 아이템을 사용하세요


전설 아이템을 얻기 위해 미리 평가하는 것을 잊지 마세요

- 라벨 설정 에는 사전 평가가 필요하지 않습니다.

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 ) )
);

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

hogi
Level XII

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

undefined
편집: 다른 컴퓨터나 JMP를 재시작한 이후에도 문제를 재현할 수 없습니다.

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

mmarchandFSLR
Level IV

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 ) )
);

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

hogi
Level XII

Re: 범례 항목 가져오기: 스크립트 가능한 개체 없음

아, 죄송합니다. 맞는 말씀입니다. 개별 항목은 실제로 스크립팅이 가능합니다.

Interesting: a batch message like items << get label produces the same issue.
maybe batch messages use 각각에 대하여 in the background ?

더 깊이 파고들어 보니 오래된 티켓을 찾았습니다: TS-00128192

다행히도, 그 동안 이 문제는 충분히 해결되었습니다. JMP19(EA5)에서는 이 문제가 해결되었습니다.

undefined

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;items << get label // same issue as with for each

show(items[1][1])
items[1][1] << get label(); // OK, on the lowest level, there is a scriptable object 

Show(tmp = items[1][1::2]); // then this is a list of ...
tmp[1] << get Label(); // ...no

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

hogi
Level XII

Re: 범례 항목 가져오기: 스크립트 가능한 개체 없음


@mmarchandFSLR 님 이 쓰셨습니다:

실제로 스크립트 가능한 객체를 반환합니다.

반면에 ... 조금 놀라운 점은:

undefined


JMP19:

undefined

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.