|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑 $ k) p8 t, G5 p+ s; X4 `/ \6 [8 G
% ~( ^$ k: m0 G9 ~
0 j: u5 @* }/ \7 s如图所示:0 k+ ]. \# i+ ]1 C
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
- W! b+ R1 p: P' Z- /**显示处理器加工时间*/
6 Y4 q) x/ H1 T' G% H - treenode current = ownerobject(c);
4 L% W) q! R2 A - treenode textnode = param(1);. C, H0 U/ @+ s
/ d7 K q: [$ W y, k5 [/ B- string starttext = "Object Stat: ";/ n5 h& k! _5 v W! O
- treenode involved = node("Processor",model());3 p' p% s( a) A0 _! u
- string statstr = "";: C9 g# H1 t' \$ I5 i5 b6 m, P
- 2 F, p9 K0 {+ g. d: E7 d* I4 e: R
- if (content(involved)>0) //如果处理器上有临时实体. `/ y0 o' M/ I) l! G
- { B0 s0 o* T" o7 x; T; o
- treenode item = first(involved);7 ^' m3 \, X3 _# N+ k# U
- if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
% B; {7 L, ]4 i/ p - {//如果处理器处于加工状态
. P" e$ l0 W* I8 Y - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);' A( r* D: n( W2 Z! H
- pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
; d! M* d$ C1 k$ ~ - }
' Q: W3 u' s/ K; m. i4 o3 [; R - }
' v, m! P9 U& |- g# ]. m - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console: z3 A" D: J! U" m
- setnodestr(textnode, concat(starttext, statstr));
复制代码 * T# j# j0 e& Q. i+ \
! p' s1 A/ { Z
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。; @; B% z# q7 c
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。
' P7 N/ D* _* p! n6 \0 b/ Z- u( G5 w* x- _2 H5 E# W- e" _
8 a! k H' o$ W2 L
: ]; N0 A D3 ^9 V. n$ Z7 r, z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|