全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
7 J5 Y# \6 m- u, \; V2 c9 }' X) ~! V3 |8 D$ _
1.创建标签
& `2 O7 i: [6 w; X3 K  不用刻意创建标签,具体原因见第二条。
8 v- m3 K2 M3 d+ b1 Y5 c# }
8 I% x8 J! U# r, `* O2.设置标签值
- Q( M$ b. E7 ]. P1 `
  1.   object.labelname=5;
复制代码

& g# q2 a  W+ O- s) f% p1 ^( Y  如果标签名不存在,该行代码会自动先创建再赋值
, J; A  L' I% O5 i+ Z+ N: ~3 w
+ C7 F( h0 A% J* N3.获取标签值! H: a6 ^) F) X) y" ?0 p; n& E
  1.   return object.labelname;
复制代码
# A5 E5 J. B3 K# B- }3 A
  如果标签名不存在会报错。可以使用如下代码替代:6 Q* `/ \! j* Q1 @$ h8 Q
  1.   return object.labelname?;
复制代码
! ^3 l4 u, _. y5 x8 ?& h6 r

" I9 a7 W$ Q7 U0 `1 {4.增加标签值
& _6 Q! s/ h8 x. J& z0 @9 Z
  1.   object.labelname++;
复制代码
- F" C6 K4 D0 e* C9 [( o6 ^/ x4 a
  如果标签名不存在会报错。可以使用如下代码代替:& h6 a. b- [, V  g9 G
  1.   object.labelname=object.labelname?+1;
复制代码
- q; ]  z- R- H: Q* S# `' K; G

6 a5 \, j% t6 ]# R5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    - M6 r* V) g8 Q8 O& h3 }! ^1 ~; h; p
  2.   object.labels[labelname]++;
复制代码
) V1 F8 t- U1 s# L- |. N; c; w* j
, u6 O4 {6 K7 C( d5 Z. h
# i5 I! y: Y' Q9 p* i8 g$ l& l+ @' |
6.不建议使用标签序号
. J1 g1 F, ^8 y4 f) F* P
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
( i+ ~. I6 E/ U; p5 T8 H. G9 w9 J  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
% T2 l% \% {8 g, M9 a& @! s! t  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:3 U5 ?+ U" ?$ s2 p! O0 q
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

1 s1 n: k$ G/ M5 W2 D% p3 k) y7 t  M3 r$ ?+ x- h0 X
4 N2 z5 `; w! }. W, A
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 4 K( P$ L- K( e& r2 K7 n$ x: k
Clay666 发表于 2020-5-6 08:14# A7 H# }& V3 n; a* {
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
' J( }! f  P. vVariant myValue = current.labels.ass ...

; i+ P# q8 {. z& v7 a/ b这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。! ]% p2 B5 P3 }& W$ f/ I
6 \8 b# i2 C3 Z# p5 g+ C+ U! J
这段代码等同于:' Z( s5 m& n! r) C! C- }# j8 m
Variant myValue=current.MyLabel?;参见我总结的第3条。. Z  b" Z% r; c- i4 [3 k9 A
8 A! K; C2 h9 p+ t
新建标签并赋值直接用总结的第2条即可。( _# r8 r4 p1 r2 g6 O' X

8 e1 P( k9 n/ c: r6 K你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。( Z1 X* L7 J  n0 j: p
current.MyLabel = 5;
% U. I  d! @4 X3 d8 J
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.

% s6 a% q: i  p# ?" `. [
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
& a! h* |( o8 b% M% q, R" \  {Variant myValue = current.labels.assert("MyLabel").value;
0 K; I1 D: E& n: k否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14- P4 C) w/ i) t9 C$ L: }
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:: W1 D: u2 z4 B6 m( _
Variant myValue = current.labels.ass ...

  C2 K2 ?7 m" Ncurrent.labels.assert("MyLabel", 0);
2 h& A2 l/ {5 `# o" \或者
4 Q! e9 I/ y5 K: B, e! @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, 2025-9-2 00:06 , Processed in 0.066040 second(s), 14 queries .

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

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