全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 ( _9 F; ?% A0 u' `% |$ ]/ R, a
+ J- o+ L5 @! M2 O' ~: y( K
1.创建标签
: R( c  P" {( K  不用刻意创建标签,具体原因见第二条。; g- t' q8 w1 R2 Y/ t1 P

5 a: Y6 G0 @7 o# q& Q2.设置标签值
8 \4 q* r3 c) x5 g) k" W4 m1 y! l
  1.   object.labelname=5;
复制代码

3 d; M7 Z" T( ~. B+ ^! C  如果标签名不存在,该行代码会自动先创建再赋值% x% s6 Z: J3 U  B: `( V& o. n

1 m7 }0 F& m: O7 c! w3.获取标签值
5 G0 S% _& G3 K$ z+ ~" Y
  1.   return object.labelname;
复制代码

) d% q+ {5 I1 }/ \  如果标签名不存在会报错。可以使用如下代码替代:
# q: Y+ B/ H+ e2 q5 h, \6 K7 z; r
  1.   return object.labelname?;
复制代码
4 J3 a" d: L; u3 i0 l- k$ }
; ?% ^$ D- {# X
4.增加标签值
" T, F" n' n# m3 w. V. |2 `$ H
  1.   object.labelname++;
复制代码

. Z/ D% x, E9 G# N  如果标签名不存在会报错。可以使用如下代码代替:" p$ g1 E- ^  |9 `$ O3 p4 V
  1.   object.labelname=object.labelname?+1;
复制代码
* J5 h4 Z( ~7 ?! p1 T  x% I% ^

7 K& ?3 f/ v) K/ ^/ R7 X5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;8 @& v% s, F, t: i
  2.   object.labels[labelname]++;
复制代码
# `7 r/ F: \8 h: X$ g# t: n
& I; D1 G; N1 O: b7 J: w; [

* O9 F/ o8 ?( J8 s; `6.不建议使用标签序号

+ k* H- U( K0 [4 [4 O( S  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。3 @1 H5 d* }3 A* {4 Z
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
9 b% B2 f% d& p2 C% r  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
) \9 }0 v2 `$ R
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

, e5 t; s4 r/ ?8 g, o5 F
. M$ i: C" S! a; C" {" e5 p$ O4 a) [7 w, B2 w* b
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
8 G( K+ [3 c4 |0 r
Clay666 发表于 2020-5-6 08:14
$ K# c; f6 J+ R我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
( d+ d4 k+ y" ?0 UVariant myValue = current.labels.ass ...
# B  H7 L$ j& `  O: i
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。2 x/ i( I( }% ^# y
; z+ Z7 V5 I# k( |) v6 J
这段代码等同于:
0 Y& p1 k4 L* t5 Y6 E2 D! YVariant myValue=current.MyLabel?;参见我总结的第3条。  H9 r' P, ?. @# N  x/ v
/ `: N) h5 U$ S! Q. V# m. V* H5 s
新建标签并赋值直接用总结的第2条即可。# x) \; A! H; P! Z
4 V1 Z: W  r3 _; f2 ?, n
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。! E7 ^7 d" F0 S+ ?
current.MyLabel = 5;
+ I9 w  y- Y0 ?/ [5 E
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.
1 v  E2 N  L3 j7 T) J3 k) `7 C
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
( _7 x; R# W, w% T$ {Variant myValue = current.labels.assert("MyLabel").value;
& _" ?6 o2 N+ i0 h. C% ^否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14
+ c  i4 }+ Z* B" r" V我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:9 l6 O( V$ v9 N- K9 v# v
Variant myValue = current.labels.ass ...
* ^9 G; D6 v( d6 L4 s% s
current.labels.assert("MyLabel", 0);: B5 l; ^: A* O9 E" b3 A) v
或者
5 V" b1 F& B! z! ccurrent.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:06 , Processed in 0.093283 second(s), 14 queries .

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

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