|
本帖最后由 zorsite 于 2018-5-18 13:17 编辑
l [- h# V5 s5 G& `" ~: T: c5 y* |4 Q- q9 q
4 ]& U- Y# X1 z r; s( p+ L
如图所示:- s. v* ]9 V( I/ }! s/ m$ v2 ~% @1 K
使用Text实体显示处理器加工时间时,想要同时获取临时实体的类型值。以下是Text Display代码:
! f. L. D6 m) s# T5 v6 N8 r7 j- /**显示处理器加工时间*/( ^1 w8 H* E; _+ H! e7 o
- treenode current = ownerobject(c);
. X0 J6 C; u. U! g! d - treenode textnode = param(1);) A; } t" o p5 [) `
- : }4 g/ @1 c3 H: k4 G1 V
- string starttext = "Object Stat: ";
4 K. U, w! a* \. u( k2 r5 k) j: ^& ^% ` - treenode involved = node("Processor",model());! n, c y" F0 F2 g7 X
- string statstr = "";5 \) s3 o2 S8 C
- 5 J# u/ l: g/ D6 Z( G
- if (content(involved)>0) //如果处理器上有临时实体
' K( t0 | c' y' t/ ? - {
. d4 n! F5 Q" Y0 j3 M* S$ z0 u% P0 W9 Z: | - treenode item = first(involved); i+ c4 l7 n3 J$ }% G; U& {
- if (getstatenum(involved) == STATE_PROCESSING || getitemstate(item) != FRSTATE_INQUEUE)
# h/ H. F& b6 M; W2 v( w& ] - {//如果处理器处于加工状态. f e3 g, w; n8 U( o$ B6 [
- statstr = numtostring(getitemvar(item, ITEMVAR_PROCESSTIME), 0, 2);1 `( O$ \$ `! a, v( ~
- pt("01-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console
' _8 n/ K& T+ A - } ) w0 J7 Q1 z. V; p& X
- }
9 n& t: h0 F* c* Z) _ - pt("02-");pd(getitemtype(item));pr;//获取当前正在被加工的临时实体的类型,并输出到Output Console) |' K' h4 K# u! U; b
- setnodestr(textnode, concat(starttext, statstr));
复制代码
. H; |0 J0 K( L, e( p9 B) i( ]$ m
理论上来讲,如果处理器上有item正在被加工,则不管是在if模块内部,还是外部获取item type,都应该是一样的结果。8 \1 s4 D5 Z# k/ R6 C+ I$ i
但Output Console观察到的结果却显示:只有在if模块内部才能正确获取到item type,写在if代码块外部的语句无效。2 W" ?2 a/ u# Z0 q
# l% t) P6 W& K" _6 y- ? R* X
+ ^( ?" e8 k) [) L
0 n+ R6 _: D3 F
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|