|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑
' Z& X( @6 { U2 O% G+ m( @
$ t/ V1 A) [1 o0 A/ m5 E8 ~! K6 O( V( p7 e' t$ `' t; j# q
如图所示:
/ q0 X/ b; R/ s使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:$ S, P- N- H- ^ q( G
- /**显示处理器加工时间*/* E& ]9 }. S3 j& h
- treenode current = ownerobject(c);4 _1 j4 a) m. S! g( A" J- I0 }
- treenode textnode = param(1);" P4 ~2 s" a, |: ^% X Y
- * T5 `0 t, |, |8 p" n& e8 l
- string starttext = "Object Stat: ";
8 i$ F3 o8 z6 R - treenode involved = node("Processor",model());
( ^0 U( C9 t5 _( K1 \. _ - string statstr = "";+ J$ e( g/ S. Y7 w8 |
- ; T6 ?$ j# J7 y% F
- if (content(involved)>0) //如果处理器上有临时实体7 v' |/ u( G, u. S; h
- {
6 I$ D7 Q }4 ^ - treenode item = first(involved);
0 ^' [5 A' D* b' K9 {8 x% x - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
9 l7 j6 h+ `. z/ a% q# I! A - {//如果处理器处于加工状态
% V& d7 x; u, d: U6 j - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);/ n+ s4 N w' ~, x' F( v4 e% |
- pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console1 n* N. p3 s( P/ V: |
- } 0 P7 x4 x: k* U! A P9 y% C2 [' l* a% F8 Y
- }. i- @. u3 i2 i& _$ z# I, S' H5 E
- pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console( ^6 P) s! L# i4 J
- setnodestr(textnode, concat(starttext, statstr));
复制代码
( m4 `: p/ X3 q6 i" u. W; n. G9 e: D2 I3 ^$ ~
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。. U6 x# C* i" r( ^# U
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
% M! f( y% D+ q3 z( ~; n( H! `3 _* S/ R( ~% h1 R4 V j) s
* v4 m1 n4 _+ c; d) |: A9 b' c; _+ t
4 s" X Z; N f/ l4 {2 l) ^6 g |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|