全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 : b8 g. q( B5 z$ ]
9 x6 h1 G8 ~8 y3 t/ U7 ]3 w
1.创建标签
+ e& v2 Y: F* H  不用刻意创建标签,具体原因见第二条。
8 h, b2 X  B  f) w7 P( [+ z( m0 L: c8 i1 ?) \
2.设置标签值( a: H+ @9 s0 X5 H- z
  1.   object.labelname=5;
复制代码
; u* e; q- _+ f; J; A) P/ J7 s2 G
  如果标签名不存在,该行代码会自动先创建再赋值
/ n- y$ `3 \; e6 ~
9 }0 o0 I  g* c& r& R- {& ^% D3.获取标签值# g# a2 {, {$ k* B
  1.   return object.labelname;
复制代码
0 `8 A2 }6 f! ]
  如果标签名不存在会报错。可以使用如下代码替代:0 H: q* i2 ]- v) S3 ^- J6 T1 e( Q1 l
  1.   return object.labelname?;
复制代码

3 p( T) z; F3 g+ V8 R# W9 R
+ ]" g% `0 n) P2 G/ o4.增加标签值' K6 w# h' S! [
  1.   object.labelname++;
复制代码
4 j: e8 a  ~. Q3 d! ?4 B: Y+ v
  如果标签名不存在会报错。可以使用如下代码代替:- E$ K4 F- I* p( t" a0 |& a
  1.   object.labelname=object.labelname?+1;
复制代码

4 u' v$ s& D* h2 J. _5 [; S9 N, C" J- G4 F" z
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;' S: E/ c7 ~: t: D  n- l
  2.   object.labels[labelname]++;
复制代码

5 a3 X5 F) C" r/ ?% U
& z% o6 e  B- V$ g) d, B7 ?& G- S1 r. Q1 Z! X$ k9 [% V) J, O# N3 t: G! a
6.不建议使用标签序号
; p8 Q4 v7 X2 u9 M# I$ A, I) {' m
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
* l! c  d; O* g2 ]  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。: o, f/ H/ j7 ?  ^* Y# q+ N; F
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:+ [) C0 k# l! Q
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

7 Q7 t$ ]- I( r  G- B% w( a
8 N: C1 S, ]! o+ r, g& J
/ z! q- p* d# g7 n! e$ U
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
0 T$ v! @/ ~$ s$ c5 t
Clay666 发表于 2020-5-6 08:14
3 n! `0 b) ~3 ]" O5 a我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
: m# T# f' e2 Q7 G( ?8 GVariant myValue = current.labels.ass ...
; ~+ P2 I4 U' ]' P
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
8 j( k0 Z" H7 H! I  f' v8 D
7 o6 {  W9 m, r; e- L这段代码等同于:
" z$ |# H0 l! Q; Y3 t# c# k4 hVariant myValue=current.MyLabel?;参见我总结的第3条。
1 ]6 x( G( |! o4 Z: P  P2 D; V. G6 o$ x; `$ Q  m- t
新建标签并赋值直接用总结的第2条即可。
! }1 L2 @. G" s% x; e8 Q3 F
( a4 b# V5 l3 S0 l: _. @+ N2 i$ t你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。+ T) r0 R" @+ J9 ?/ }; F6 E& l
current.MyLabel = 5;! w* w- V" c* U- ]
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.
8 ^. z1 `. L1 E; F
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:% z" Q" H( k' ?$ P+ D
Variant myValue = current.labels.assert("MyLabel").value; ' ~" Z1 q0 C. ^- K- h' t. k
否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:144 a( b' c6 n8 `" k7 ~' N
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
, ^3 q7 P2 r  R' YVariant myValue = current.labels.ass ...
! l+ Y% B. v: d
current.labels.assert("MyLabel", 0);7 f" A1 j6 a- v/ c4 y+ [! `
或者( `& d$ p! W& @  U: B0 Y' 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-28 11:26 , Processed in 0.069331 second(s), 14 queries .

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

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