全球FlexSim系统仿真中文论坛

标题: 标签使用小结(基于Flexsim2020) [打印本页]

作者: zorsite    时间: 2020-4-30 10:58
标题: 标签使用小结(基于Flexsim2020)
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
* ~' j9 q8 b0 Z, O: @' b$ D, d: ?
) L  C( P9 i$ o- q- {1.创建标签
1 l- _4 h: G' e  不用刻意创建标签,具体原因见第二条。
. u5 A0 ~5 i# R3 P9 I; G- \) g$ n" }+ \' N
2.设置标签值: w% x* b' J2 H6 p* l
  1.   object.labelname=5;
复制代码

' v% z2 I$ {: }/ l5 n5 u* A  如果标签名不存在,该行代码会自动先创建再赋值, R( r% k8 c/ Z; T5 q. a) V. o

" H' `4 C  F* v* p3.获取标签值
$ p$ F+ y- X3 R5 ]; q
  1.   return object.labelname;
复制代码

% m9 U: t$ @3 v$ u$ O  如果标签名不存在会报错。可以使用如下代码替代:/ B: n) ?4 f5 d- S
  1.   return object.labelname?;
复制代码
$ }7 ~# S/ S9 p% [: Z- q

5 g8 M! N0 C: {- w6 q% V) c% s4.增加标签值) W, K  ]# K5 y! |4 k% X; U# r
  1.   object.labelname++;
复制代码
/ q7 S# i1 v1 }8 Y3 K. ^+ J4 m
  如果标签名不存在会报错。可以使用如下代码代替:7 o0 P* N  g% C) ~/ @: O# B
  1.   object.labelname=object.labelname?+1;
复制代码

- K& R7 b5 N5 `  Q  K/ f$ k4 }  c/ }, l3 O' ], h
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    ! V6 E7 ~% A5 h0 m0 l9 L
  2.   object.labels[labelname]++;
复制代码
8 x  s! X+ c* S/ v$ g$ L$ \9 N2 H

9 Q) t; _; w' r  D# _  G* L3 }6 `4 T/ V+ P2 m! e
6.不建议使用标签序号
9 j/ n) X2 O# x2 ]( d( {. E
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。
6 H8 S7 d, W  _  m4 f: \8 R* @  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
! [, A- ]% X7 c! V" Q  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:9 z0 F4 x( q+ g# u) T+ L
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

* y/ @! @8 C+ I  J- o8 z" h( ]1 A, o; b) z9 {
7 E8 Y7 E- f- `; b" z3 g

作者: 小王子波    时间: 2020-4-30 13:45

作者: Clay666    时间: 2020-5-6 08:14
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:% G+ C7 c9 G( p7 z, v0 O( ?- |+ t7 Z9 u& Z
Variant myValue = current.labels.assert("MyLabel").value; ) [( M; u' {; y9 ~
否则会报错该label不存在。
作者: 小王子波    时间: 2020-5-6 09:00
Clay666 发表于 2020-5-6 08:14. _' e; s' n$ }) z
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:- I1 q$ e5 \4 i& f- t
Variant myValue = current.labels.ass ...

$ U; I8 d6 B% ?- jcurrent.labels.assert("MyLabel", 0);1 S- f4 l4 ~% ?% Z- Z
或者" E4 E' D" [* l
current.labels.assert("MyLabel").value = 0;
作者: wangchangping    时间: 2020-5-6 12:21
感谢楼主分享
作者: zjj0605    时间: 2020-5-7 17:46
感谢大神分享
作者: zorsite    时间: 2020-5-10 11:30
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
! t7 u6 X; @9 p2 O
Clay666 发表于 2020-5-6 08:14
) A3 n  R8 H9 q( a; M我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:- C' t3 P) y/ [$ k6 d
Variant myValue = current.labels.ass ...

% c6 t% d' f: p! N6 X9 J# u* L' s这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。/ L! R, c2 G$ c" p9 n
* F# _" e4 @( E" S9 f% {
这段代码等同于:
. G0 J* Y( |- c( X& D2 ^Variant myValue=current.MyLabel?;参见我总结的第3条。
! G! O9 N9 I1 N' V5 l1 l
1 h7 O" P  ]9 n. e" r  j) K新建标签并赋值直接用总结的第2条即可。
( o; W, J/ F6 _! s/ V/ E
2 B6 T; P  ^( Y0 I; l" c你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。9 i$ v- I7 t4 |; h+ p; ]* n
current.MyLabel = 5;
$ F+ n7 w. S' x- ~
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.
: A. [0 I9 ?8 r3 x5 U+ Z2 e% A

作者: ABoY    时间: 2020-10-16 14:07
感谢分享7 U0 C* p+ [" p0 T# |

作者: ABoY    时间: 2020-10-23 16:52
学习学习
作者: Fx大风吹    时间: 2020-10-24 13:39





欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3