全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
4 m$ w- R8 a" W% A; M* @- N0 K( V8 G6 L& `7 Y4 B( g
1.创建标签
7 Y; G; f. @+ a9 {) Z+ X  不用刻意创建标签,具体原因见第二条。5 `" Y  }+ K& v: B: H9 ~
. l+ Y6 w% Y% A( ^2 E$ B0 M+ F
2.设置标签值# f! C, I! q, W& }
  1.   object.labelname=5;
复制代码
  B# P- N+ J9 h9 ^- A2 S+ O
  如果标签名不存在,该行代码会自动先创建再赋值
7 A" g7 u* a% @5 R  ^0 c/ v/ K/ i& P8 s' a
3.获取标签值
; ?6 F# ]# i( L: [
  1.   return object.labelname;
复制代码
+ o2 i* q& w, R9 u
  如果标签名不存在会报错。可以使用如下代码替代:* o5 c! }2 h; H9 v
  1.   return object.labelname?;
复制代码
) o/ s+ T3 i* L3 |' D4 Y- Y
" x; p# }9 m( Z7 \2 M1 d* v/ g) U
4.增加标签值) X& S- c9 B! w; ^" C4 o% M
  1.   object.labelname++;
复制代码
3 [; X8 F. \) h" h  e9 \
  如果标签名不存在会报错。可以使用如下代码代替:
0 X3 H1 h: y3 p8 h  ]# t
  1.   object.labelname=object.labelname?+1;
复制代码

! W5 m3 e% g; h; e2 y; u, I! [3 N" o
+ b! ?; g; m6 S  W& ]5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    9 [3 r6 U) S; A6 W0 l
  2.   object.labels[labelname]++;
复制代码

( z- ~; ?& y2 |2 |
0 ?$ b0 S0 J$ J- U7 A
" V& R9 j4 P7 t  N& R6.不建议使用标签序号

1 s# R; J1 `( U- e0 `+ w9 a  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。! @: ~6 K. _( g9 U
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。2 b1 ~9 b+ @& [, R6 i8 ?! h; r1 v  d
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:: P# I/ Z. c0 M
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
: O. U6 e/ Z# h1 [: s  y2 \* C

# ?8 g5 C8 q- ?  n9 \# x8 u' L! D8 A9 J* [* V
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 $ a: e) N- A3 [3 b
Clay666 发表于 2020-5-6 08:14
7 Z$ z6 y/ I- G2 K, r1 ~0 ~我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:7 i) F6 s6 c9 Z( w0 g
Variant myValue = current.labels.ass ...
! i* l( M9 B& i& l4 }5 W. H
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
; i( v$ s& K/ o: a% r0 E$ P6 b" O! a$ y
这段代码等同于:
, D/ O7 r* ~0 k; J! rVariant myValue=current.MyLabel?;参见我总结的第3条。6 m5 M# V# R; g0 m

2 b: j" G9 e# I0 p$ @5 `( \新建标签并赋值直接用总结的第2条即可。6 h9 W9 @2 v. N9 @  ~4 I0 f

7 e9 i" ?3 ~+ L- n) h9 Z8 k你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
1 j! T  Z! I* z1 ]& D4 xcurrent.MyLabel = 5;
* F) S- b+ R1 z  d8 I3 o6 s7 N; w
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.
0 o' i+ o& m7 d  n
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:/ u3 H$ {' d$ h
Variant myValue = current.labels.assert("MyLabel").value;
. `! y/ C) |) r+ d( T5 C' G否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14
3 v& h/ ?) g4 g) h2 `8 d我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
5 M2 _" v2 b8 ~# {Variant myValue = current.labels.ass ...
2 C3 X6 H& G! S) D6 I
current.labels.assert("MyLabel", 0);7 N& M- p0 k0 Y
或者
7 H) \) r9 d/ gcurrent.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-7-1 04:31 , Processed in 0.071670 second(s), 14 queries .

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

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