|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 5 _9 `$ L& W. W& `% l! }+ c
* {8 }! Y2 z8 h; D, e1 z* a
$ |$ M& k( C% M如图所示:% M2 [: ~; ]6 G. s9 I
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:# Y2 |" Z! Q1 }) U' f: j1 h
- /**显示处理器加工时间*/
! v0 s6 }& D/ S; }. p- M - treenode current = ownerobject(c);# ?9 j7 y$ x4 r* `
- treenode textnode = param(1);& {) |9 `2 o# t- ^3 I9 |, v. }
" j/ y3 r6 S- X5 e9 |4 t- string starttext = "Object Stat: ";* Q. d9 B% Z T* F( P
- treenode involved = node("Processor",model());: m% L% J7 K4 j4 K q
- string statstr = "";
5 T' g0 ?/ w/ ?3 G" `5 a, G
. W# w! c& j, k7 X0 ^& Z- if (content(involved)>0) //如果处理器上有临时实体 \, Y! b/ ~3 y! l3 l [1 A
- {8 v3 V0 Y+ I- T! V
- treenode item = first(involved);
) X* Z, \7 }8 g - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
' H. K. t7 r6 M0 `' |( M0 P - {//如果处理器处于加工状态. A/ i" C/ P: }0 P; P$ h
- statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
; a- @/ X: v) i1 l8 D0 `8 O - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console! }9 A; y3 |) ~
- } - c$ c, |% `, u; m6 y8 H5 u4 {
- }' d" B& Y# @3 G1 o. J3 L
- pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console1 O g4 O' E: e2 m3 n, l
- setnodestr(textnode, concat(starttext, statstr));
复制代码 - j( m- r) e4 ?* k @" K) {
% B) H5 C" Y& v: z3 X- B" H1 N理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。
0 E0 \# Y2 h+ ^但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。$ p0 I# ]5 Q, I% C6 O
* B# O/ N2 @9 V
& U# j' \ j% m- c; s4 z
# @: w4 K% v. Y1 i
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|