全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 5 G" [/ K) |8 M$ ]
4 W; E9 @+ l1 z0 l' b/ h0 n
1.创建标签
: f5 t8 [5 s( F& M  r- d  不用刻意创建标签,具体原因见第二条。$ r" V1 i$ h9 g9 m$ p# l# K
% L9 n% ]5 s8 M# Y. s6 [5 R
2.设置标签值
: V/ m6 y2 }3 n
  1.   object.labelname=5;
复制代码

/ m! i7 l6 B; Z7 F3 m0 e  如果标签名不存在,该行代码会自动先创建再赋值
9 o+ G$ h( g2 C% H3 l/ X
) Y/ ^2 S/ V/ W3.获取标签值
# c( y( Y: V0 v. c( m4 i( G
  1.   return object.labelname;
复制代码

7 ?9 z$ p: }: r; A, g  如果标签名不存在会报错。可以使用如下代码替代:
9 c  Y1 r+ n: R$ f+ b
  1.   return object.labelname?;
复制代码
+ P0 ^# D$ A3 g, I% H

! W7 O" `8 X0 a- j( k5 p8 U; x- N7 u4.增加标签值
" o' _$ u; u: ?3 L4 ?
  1.   object.labelname++;
复制代码

3 P) d0 ^; n. h. y7 c8 Y- C) z  如果标签名不存在会报错。可以使用如下代码代替:$ p$ `+ V$ \5 O
  1.   object.labelname=object.labelname?+1;
复制代码
7 p$ A: `: x1 V4 n8 w: J
" X' _: U( Z9 Y$ m
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    . b  }/ T! g* A: h9 a' {) p
  2.   object.labels[labelname]++;
复制代码
6 S/ ]& u$ n7 i4 i0 j1 z0 S1 b
) s) c8 @0 x8 Q5 ^5 p  a
" P4 l! \* \" N# p  {+ }/ v
6.不建议使用标签序号

9 Z" _$ p  T1 v0 t" ]6 a7 \  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。! i# }5 |& t5 W2 i
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。3 L) b" K, y: M& l9 K7 V9 u* H' q
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
6 P# |4 W* G6 _3 N! z2 M( W% ?
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
9 ^; {; M" M0 `8 G
& G& e# f: f# b" v$ I

' r/ E. M. p; X8 ~9 j
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
1 X* z" _1 m, k2 J0 {2 C9 n4 D5 r
Clay666 发表于 2020-5-6 08:14
9 [1 e& l1 A; Y! @/ A我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
& [' d1 R: T, x6 g3 H8 NVariant myValue = current.labels.ass ...
) H1 P! O3 k2 {4 r5 a& T" J/ {# ~
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。8 _9 w" c8 J4 H9 m5 d& @
; Y! j) J" p9 w6 P* ]# X. y
这段代码等同于:
0 N" S' |2 M+ `$ H  w, rVariant myValue=current.MyLabel?;参见我总结的第3条。
- f* D, T" A6 E# H% b7 f: U% n" S/ Z: u+ S3 V; m7 F  w" r
新建标签并赋值直接用总结的第2条即可。
1 |1 ?1 [2 f) P- K" ]
& C) r3 d0 R! F3 x4 E) Q( T你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
* c: B& W+ x* B. {  |- S! zcurrent.MyLabel = 5;
% e/ u$ S9 h  n5 O
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.
9 a% F; `9 z( I
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
- s  j% W' \3 Y! uVariant myValue = current.labels.assert("MyLabel").value;
4 h; R  h8 D" X( c( d% {6 v% X+ C: a否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14
- `  E3 i! x" X) X9 l* U$ [我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:* a  g8 Z8 C# l# ^
Variant myValue = current.labels.ass ...

* f* }" p1 x: G! y" ecurrent.labels.assert("MyLabel", 0);) k8 T$ t3 _' w4 `: o0 @
或者( g3 Q  W1 F0 ]' ?; H( o0 X
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-6-29 11:42 , Processed in 0.089981 second(s), 14 queries .

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

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