全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 $ `/ G, v; P+ ]8 J- D3 p
8 }$ Z5 L( @- I2 ]
1.创建标签& K  @. n, W/ v$ O# W  B
  不用刻意创建标签,具体原因见第二条。
7 B$ P$ L+ M, l% u
7 s. c$ E5 ]) f7 H) o7 v7 m2.设置标签值4 c, A- \5 H+ x1 T
  1.   object.labelname=5;
复制代码

% B& W3 B) X7 N  如果标签名不存在,该行代码会自动先创建再赋值3 Q! C' i5 `9 D7 L

1 s% z8 K( e: b6 `+ e8 y& \) E3.获取标签值
* e7 d5 E) m# i3 q2 a0 O
  1.   return object.labelname;
复制代码
/ D) ~# J2 C  x$ s$ A
  如果标签名不存在会报错。可以使用如下代码替代:. f3 r; `. h+ m
  1.   return object.labelname?;
复制代码
) E: i1 c- z& }' q  g

3 u8 p2 b$ P# r( I8 W! j4.增加标签值
- a7 n: C& O5 p# s9 Y+ I
  1.   object.labelname++;
复制代码
) I% q% ~  X" [9 ~& h. F8 E
  如果标签名不存在会报错。可以使用如下代码代替:9 V! G1 U9 p/ w# S3 E) ^$ ?
  1.   object.labelname=object.labelname?+1;
复制代码
4 _2 R- ~8 `- `8 ]9 ]& c& Z+ m
: L2 w7 K! z* n9 A0 Y  v: i
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    % J# m6 F& _& M4 b- S
  2.   object.labels[labelname]++;
复制代码

- Q6 z7 C" N$ V% y) y3 \
. I$ C( w+ }8 ]4 h  m/ W, h: Q9 q  Y; r
6.不建议使用标签序号
' k% q1 R+ N) g" v9 ]5 b+ L, o
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
* {1 W+ S6 y6 b! @" P3 e  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
- @. D5 r! E, ~- A0 {  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:6 m5 t) F3 R& [4 i
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

* M3 s5 I3 k4 ]: c& G  o( h$ w! G  F& x4 b- A6 l; L
/ V- B& L# L) X% b
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
0 y' Z, K" M8 D; F4 C
Clay666 发表于 2020-5-6 08:14
- m, j9 j3 Z2 S6 l/ K# {我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
* G& U- U6 |7 TVariant myValue = current.labels.ass ...

# W8 Q  \. s! Y; B$ q  M2 j: s0 [这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。( U! g" ]* j1 ^8 o3 m  e

5 I, H3 {. t0 ]" F这段代码等同于:
$ ~7 [7 Q  _8 q4 P9 FVariant myValue=current.MyLabel?;参见我总结的第3条。, D! v/ h; O% a8 k+ H2 V) L

' |9 Y9 g1 e& y5 X9 B( t" q6 ]/ X新建标签并赋值直接用总结的第2条即可。" ?2 a: r- n' r
: n7 l) f1 w. m6 u5 V6 g
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
% W  x5 c* v! x7 g/ S& P3 q0 w) ~current.MyLabel = 5;
) h0 q- [% ^( C  {1 Q. Z( N
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 A0 B; c; W. _/ T; f$ n
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:4 e3 S1 c3 X9 m0 s
Variant myValue = current.labels.assert("MyLabel").value;
' |" _5 }$ I. n; c' D否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14( g* U# L9 M% T7 N
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:! n, B% b; z. T9 y  g
Variant myValue = current.labels.ass ...
1 ~- b& {' y0 `0 g# |) w3 h. n1 h; S
current.labels.assert("MyLabel", 0);! U$ Z' m) b3 \2 a: ?- T* A
或者
8 q, H- |6 {+ P9 Q& e7 \5 A; Xcurrent.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-5-21 22:50 , Processed in 0.086601 second(s), 14 queries .

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

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