全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
- e- S  Z! \. p# ^6 {3 x" [/ ^" f& g0 }6 t% W
1.创建标签
: Y2 c0 T: |4 ~2 j, e  不用刻意创建标签,具体原因见第二条。
% S1 [6 @+ @2 h
/ M9 j5 f2 ]& b" T2.设置标签值
. [4 h- c" R2 q8 }
  1.   object.labelname=5;
复制代码

" ^, n9 j9 g& z2 d. l! O$ y. Z: v' I  如果标签名不存在,该行代码会自动先创建再赋值5 `/ P9 g% u. S! q2 v6 \

4 E. @7 o3 a' l- g+ x5 q3.获取标签值
% U) ^# r. |7 o: Q  k) ?# Y# Z
  1.   return object.labelname;
复制代码
& h0 W% v! T' Y6 z  y& x
  如果标签名不存在会报错。可以使用如下代码替代:1 S* _& Z( }+ d2 |
  1.   return object.labelname?;
复制代码
" [  Q$ P0 ]; y! h

$ x4 `4 Z7 m* G0 G' ?# w4.增加标签值
- g+ W/ c! }4 ]/ P( ?. [4 _, C
  1.   object.labelname++;
复制代码
1 V8 h  x, x0 u% o: m  }
  如果标签名不存在会报错。可以使用如下代码代替:) _7 \/ e! z& E3 R# S4 l1 k
  1.   object.labelname=object.labelname?+1;
复制代码

5 x9 K: g4 t4 O( _+ X( j( [5 M9 }0 b) |5 b% u
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    1 P+ \3 z& Z* q0 U
  2.   object.labels[labelname]++;
复制代码
. }/ Q7 p4 F1 e# c1 s( _  s" o

: \6 h4 _: }3 }/ t' I5 o( W; T
) e4 H, d; I- @1 y, V6.不建议使用标签序号

; j; D# H: B) |  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。& i* z, O. @! Y, |9 ?1 \1 s
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。5 ]4 [5 p4 e. w  \
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
+ q$ k9 [3 [2 Z2 A
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

% H' `' _/ q+ q& I1 v5 X1 {2 b/ L
2 J6 k; [$ ~+ R4 P6 L; m1 n* J; B/ N- l6 Z  a, R3 {* R3 m
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 2 C3 I; N/ q9 B3 p8 k
Clay666 发表于 2020-5-6 08:14
" k) g* R- }/ \; c. v% W* j我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
  _* N( y# t! l5 @& MVariant myValue = current.labels.ass ...

% b5 t) M8 J. u! ?( t: e$ g0 ^( R这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。& b, S1 ~4 q* C) j2 |. H8 r

" ^, Z; X3 L9 q* h& v: q2 _这段代码等同于:
5 o; b: S: y& q6 ^5 j! |Variant myValue=current.MyLabel?;参见我总结的第3条。
* H& O3 L+ D+ z7 E( b6 U
$ M/ D& b+ ^1 O' q$ ?- O& z新建标签并赋值直接用总结的第2条即可。
" D& [9 n( H& ^6 C6 c2 `! T$ p6 |' L" S1 u5 f' R1 E5 z
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
$ y: W" Q* V* C/ r+ k! \) jcurrent.MyLabel = 5;
) m$ N; z* N7 ?1 m6 C% N
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.

* L, r/ Q* {1 D# X
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:, R6 x! Q7 P7 C- u
Variant myValue = current.labels.assert("MyLabel").value; $ n4 B! B, z/ C( _- v6 ~) k
否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14
# g$ m1 N( j; G3 {, n" j我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:/ j& X6 C3 P6 M
Variant myValue = current.labels.ass ...
7 K& r: h7 R! H# h$ A! e
current.labels.assert("MyLabel", 0);
) v: A( X* {: B4 m! _- A或者( I% B4 a( f3 y
current.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-8-31 03:08 , Processed in 0.072020 second(s), 14 queries .

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

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