全球FlexSim系统仿真中文论坛
标题: 标签使用小结(基于Flexsim2020) [打印本页]
作者: zorsite 时间: 2020-4-30 10:58
标题: 标签使用小结(基于Flexsim2020)
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
+ z4 C) |) O7 T7 T9 k( Y+ z$ t" c0 _5 G$ N0 p6 J6 n0 h M
1.创建标签0 T& }3 A$ O# l
不用刻意创建标签,具体原因见第二条。" Y+ b) h+ \5 {! f
! H$ J( R0 R. L6 y8 S1 `
2.设置标签值2 x; H/ B& W' W; ?+ b
5 s; y W9 R1 {! {9 z
如果标签名不存在,该行代码会自动先创建再赋值。. @( f) W8 Q; A; m5 D8 j. T
& E1 Y' v4 C2 g4 y3.获取标签值! m3 l8 [) m! H7 t7 G/ k: n
" f5 D6 S: k1 \+ {3 v, e4 x 如果标签名不存在会报错。可以使用如下代码替代:
* Z; `) C4 J) B) \$ n, }+ }' `- return object.labelname?;
复制代码 8 B# X7 K+ p) C9 P5 g, o, t/ v
0 B; k9 w! E. S! C7 m4.增加标签值; E8 ?4 p6 E" G% C U/ _; S
0 k0 R$ B+ A2 v1 r, M9 j! }% q
如果标签名不存在会报错。可以使用如下代码代替:7 }) q* k7 t8 g
- object.labelname=object.labelname?+1;
复制代码 , ^( w7 H4 l- B% M3 P8 ^% q# L- T
* O# x/ ^4 {( t) v7 \4 s5.如果标签名为变量,可使用treenode的labels属性- string labelname="item"+type; @& g8 m7 y* `2 e; C( _* {3 e
- object.labels[labelname]++;
复制代码 * ^5 f o) E: n# @+ i9 x
: ^. ^' x) z6 ?
/ A0 g$ E5 w! c" _' K8 \! K# |4 c
6.不建议使用标签序号
; k0 s9 f9 I1 l9 ]" f2 r7 p% a3 x 老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
+ w$ h4 @8 A" r/ g1 q 使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。& R+ r! l/ p7 A2 b1 z9 n
如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:3 r5 i! @( U; U6 O" l
- object.attrs.labels.subnodes[1].value = 2;
复制代码 6 t5 L/ f! H$ e- u' x$ E
. A0 e+ E2 G" X6 v( ~* [. D( T6 z: y
- t3 S& P8 b4 q8 {
作者: 小王子波 时间: 2020-4-30 13:45

作者: Clay666 时间: 2020-5-6 08:14
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:1 I2 F7 L/ y5 L- O n S/ ]/ P
Variant myValue = current.labels.assert("MyLabel").value;
/ {; d, f3 r7 b* i否则会报错该label不存在。
作者: 小王子波 时间: 2020-5-6 09:00
Clay666 发表于 2020-5-6 08:14
- F j6 }' }1 T* V3 M# o5 R$ ~, h我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:" _2 [7 B% N' \# y
Variant myValue = current.labels.ass ...
5 `4 I+ a8 h6 e% u$ [current.labels.assert("MyLabel", 0);0 [! q2 N4 y8 J, P
或者
+ h% @' a1 Y1 n- \/ T6 G) Kcurrent.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 编辑
: d" t- D) M" F! J- J( I9 NClay666 发表于 2020-5-6 08:14! z, b4 e/ |9 r! a4 e0 ]) T G v
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:) X* A b2 Y1 V
Variant myValue = current.labels.ass ...
8 M5 q. t# Y% G" Q& P& k: O
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
2 Z# E' v8 ?- `$ r. H! H" G& i: ~6 d! n! U, A& x2 s6 i. H
这段代码等同于:' C6 z! d7 O0 T8 D6 Z9 D4 D+ v9 z
Variant myValue=current.MyLabel?;参见我总结的第3条。
2 c) ] | M( N% r: G
e% W; L! N/ o" k- o& |4 P8 N8 e4 t新建标签并赋值直接用总结的第2条即可。" P9 `" V$ }2 w0 _/ }# E5 q
5 \$ x9 w w. y! z
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
: Z( }' E1 B4 A9 d; p y" Vcurrent.MyLabel = 5;8 C: E6 ~& y" {
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.
4 g% S6 I, Q9 G1 [
作者: ABoY 时间: 2020-10-16 14:07
感谢分享
" F5 W) ?- S8 g: q! f! Q2 t& F
作者: ABoY 时间: 2020-10-23 16:52
学习学习
作者: Fx大风吹 时间: 2020-10-24 13:39
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) |
Powered by Discuz! X3.3 |