|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 8 R u2 Z; \% M
) f* S2 |0 i6 A+ _, J
, `9 B( J( Y' P1 X% n) [# d如图所示:
/ t0 Y2 A+ }0 X% W' r使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:$ l2 R5 i8 G: v1 @+ b ]
- /**显示处理器加工时间*/
y6 V9 r5 j- Z t - treenode current = ownerobject(c);
- b$ |. G) b/ s4 q; G# u - treenode textnode = param(1);
2 B9 L* D% ^8 a& [
3 A B2 x$ H3 b' O0 L# h- string starttext = "Object Stat: "; ~! F; c) s1 ]. A f9 r7 C
- treenode involved = node("Processor",model());, R' g$ f; p" u
- string statstr = "";
8 X( ^2 H2 v1 k
" m* w g& I2 c6 S8 D6 {! r2 Q6 ]0 L- if (content(involved)>0) //如果处理器上有临时实体3 V1 ~- E. D% L
- {
: N( z2 j; }! | - treenode item = first(involved);
# G5 p u; S$ {# ^8 \# R - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)2 m; w: N1 u. Z" C0 D9 Z, k
- {//如果处理器处于加工状态
9 z$ C( [9 ~ { `& E# J - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
: @2 i4 M, |% Y% B; r( r/ l! [- p# \7 _ - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
K8 A. r/ d {. r2 _3 z1 Z; R9 p; a - }
* `3 Q: e# F8 O$ X8 l, ]3 o2 W - }* w0 j8 }% L7 x% T5 d
- pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console, @3 L* ~$ ~- u
- setnodestr(textnode, concat(starttext, statstr));
复制代码
4 g7 E! d3 L/ x. _4 E0 W y8 y+ b& G8 _9 a0 C- T( P3 j4 N
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。
: F1 R2 W% I h0 e3 o% r4 ?但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
7 @! g* U, D' n+ l7 t+ B% P8 r7 \/ X5 e9 i- l- |8 l! n
' n3 n3 P! l! K7 M! ]
+ q: P5 d: C) a0 L) @ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|