全球FlexSim系统仿真中文论坛
标题: 标签使用小结(基于Flexsim2020) [打印本页]
作者: zorsite 时间: 2020-4-30 10:58
标题: 标签使用小结(基于Flexsim2020)
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
* ~' j9 q8 b0 Z, O: @' b$ D, d: ?
) L C( P9 i$ o- q- {1.创建标签
1 l- _4 h: G' e 不用刻意创建标签,具体原因见第二条。
. u5 A0 ~5 i# R3 P9 I; G- \) g$ n" }+ \' N
2.设置标签值: w% x* b' J2 H6 p* l
' v% z2 I$ {: }/ l5 n5 u* A 如果标签名不存在,该行代码会自动先创建再赋值。, R( r% k8 c/ Z; T5 q. a) V. o
" H' `4 C F* v* p3.获取标签值
$ p$ F+ y- X3 R5 ]; q
% m9 U: t$ @3 v$ u$ O 如果标签名不存在会报错。可以使用如下代码替代:/ B: n) ?4 f5 d- S
- return object.labelname?;
复制代码 $ }7 ~# S/ S9 p% [: Z- q
5 g8 M! N0 C: {- w6 q% V) c% s4.增加标签值) W, K ]# K5 y! |4 k% X; U# r
/ q7 S# i1 v1 }8 Y3 K. ^+ J4 m
如果标签名不存在会报错。可以使用如下代码代替:7 o0 P* N g% C) ~/ @: O# B
- object.labelname=object.labelname?+1;
复制代码
- K& R7 b5 N5 ` Q K/ f$ k4 } c/ }, l3 O' ], h
5.如果标签名为变量,可使用treenode的labels属性- string labelname="item"+type;
! V6 E7 ~% A5 h0 m0 l9 L - object.labels[labelname]++;
复制代码 8 x s! X+ c* S/ v$ g$ L$ \9 N2 H
9 Q) t; _; w' r D# _ G* L3 }6 `4 T/ V+ P2 m! e
6.不建议使用标签序号9 j/ n) X2 O# x2 ]( d( {. E
老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
6 H8 S7 d, W _ m4 f: \8 R* @ 使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
! [, A- ]% X7 c! V" Q 如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:9 z0 F4 x( q+ g# u) T+ L
- object.attrs.labels.subnodes[1].value = 2;
复制代码
* y/ @! @8 C+ I J- o8 z" h( ]1 A, o; b) z9 {
7 E8 Y7 E- f- `; b" z3 g
作者: 小王子波 时间: 2020-4-30 13:45

作者: Clay666 时间: 2020-5-6 08:14
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:% G+ C7 c9 G( p7 z, v0 O( ?- |+ t7 Z9 u& Z
Variant myValue = current.labels.assert("MyLabel").value; ) [( M; u' {; y9 ~
否则会报错该label不存在。
作者: 小王子波 时间: 2020-5-6 09:00
Clay666 发表于 2020-5-6 08:14. _' e; s' n$ }) z
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:- I1 q$ e5 \4 i& f- t
Variant myValue = current.labels.ass ...
$ U; I8 d6 B% ?- jcurrent.labels.assert("MyLabel", 0);1 S- f4 l4 ~% ?% Z- Z
或者" E4 E' D" [* l
current.labels.assert("MyLabel").value = 0;
作者: wangchangping 时间: 2020-5-6 12:21
感谢楼主分享
作者: zjj0605 时间: 2020-5-7 17:46
感谢大神分享
作者: zorsite 时间: 2020-5-10 11:30
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
! t7 u6 X; @9 p2 OClay666 发表于 2020-5-6 08:14
) A3 n R8 H9 q( a; M我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:- C' t3 P) y/ [$ k6 d
Variant myValue = current.labels.ass ...
% c6 t% d' f: p! N6 X9 J# u* L' s这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。/ L! R, c2 G$ c" p9 n
* F# _" e4 @( E" S9 f% {
这段代码等同于:
. G0 J* Y( |- c( X& D2 ^Variant myValue=current.MyLabel?;参见我总结的第3条。
! G! O9 N9 I1 N' V5 l1 l
1 h7 O" P ]9 n. e" r j) K新建标签并赋值直接用总结的第2条即可。
( o; W, J/ F6 _! s/ V/ E
2 B6 T; P ^( Y0 I; l" c你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。9 i$ v- I7 t4 |; h+ p; ]* n
current.MyLabel = 5;
$ F+ n7 w. S' x- ~This will set the label's value to 5. If a label of thatname does not exist, then it will be added to the object's labels.
: A. [0 I9 ?8 r3 x5 U+ Z2 e% A
作者: ABoY 时间: 2020-10-16 14:07
感谢分享7 U0 C* p+ [" p0 T# |
作者: ABoY 时间: 2020-10-23 16:52
学习学习
作者: Fx大风吹 时间: 2020-10-24 13:39
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) |
Powered by Discuz! X3.3 |