|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑
& b! X7 I5 T9 O: s! h/ a& U( X) R7 a# s$ S; ~+ s
9 U. x4 `3 M: D" X3 E3 M如图所示:4 @; X" \( s) L
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
$ X7 g8 d4 w- s5 N: V- /**显示处理器加工时间*/8 N7 c: K% N$ b1 c
- treenode current = ownerobject(c);
2 X6 U5 I% x* {3 k - treenode textnode = param(1);7 s" t; o) U [& |
. ]% l# X0 a; `1 ]- string starttext = "Object Stat: ";
( J( G& b# R" T! ~ - treenode involved = node("Processor",model());
! X& r" x, ?* W0 b - string statstr = "";# F: l! w( O3 G4 ~7 a* m: t
3 J1 z. B1 f" h2 N6 \% }, @8 N- if (content(involved)>0) //如果处理器上有临时实体
; u9 n2 ~; s/ Q& m; n; `" M - {/ @/ c9 j/ u7 k( S4 {+ t% o. W$ L* C
- treenode item = first(involved);" U+ F$ @, l& F
- if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE), x( K/ T0 _8 R2 }, Q' d, M
- {//如果处理器处于加工状态. i1 d4 {8 Y8 d% N) f
- statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
' P/ q, i" k. |. z* Q" M - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
5 A* N$ H+ I# ~! m - } 8 R5 H [( |8 h' v+ }
- }
& ?9 F% ^) G& B5 `" c0 F; x0 S - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console$ U* L/ f& |: L: H8 V6 V, q$ w' }
- setnodestr(textnode, concat(starttext, statstr));
复制代码 9 { q& g3 S4 z* ~1 m. x6 D
+ W1 x8 d# K/ J9 _' D( k
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。/ c' J; l) k( w" z
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。/ X" {7 A! W: {& t! ^$ A# p
) F1 M+ r9 n; @# {; b
* K6 m" `4 |5 d" H1 t* y8 H1 {
) T+ C9 W8 C! f y0 U1 ^+ v6 C |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|