|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 3 M6 U* Q* B e- V% o
7 V6 Z0 R. A Q
, h" p" A& M# a- j2 ]4 V. x h如图所示:2 n5 _/ S# V& g# q4 w$ a# j! F
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:3 K9 p' U+ {( t
- /**显示处理器加工时间*/
) B. l/ Q- F0 Y; ^ - treenode current = ownerobject(c);
6 ?4 a0 q; P7 d" n - treenode textnode = param(1);8 D/ f3 H: @! n. O
2 R( a5 D/ k3 v0 u- string starttext = "Object Stat: ";3 L* b- ~: _3 V, {4 Q& J' |
- treenode involved = node("Processor",model());
; k8 `0 k( N7 |4 K+ o4 d0 M - string statstr = "";' \1 d; R4 }5 C7 \% @7 j
- , g+ \ z# J9 n4 X5 j
- if (content(involved)>0) //如果处理器上有临时实体
9 ]) P c5 y# N/ ~2 {8 f! g- m - {& w V% ~ J; I: y4 d
- treenode item = first(involved);
* Q" g9 u8 X$ v8 L - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)3 I, A' x, [2 t
- {//如果处理器处于加工状态
+ B2 h# }$ v% M/ ^; T% k - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
6 n9 r1 o; ?( y) { - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
7 a6 K7 w6 c. k6 Z& X - }
9 Y5 B8 w0 H' ?* [/ X2 V6 b - }
4 \1 h+ S) U7 u# L - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
; R% F, O4 q( u+ @ - setnodestr(textnode, concat(starttext, statstr));
复制代码
0 e$ U- O. x+ V9 F0 K( f$ p' z1 I+ z: h8 _/ L
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。' `/ P$ h2 {; N m0 a/ ?
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。$ ?; D6 Y# v5 t2 v
& Q' i. G, n& d, x7 J9 j
0 p; }+ z, w& d. L# b: d3 b* |
% }: ?9 ^4 ^8 H6 Y+ j0 {+ M
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|