|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 3 y( z3 j! {; G, g
' T+ s! ?# O' [+ H, u
8 [6 n+ y4 G6 P* Y, F4 a) g3 J如图所示:$ B& U7 K) ?8 o" V# |# D G
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
8 ]; K0 H2 G8 }3 ~- /**显示处理器加工时间*/. V) ~ M* p" a
- treenode current = ownerobject(c);( {$ f6 Y- A5 f# I- m J @ _
- treenode textnode = param(1);% e V8 e; A$ ?9 K9 W
- 9 G4 d3 ]& U" L) `1 ]3 h! B
- string starttext = "Object Stat: ";5 ?! `, q; B' E
- treenode involved = node("Processor",model());5 h2 h7 j+ m9 l4 p3 q4 f
- string statstr = "";* y" ?! r" R) ~
# |, m' I9 @5 f8 c; q/ d: O* o1 C- if (content(involved)>0) //如果处理器上有临时实体
% R) d1 g) a7 q6 R+ z$ M8 T; e4 r - {, j7 r- e+ f) E/ X" R: }
- treenode item = first(involved);
$ B6 l0 I! m( m+ t [3 I - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
8 K9 X% }" ?0 S - {//如果处理器处于加工状态
1 b6 H* |* S* g r - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);& n: S9 b/ f3 K m
- pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console0 ~* f1 x5 j" j
- } 9 k$ C) B" K2 u( @
- }
8 Q: V5 l3 l& p) {6 \ - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
# h4 d H# J8 J - setnodestr(textnode, concat(starttext, statstr));
复制代码
I& h6 o: a" `! e, \/ z
% i) E [) [8 b理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。
& Y: x7 q, a3 N* u但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
3 i0 A: m4 _6 ~* ?7 c. P9 K" j# d: O8 }2 @ @. z* g( L
4 Q7 e2 J9 R+ X8 |3 b5 U5 n9 r
5 L% O, K2 @3 o
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|