|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 & Q0 X- @. d/ H0 f
. Z) x3 y0 m/ \: o. H
3 C6 @) x: @8 q2 z3 g2 ?
如图所示:
- t |- v' X4 b3 g使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
( z: u, E, N5 [. V0 x" x- /**显示处理器加工时间*/1 @$ g: Z6 S7 K& g7 R0 ^2 j
- treenode current = ownerobject(c);- H7 O& t4 k/ z: ~0 A2 w7 @0 R
- treenode textnode = param(1);9 [% E. w& C3 @- H, H, ^
- * s4 }* a7 @# G5 n4 A# e
- string starttext = "Object Stat: ";
$ e% p$ y" K, d: A m/ v: U3 h - treenode involved = node("Processor",model());
# e1 y% s9 b9 F) ]* } - string statstr = "";( W2 @5 g! q7 P* ^
- , `6 @+ P8 U2 F8 l0 ]
- if (content(involved)>0) //如果处理器上有临时实体
5 }( c2 u4 m) Q) h' I+ z - {' S& u# r* Z! @$ O6 L4 W9 O+ v
- treenode item = first(involved);% C8 V. h- j# Y3 ~' e+ J
- if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)! S8 T4 m1 }$ _5 K. h3 w: A
- {//如果处理器处于加工状态0 s0 L) V" e, Q- A
- statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
T+ s0 @) X+ [9 V6 ]; N) o0 U - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console; d6 n7 Q4 }4 c( d9 F+ n# |
- } 0 _4 @" X7 z5 n+ ?. N
- }
# ^. n8 |2 n a% @/ e" r% E! O0 u2 u - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console$ C) U/ m) W" f
- setnodestr(textnode, concat(starttext, statstr));
复制代码 1 x: V- H9 b0 O6 p% Y- z ]
/ H2 b C3 g! X2 A5 l理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。
3 H' q! O# [7 L" j' E1 C7 I但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
7 J m) n9 z! R/ C
3 c& i. j( B j: g/ X
8 A0 t5 H0 a5 L& d. I' G( o1 U- N3 f: D4 m+ _, \2 G$ |
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|