|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 . L3 A0 i. z0 Z' d# c# D8 Y y$ s; W
" [5 Y/ r; D, R0 Q+ Z( p
# g' R+ p, s" G1 e+ f5 r如图所示:
& t% T3 n1 G( L5 P9 z使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:0 d2 f- o1 \0 Z
- /**显示处理器加工时间*/8 Z2 P: { y6 m9 O3 H
- treenode current = ownerobject(c);
+ z* V& O) X5 w5 x8 g - treenode textnode = param(1);3 z. P6 W, _$ |. F
+ J; i) \6 f3 l+ d- string starttext = "Object Stat: ";
, _2 ~3 S+ w$ f& k" X3 b) I% p - treenode involved = node("Processor",model());
* t: \9 g) F N3 P/ n+ _8 I! e$ ^; Q - string statstr = "";
- }3 Q8 V, }/ Z4 x7 ] - ' o! I, R# c, h0 G8 f9 _
- if (content(involved)>0) //如果处理器上有临时实体9 ]) R t: P- w- m. M [, u6 K
- {
. { `. I3 ?4 B7 i2 s# f# R& f F - treenode item = first(involved);& K0 p6 |+ I- ]) c' I
- if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)( `& k! Q8 ~! I3 s$ G9 P
- {//如果处理器处于加工状态
3 h* H- @( p4 H4 R# l) z - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
" b, h& R7 q, ]3 [ - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console& v7 K4 E9 s2 q) o( Y7 \' v3 {
- }
8 B! G$ H/ g/ G$ O3 D( U - }
6 L7 i6 G) N) X+ } - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
; _ I1 a! w; M/ x3 _8 M - setnodestr(textnode, concat(starttext, statstr));
复制代码 ! T5 ~* o3 K1 K
$ i3 H" h9 h; X6 Y
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。) d0 O( `! V. w# g* n
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
0 ?- d! e' u0 @1 f1 e/ a! k
. Q% W1 ^- R' I' F: o
( H* A% L: B* k# `. z% t5 ?7 ?( H8 H* ~
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|