|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑
+ K2 h8 {+ h' F- h7 d) b0 H$ Y. t2 q
$ o+ Y% h( B5 Q' V6 \- `如图所示:
$ L. y0 H8 \# ]: J3 F使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:$ n. D% ^9 u9 O! r
- /**显示处理器加工时间*/
/ @' a$ V/ M% L' W3 G a! | - treenode current = ownerobject(c);
( i) [/ U! T M; z2 U2 w - treenode textnode = param(1);
/ ~5 {, o( J9 ?% O
: y2 A8 M4 k' q# S) {- string starttext = "Object Stat: ";+ |( j; l; J& Q7 d; u
- treenode involved = node("Processor",model());. q5 C8 b. e3 w8 |! x" o# i
- string statstr = "";
7 U$ s% m5 B" H# t6 q3 k - 9 h' Q# I% H1 {/ y) O+ W' h8 m
- if (content(involved)>0) //如果处理器上有临时实体& j$ u: N1 U( G
- {
$ l8 z; W) r) r/ P9 p d - treenode item = first(involved);
. B3 J/ R. B6 c1 u2 P9 X4 h - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
) `$ I8 M& R) f1 ] - {//如果处理器处于加工状态
; L9 |: ~* {# P$ r* o4 Y! \3 S - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);/ F# c. M7 N+ ?, N# U9 ~/ r% |4 H! p; n# G
- pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console* S& O' q8 g0 R
- } 1 G' i( s( y+ ?% t9 y/ M' l1 b
- }
" I7 @% x5 O3 ] - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
/ K0 c+ f1 I7 \6 A7 m `5 L, U - setnodestr(textnode, concat(starttext, statstr));
复制代码 - Y9 J3 Y- J* E9 ^
2 n( q3 P2 e8 l& q& E8 c, j9 g
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。5 r& b$ j! ~& `: j
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
' ?" s# {; F, v' p5 ?( ~4 M
2 _" ^% u( c9 X" l# g* l5 t( L% Z
3 X; D$ q9 H3 ~+ E, ~3 B& K |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|