全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 , z( N6 l$ n: f5 P$ L) {
- ?3 h; S+ z+ I) G) w: J
1.创建标签- y) u+ Z4 `8 w. j
  不用刻意创建标签,具体原因见第二条。
- S2 L* W& |4 h6 x% y  }+ E6 O  O
9 \2 Y6 N  Q2 z& i9 f' e2.设置标签值
! j! |. F* L( ~
  1.   object.labelname=5;
复制代码

$ a7 }5 B0 ]4 j" N) c  如果标签名不存在,该行代码会自动先创建再赋值! }+ o. ?: v2 ]* P) \# U; I
' V9 ^. s  b  F' E% N# g
3.获取标签值
% P4 a1 }& b2 C- V
  1.   return object.labelname;
复制代码
3 C# t8 \- b) m: z! H# a
  如果标签名不存在会报错。可以使用如下代码替代:' ^( |. e) |$ U
  1.   return object.labelname?;
复制代码

6 D: G* Q; I8 l
8 I$ I# a) ], D, [" U, T4.增加标签值# H' ]/ ^1 H' B8 z/ y
  1.   object.labelname++;
复制代码
3 Q5 ?  d3 ^4 Q
  如果标签名不存在会报错。可以使用如下代码代替:
1 @* e* v+ ?2 e$ B8 o
  1.   object.labelname=object.labelname?+1;
复制代码

: [7 X$ z8 \# c. t2 v8 x: q* t0 H' B/ U3 |8 Z. S" A
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    ! \, n4 M% t9 x1 X# f' w
  2.   object.labels[labelname]++;
复制代码

* H; o4 s( ?" H6 z1 l, X# H) B( h
; _& h2 Z4 _; |9 p" L# b: m0 w$ z3 B
6.不建议使用标签序号

5 U) E% o' r- i- p8 O. @2 Z  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
  ~; R# {- _2 c: k) Z9 l5 G  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。5 D: W. ~3 d5 y' F  S
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:4 I5 p5 M: c) c& E2 M
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
1 K% k1 @' g& W' R$ E
. G/ M( @$ o/ }8 u

5 x  F/ }+ M  l% J& I3 A- u
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
" K+ H* [# F) U) W1 v$ {
Clay666 发表于 2020-5-6 08:14
1 z8 E% N5 r4 Y我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
" o, t3 ]+ ^5 E+ KVariant myValue = current.labels.ass ...

2 y4 P$ P8 D8 E& b9 ^; ^: i- Y这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。; G' ]  H# u- H% F
- r2 j4 B! N' k" \9 Y* \! N
这段代码等同于:+ N. v; J( f! L( z
Variant myValue=current.MyLabel?;参见我总结的第3条。
# A6 S% {1 A+ E( d2 H" `# [( W0 N
( j: ^3 |; d4 @  x) j新建标签并赋值直接用总结的第2条即可。
/ u. ?- Q6 p, q$ S- q6 R) ]; O9 Q9 \9 I+ ^+ O/ k2 C- @
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。0 H% }, w- L+ x( x2 k4 o
current.MyLabel = 5;
9 j/ e* h. c$ i3 T; 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.

$ S" K" \, {) x% C# o; E# z
6#
zjj0605 发表于 2020-5-7 17:46:38 | 只看该作者
感谢大神分享
5#
wangchangping 发表于 2020-5-6 12:21:58 | 只看该作者
感谢楼主分享
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14
+ Y7 L6 e  V# F6 m我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
. Z" T( n9 j' p% r3 V$ E) p/ w2 wVariant myValue = current.labels.ass ...
& l: k! k2 U" j4 D2 C
current.labels.assert("MyLabel", 0);+ I9 b4 m# Q* t& x$ z
或者  ~0 T* N6 D* n: I1 B" I' W; [0 _
current.labels.assert("MyLabel").value = 0;
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:" F0 D! o5 w5 h; c
Variant myValue = current.labels.assert("MyLabel").value;
5 Y  @: k8 ], I0 M& A( z7 x0 x否则会报错该label不存在。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 14:15 , Processed in 0.068234 second(s), 15 queries .

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

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