全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
; [/ B1 m. a# V5 Y- ^- O& S. y" n4 E" q, f% p, {5 L. ]
1.创建标签
+ ~4 p# d* ]- W& y! T3 e) u  不用刻意创建标签,具体原因见第二条。
3 h# m- u! S* |/ e4 L" S
: J  Q: s$ }1 V+ z2 d2.设置标签值# h% k0 y9 x5 j7 ]
  1.   object.labelname=5;
复制代码
+ ?' Z' ?0 b* s
  如果标签名不存在,该行代码会自动先创建再赋值( O7 I0 w4 {4 G7 G7 G9 E; ]+ g8 [/ R
0 x# N) i  A8 V$ l
3.获取标签值
* D' ^3 q9 D* y1 U$ O; Y5 a# ^
  1.   return object.labelname;
复制代码
! k1 ~. z: i7 l' M  |& k
  如果标签名不存在会报错。可以使用如下代码替代:* R3 v- @# \; t& I+ ]- q9 G
  1.   return object.labelname?;
复制代码
+ J! _2 d) a# d0 g! o  ^' g9 ~
1 S$ D5 {# s- P$ F" I( D
4.增加标签值; E  o- p* i! u7 V. B( d4 Q
  1.   object.labelname++;
复制代码

9 A0 _; a2 M; b- V$ T  如果标签名不存在会报错。可以使用如下代码代替:
/ D% n3 x: m- \5 J, s
  1.   object.labelname=object.labelname?+1;
复制代码

" c5 q0 I( W: T$ d# B1 k/ B, w8 a; ?) w" D- W- J0 z. |# j
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    5 P/ r2 X8 z8 ^0 Z" J( G/ s' `
  2.   object.labels[labelname]++;
复制代码
4 B% p! n5 l) C0 C$ U
  S& q6 l- E2 q/ t9 J2 X
8 Y) M- J! L. j
6.不建议使用标签序号
; T& H9 h) w; M8 p$ {* J; B' x
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
. P9 A/ J& W( A1 k  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
7 j) }6 x" h+ B+ f  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
! R1 U8 x# J; q! E6 H& u& Q' v0 G
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

( i+ r' o) D, k2 F$ ?! m" V1 n
6 v% M& E  ?" v5 j$ b3 z8 r0 X' G- S0 _2 Z- T& G1 C8 s2 G
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 $ F$ Z( y2 D  c; @" V2 e2 u3 O1 }7 L
Clay666 发表于 2020-5-6 08:144 k- X7 q; _' X: B7 [
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:+ O8 V. o  M' O& F' N" ?
Variant myValue = current.labels.ass ...

9 Q- {; D4 q6 \' I  M+ ^2 L: I这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。2 ~. ?' c! A- f  ?
1 h2 C' ^7 j* r& L
这段代码等同于:8 `9 y7 v5 E  Y: J) Z6 `* I
Variant myValue=current.MyLabel?;参见我总结的第3条。
# _4 I9 r" W! S! |  v+ r7 ?, r" C( i
新建标签并赋值直接用总结的第2条即可。
- S! A5 _# }5 `: T+ O, B5 b* N* r( _2 j5 ^
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
0 i+ a9 L, @% Ecurrent.MyLabel = 5;
- `9 c* l' A1 z5 N0 G; z; ]
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.
, m2 Y" P- }) P9 S* n, _; u# G& e
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
7 H. t. u, T" |7 T2 RVariant myValue = current.labels.assert("MyLabel").value;
; n( N$ W( M7 \  Y; X: H否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14  F6 U2 a8 J9 \3 ?
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:$ o: O! `( A. [0 p! T
Variant myValue = current.labels.ass ...

  r9 ?/ b% o' W- K$ t% A" |current.labels.assert("MyLabel", 0);4 h$ y5 U* g$ Y* L
或者' j( i" [+ [: r, B- f0 J, h2 {. ~) H
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-28 09:18 , Processed in 0.092754 second(s), 14 queries .

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

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