|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 6 a2 R9 g3 Z0 Z" y4 b' |' `8 @1 ^
# e% K- T$ ^5 N9 Y9 e3 O) ~9 A; E- M6 Y7 q
如图所示:
/ L( w! b) o. O2 S; f. m使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
" I) k3 z) t4 \4 d" x+ C- /**显示处理器加工时间*/
1 ^/ D4 K/ l" ? - treenode current = ownerobject(c);
. D7 o( D9 Z# U: U: @+ X8 K - treenode textnode = param(1);
* [5 {1 Q% C7 D4 ]7 `2 i
1 g, y& g% r1 w# s3 {+ ^- string starttext = "Object Stat: ";, v. j* r" G2 M! c
- treenode involved = node("Processor",model());& Q) [) w- h$ g/ j6 h/ ?
- string statstr = "";
: ~- @# z V. F" D5 e - ' i+ v$ F- M v. d G
- if (content(involved)>0) //如果处理器上有临时实体
+ R u. W: R" R: Y. s - {
% b& a, Q8 f: ~$ _& X" N7 L4 k - treenode item = first(involved);
* i- l# D% U1 b8 ^ g - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE) G7 @5 ?' X4 e6 d
- {//如果处理器处于加工状态3 y" O4 _0 t, H2 l
- statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
3 U9 r/ y6 Q0 j3 ]: v2 U C7 n8 Q1 o - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
2 p2 s. r. O. R6 X8 y* M! i6 i) Y - } ; h$ H+ @& w, @. e4 F" M
- }
& f+ _: C* ~6 A# G" n* m0 [) O2 X R - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
3 c' E- l- [4 x1 L. h - setnodestr(textnode, concat(starttext, statstr));
复制代码 " g+ s, z# _$ K" ~0 o! e
) I: \* Y f; V) Z
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。
9 x$ i8 H: `, D) y# X$ s8 ]+ f但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。, _! u* o1 R8 J' y: r S" W2 R
: Z8 H; R4 q/ D* ~7 y3 Y/ ?1 ^) _" z6 P
* m% k7 K2 [- \7 H6 V( g
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|