全球FlexSim系统仿真中文论坛

搜索
查看: 8945|回复: 9
打印 上一主题 下一主题

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
  K: q6 k/ f: B! z8 J  z# e
$ h/ a# C1 e4 C, C7 o5 {* D1.创建标签% D' b0 j0 t, w) Y' F* B2 B
  不用刻意创建标签,具体原因见第二条。
8 D3 o* b  w5 `1 x" j2 H7 B$ n; e; F2 Q( ^
2.设置标签值
8 F. |4 M& V/ v/ K( l6 f
  1.   object.labelname=5;
复制代码

& O9 K6 E8 n& ^. B) g; H  如果标签名不存在,该行代码会自动先创建再赋值
4 N( W8 Q9 f+ k8 }2 l
2 O& O+ ^+ L9 @# b3.获取标签值( E: T4 J' }6 z- a$ L9 ~  a6 w
  1.   return object.labelname;
复制代码

) Z$ a5 ^* W; [; p0 O  如果标签名不存在会报错。可以使用如下代码替代:
0 s( C# d# L7 E4 E: @5 i
  1.   return object.labelname?;
复制代码

& a/ p8 N+ F, r. n. O# T, d  ]8 ]5 s; ]" s" {9 {
4.增加标签值
/ K+ m% _& `9 u# I6 b; [' X
  1.   object.labelname++;
复制代码

( \7 ~3 k- c5 ~5 U5 ]7 h0 x  如果标签名不存在会报错。可以使用如下代码代替:
  H9 x4 r$ b1 b8 f: g# A
  1.   object.labelname=object.labelname?+1;
复制代码

3 }) O& Y( S5 ]" ^* m( p+ W" l/ S! x; ~3 D/ p* _
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    + g' X0 H" A$ c8 K3 U2 W
  2.   object.labels[labelname]++;
复制代码

( Z& D) J: _' R/ M3 Y8 H/ Z3 N/ L6 h4 p1 S2 V4 S7 @  @0 [

7 _2 x% R6 a6 |6 R, ^4 b6.不建议使用标签序号
! _* [5 ?. ~8 m8 B+ m$ z9 m
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。1 B9 o; T% n  n# F8 w
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
! Q; b0 f/ u) f" g; g+ r  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:8 K/ ]( ^. \8 d! E
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

6 m7 Z% A! U* u8 |; a- `/ t/ C$ _
7 H, g$ v6 ^, m: A# W
! y1 N, ]' h0 H3 N0 r/ ^
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑   u" j& `" P6 o2 k& E& Y
Clay666 发表于 2020-5-6 08:14/ r; Z. e: e! G2 T6 ^
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:+ `# {1 u1 k6 N! z9 \0 v
Variant myValue = current.labels.ass ...
# Y5 I9 J; x: N
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
( D$ O; x$ }0 M* b% Y+ M" E7 H8 E( a- [: C& y5 r. F* M
这段代码等同于:: H' f( r, Q: L0 t- R7 i6 x% F( H
Variant myValue=current.MyLabel?;参见我总结的第3条。
; a' o! }+ W1 ^+ A1 ]: \  l2 }+ N" T" P$ L+ {4 y: W
新建标签并赋值直接用总结的第2条即可。
2 n7 B8 W3 z4 A! X/ A/ ~& G+ ~: H; @7 `& {5 o, X* x7 g
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
+ \+ l! q# q/ _- s$ L6 Kcurrent.MyLabel = 5;
* {' ^- _8 z! f, ^$ H% s
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.

! J/ U. \* F1 L# F0 ]1 a
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:# h5 ^! H7 a2 K2 K3 f; ~
Variant myValue = current.labels.assert("MyLabel").value;
! o/ a8 ~% E3 M3 {# O, Q: n. J4 v否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14
" m, ?% h$ X; r我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
* t- M2 {  |- _6 s5 @! _Variant myValue = current.labels.ass ...
3 i5 H6 ~( y0 w  s
current.labels.assert("MyLabel", 0);
8 Q9 H- H# I5 B$ v或者
- h1 p7 N2 S3 q% s( R- ccurrent.labels.assert("MyLabel").value = 0;
5#
wangchangping 发表于 2020-5-6 12:21:58 | 只看该作者
感谢楼主分享
6#
zjj0605 发表于 2020-5-7 17:46:38 | 只看该作者
感谢大神分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-7-10 00:58 , Processed in 0.087422 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表