|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑
. v1 A2 v# b0 U: P% W% |) }
7 Q% k" |1 D# i8 {8 J2 n
) }' l& u3 N; m& `8 ^5 i如图所示:
3 ]2 a5 D# z+ L$ m! E6 l使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:( J" O# X: s$ G4 ?! k( Q; h
- /**显示处理器加工时间*/# j i2 X1 ?7 @" E* I! T
- treenode current = ownerobject(c);+ P' |0 h, q( S$ v) _+ U
- treenode textnode = param(1);$ }" J3 E& e/ ?
' G, N: ^2 O' s: x' P( Y# Q3 `- string starttext = "Object Stat: ";
4 c9 x: f6 P, ~ - treenode involved = node("Processor",model());
0 Z& s1 F4 K" O! W- U - string statstr = "";
# s, l* \2 z( T - & w* ]& V& E5 o: U* s
- if (content(involved)>0) //如果处理器上有临时实体
# w7 D( H$ w$ y Z5 s: b - {
4 P" F( u) r2 l - treenode item = first(involved);
( v1 H4 _ o$ N0 X- A2 P$ h2 b" D - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE): z- c! W0 [; c9 I
- {//如果处理器处于加工状态/ x4 c/ h* d9 N8 j
- statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
+ V2 D- c% |+ m. l1 Y% H" r - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console7 R: j6 \8 O7 a9 x9 S
- } : r) O2 U: H! |8 \( o
- }
0 M+ v' B2 H m9 k - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console& w, r! m$ r! |$ B& @6 C9 l5 D; d
- setnodestr(textnode, concat(starttext, statstr));
复制代码
& L2 b+ h! g# U# ]3 m" T0 V
( s" G" h5 E3 X$ ^理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。
6 ~0 }, ?$ ~2 u! O( J1 g' B1 s$ I: h5 m* o但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。5 C2 W$ ~0 Q% ?2 e
, R$ B! A F1 r# C0 q, j: s
* i/ o7 f9 H' J; v' c
; c5 I, F6 k. T9 h( m
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|