全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 + ^- ~7 q; G% A. k$ I: y+ n* H
$ R8 B% a8 k2 ~( c, V7 V4 g. m. P2 X
1.创建标签. ^" i2 ]: o4 Y8 |# g" h! r
  不用刻意创建标签,具体原因见第二条。
# d$ Q- Q2 p( Q5 ~  {* A
, [6 L' ~  l2 A$ p. R2 ]2.设置标签值
+ K- a: ^7 ?8 T# P+ S) S
  1.   object.labelname=5;
复制代码
" k& F# ~4 u& E- f. L
  如果标签名不存在,该行代码会自动先创建再赋值
1 O, P8 Y- p; m% G; P$ @% n  z. `4 D% v2 ]4 t- N  @  F7 `9 o
3.获取标签值
6 t& t6 h+ y, _/ v) R" j8 B, R
  1.   return object.labelname;
复制代码
* N' P0 s; u( ]2 [0 I( s' x
  如果标签名不存在会报错。可以使用如下代码替代:
, L5 Y) p4 w+ I3 ]6 Z6 Y/ F# Z
  1.   return object.labelname?;
复制代码
- W! U1 d+ b; r8 b

! L- B( N9 ]1 ]9 t4.增加标签值, W+ \5 S# P3 ^' I
  1.   object.labelname++;
复制代码
; \# b/ R3 g9 F$ z
  如果标签名不存在会报错。可以使用如下代码代替:
: E' r6 U9 ~1 M# m
  1.   object.labelname=object.labelname?+1;
复制代码
+ w3 Q1 _, m- k$ Q6 e

# P) m# H9 Z9 j2 q* S% {5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;2 ~7 m& ^9 }& D6 ?* S
  2.   object.labels[labelname]++;
复制代码

! K9 h4 G) k/ [( M, L; C8 c" F
' O2 K3 H* I- B& g3 z
: o/ B( H1 q) k; O1 A. h5 M6 r$ l6.不建议使用标签序号
$ _: K& n8 p  Y9 r& B
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。, l- t2 a% O2 D8 [
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
; ?, V0 ^$ ?$ r8 A. z+ \8 w" l  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:1 E1 \" A; H$ @: I7 s" \
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
1 W+ M/ i8 H" u4 U( z7 N
3 x9 }$ k9 }$ q, \2 C$ P
8 @2 N& m$ U; C% W
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
) q6 U2 a! `" E6 U  V
Clay666 发表于 2020-5-6 08:14
4 F, R7 W; z' `1 u+ j我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:" I. g& w# I9 Z# S. Y. D& A
Variant myValue = current.labels.ass ...

8 f9 {  C. b( _* {这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
% B9 @" _4 `& {* j" I/ A! x8 {! v/ y8 ?7 A7 T! A$ d7 N
这段代码等同于:
4 h; @- U3 t- U+ k6 p" @# qVariant myValue=current.MyLabel?;参见我总结的第3条。5 `& p7 ^+ W5 @: m: U3 j
8 X& f9 M; x6 R3 s# ?
新建标签并赋值直接用总结的第2条即可。- L7 M" |2 T" r

+ \% c! h. ]( V$ G/ D9 ~3 K你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。4 p1 Z1 e, H! |! U% q6 u
current.MyLabel = 5;, J  \' D0 @: K3 s
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.

3 Z" S8 y/ ~& \9 n
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:) F) @1 L) x5 R' a
Variant myValue = current.labels.assert("MyLabel").value;
+ Z% z/ Z8 k/ Q$ l% W否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:145 D2 d0 g. j: `6 n7 S
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
) L( s8 }$ o, }" @2 B4 v# f& vVariant myValue = current.labels.ass ...
  q7 b# Y) E' [9 a: W! B' n/ C
current.labels.assert("MyLabel", 0);- t1 G7 M& ~/ I0 a( z: `
或者
+ k; V% D4 E# [& a, I$ qcurrent.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-9-18 22:37 , Processed in 0.066961 second(s), 14 queries .

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

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