|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑
7 E7 \) c' s1 Z. H6 r$ h
4 S& i* s2 r; K/ x) ^# V( |: f: E+ @) C+ j0 r
如图所示:. C( _ k: e6 U+ Y1 B- ^1 V
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:" R, j% M% }7 z7 R+ f- `) R
- /**显示处理器加工时间*/% n4 u6 Y( L" S8 q4 Z0 n& c( A
- treenode current = ownerobject(c);
* e+ }7 S1 P3 \ - treenode textnode = param(1);* i, o0 f: q& ^, A0 o
- " T. C" B1 [% M
- string starttext = "Object Stat: ";1 }/ d( m0 ^/ R% D- _- M5 m
- treenode involved = node("Processor",model());" L4 ]! f0 H+ q/ ?
- string statstr = "";
5 ?. j! }; T! d
% v% h. ]0 L' m( k; b0 I, N- if (content(involved)>0) //如果处理器上有临时实体
9 a; P; p4 k4 C. @ - {
! O; k2 \* [+ @* A; }9 i+ y# Z - treenode item = first(involved);
/ s/ w6 \! p% {4 h n5 m - if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)/ g) F0 l/ R C8 L8 W
- {//如果处理器处于加工状态
5 u3 ]; t0 E! k1 r1 j, n5 [6 [( b# @ - statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);
7 c3 {! \9 L, w - pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
7 d! M l- a8 y - } ' i. Z) p* a2 f1 \1 w" V8 K
- }
4 e7 @, Q' X& O* k. w6 j - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
" K! P2 j& J! B# |8 L - setnodestr(textnode, concat(starttext, statstr));
复制代码
8 f/ F1 d+ X# c, A( ^" }. d& f2 A
) @$ H* ^& c1 c1 ~" j理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。# v: q) {$ U$ X
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。7 G9 F" c+ y+ f0 ?
* k Q3 x. y% R8 u& t7 V& g/ B
" [- Q( H& g2 Y. \2 k9 t8 G" h$ e |1 W) X4 {) @# B" S$ u Z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|