全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 6 g/ C, m& m& O+ ^" G
' Y* |) `$ N7 v9 q, ^5 ~
1.创建标签
* O% H+ ?# X" U4 j) U  不用刻意创建标签,具体原因见第二条。5 l3 Z% E5 m- ]5 P2 Y0 g: e. X( ~

3 K, A6 P# ?+ t( Z' B9 Y  x2.设置标签值( j( l9 g- H1 H0 h7 Z
  1.   object.labelname=5;
复制代码
1 U, Z1 {# Z' s! Q8 P
  如果标签名不存在,该行代码会自动先创建再赋值7 \2 l/ n) J2 L. q# D

- J$ c9 }  J/ I! d' u6 O7 r- U3.获取标签值
/ U( _/ u8 d; ~) `
  1.   return object.labelname;
复制代码

5 G& K5 m: b9 w5 V/ C: n  如果标签名不存在会报错。可以使用如下代码替代:  j, o. k4 H- J
  1.   return object.labelname?;
复制代码

2 @# @5 ]7 r+ L6 \8 X1 `& ~$ @$ X9 ^- O
4.增加标签值
/ {0 \4 w, {, Q" `& k* ^3 z
  1.   object.labelname++;
复制代码

4 Q) P4 M4 _) z  如果标签名不存在会报错。可以使用如下代码代替:, {1 B' n, V5 o' ~
  1.   object.labelname=object.labelname?+1;
复制代码

& j. i: z* T4 V" [% e
" P; T0 p% V4 [5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    : o9 C, ^7 L1 G7 p$ J
  2.   object.labels[labelname]++;
复制代码
0 Y- w9 d& L+ H0 D6 g/ ?

" W6 ~/ o: k: i6 D5 [+ T$ R/ ^
4 b  n/ H5 ~, {3 |; ^6.不建议使用标签序号
. l$ d1 |3 a' V$ E7 u
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
2 w; [! b% }/ e1 \  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。% j- D. v4 a$ Y# S- `* @
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
0 x7 N& H$ v3 a7 B" h8 ~4 Q
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
; ]( M( _/ v! C% f
( L! Z2 y8 |, H. i* Y. K
- @+ |$ E( W; g/ ]
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 4 A8 `. `- F! `$ g
Clay666 发表于 2020-5-6 08:14
2 z" I2 T, Y- Z9 |% @3 v我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
. B: ?$ [+ V3 V( u1 U6 T0 uVariant myValue = current.labels.ass ...

% d( G& |  Y8 N) }/ k7 ]这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
5 G! F; G9 u9 C) r
, r4 B# S2 e: R5 _) o7 n这段代码等同于:& A( z5 V' f$ m$ H
Variant myValue=current.MyLabel?;参见我总结的第3条。
; x/ ^2 a2 G- Z9 F2 w& I2 Y1 v: M- p5 P  B' ]9 w
新建标签并赋值直接用总结的第2条即可。. a% N3 x3 v# s" K
; B4 q0 V# a  b
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
+ j! t1 u1 p3 m2 n5 _3 Ncurrent.MyLabel = 5;1 |# u& v( [* z6 J5 D  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.
& F9 X- g) _) b$ A
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
' m. Y3 x2 P; a) tVariant myValue = current.labels.assert("MyLabel").value;
9 V+ ^$ D: H: C4 B否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14  ^( T# i9 J9 p8 _0 _8 ]2 U
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
9 _- _5 W- ?; m0 v8 DVariant myValue = current.labels.ass ...

. ~2 I5 F4 J  acurrent.labels.assert("MyLabel", 0);
" I; C( B. q* t$ ^6 A# A2 w8 Z2 D或者% ^9 {. i- p% Y
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, 2024-6-15 10:09 , Processed in 0.076023 second(s), 15 queries .

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

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