全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑 6 }5 x- `; w5 _+ |
: Y7 m2 \% X% i* f  y
1.创建标签8 ^9 G  h; `0 k' T
  不用刻意创建标签,具体原因见第二条。) |( {) k* X+ u6 j+ ~# s

+ v0 R* c/ l( B# d% X& R7 _2.设置标签值
0 r3 c0 J7 t1 L
  1.   object.labelname=5;
复制代码

7 q' a1 V! U1 ?/ Z( ~5 i  }  如果标签名不存在,该行代码会自动先创建再赋值
1 l; d+ m* S8 j6 m. Q
0 A- i. W2 Y' X9 k. g' l' O3.获取标签值8 e& @' @" F2 s$ D# G4 n/ [
  1.   return object.labelname;
复制代码
2 ]1 v0 u( {, F% u
  如果标签名不存在会报错。可以使用如下代码替代:
% c* |* b) J, k
  1.   return object.labelname?;
复制代码
4 Z8 T! J% H6 d! G$ ~: ]% H

: y$ y) P2 G% h4 \/ ?4.增加标签值
1 c( [+ T9 R. b2 |* @7 P+ S
  1.   object.labelname++;
复制代码

3 G# E* r) P5 u7 K  w; E5 n8 D- x  如果标签名不存在会报错。可以使用如下代码代替:  N6 J7 [  P0 O9 i( W) z
  1.   object.labelname=object.labelname?+1;
复制代码

* t! Z' }+ v1 F- U0 P, ?1 f* V1 r( ?1 `) ?+ i
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;0 }% F/ ~( }* j' A
  2.   object.labels[labelname]++;
复制代码
# P0 h) |3 ~% \: f0 F

$ k! Y& c; G4 g2 E* Q
; P' e. O$ }1 u) A: [2 c' @6.不建议使用标签序号
. \( p9 P& ]& b9 ]0 p( v7 Z/ x: k" p
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。! I5 y8 ^6 w+ `; R$ E
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。- E) u8 C3 S& q& S/ L) f" Z! a. j
  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
0 z0 t0 {$ f9 G" t( j7 V4 q
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
: _! X9 f( ^& }

. {% @  F9 S" d3 V0 v. ^8 z, _# q- ~" [3 p; K+ h5 a
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 $ p! T& q3 M' l, I( o* u0 f
Clay666 发表于 2020-5-6 08:14
6 C& j9 V4 F8 Q3 z我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:, e* Y- Z$ U1 e3 w/ z
Variant myValue = current.labels.ass ...

1 K" [" x& e0 X$ w  X4 J这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。
5 Z# C5 v' t  g* n
0 }6 O* O7 h  E% q, R* r0 v0 c, V这段代码等同于:* n3 ~5 v/ b- m# G
Variant myValue=current.MyLabel?;参见我总结的第3条。
% b# T$ s3 r0 l0 p& l! h4 [$ N! T( ~
! y  ~8 B! v! e/ \4 a. b新建标签并赋值直接用总结的第2条即可。+ X2 L+ G2 ?& s( X- s3 }* H; U
4 W5 x9 `' y5 p$ I: i: ^3 m$ z
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。  d* m/ }4 X: W4 I8 H; N7 h+ J2 b
current.MyLabel = 5;9 O% R* O/ G" q0 B
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.
! w! v- g0 A) ~0 z+ M' x
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:3 ?8 d" y2 @6 D/ ], W- g
Variant myValue = current.labels.assert("MyLabel").value;
+ P4 [. J6 R& R+ s. \% X. [$ g) g否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14) X! ?. M; ^  O8 C: o, @( c: v. u8 w
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:* ?- R, {* [) Q5 h4 J& c6 K* u0 S
Variant myValue = current.labels.ass ...
& A5 V, \" ~. h4 N9 w& k& F! x
current.labels.assert("MyLabel", 0);: y3 q! F. T* E+ E$ ?
或者* P: q$ K) c/ U9 j0 B3 K) \
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-6-28 07:03 , Processed in 0.078104 second(s), 15 queries .

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

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