|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 ) u* _( x# r; D1 J
+ W. ], i% V& u/ j' b, \* r
1 U9 `- o6 S& T9 R" X" U, X如图所示:
% m7 S/ v) p$ |" f+ N使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
0 \; C: d( ?0 t i1 M% X- /**显示处理器加工时间*/
! O9 C- g* B+ `0 c5 k! i7 b - treenode current = ownerobject(c);
3 K8 d6 ~3 z6 Z- Q, F ^/ o: }6 M - treenode textnode = param(1);
n9 Q% D$ |% I) z l - 5 R( [- Z) f8 V7 w4 D% m
- string starttext = "Object Stat: ";. U, ?1 Y& |( S1 y" W& h
- treenode involved = node("Processor",model());) v2 X) B4 t8 }' ^( \5 |( r
- string statstr = "";8 l9 p$ O* \: a' T# e8 _) z
2 B* W3 V2 |8 P3 X5 v; `& J: |8 n- if (content(involved)>0) //如果处理器上有临时实体" n, g6 Y8 D6 ^% U
- {
C+ \% o" z/ C) _- L# p - treenode item = first(involved);
0 ^! l4 n( d" A- `" c' M$ V" @ - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)' [5 W7 h% c/ y, O
- {//如果处理器处于加工状态
9 Z) A/ h" o6 n) M: w4 n; z - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);& {! ]8 t/ [0 y. H
- pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
/ |: w# o% o# P |7 b - }
: h2 u$ G/ b( G; ?# \ - }9 p" h/ Y# g" t; V$ L- g& T% u; E3 }
- pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console# }; A+ I0 g) s# M' [+ t
- setnodestr(textnode, concat(starttext, statstr));
复制代码
& ^6 k4 C6 P, [
1 M& g% ?% {( Q/ @ r* g) l理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。' x% F+ z1 f$ X0 X! n* n4 h4 |/ d
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。. m* W7 V1 @* |, T! {- F% l+ y7 `
/ O [& w O: \, } n
; b9 ]9 N9 N; V5 y5 c' K
9 E# j& ]* t; H" d |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|