全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑
2 o8 ?, V- R7 Q3 e
* [  g% M, A$ F# k1.创建标签2 a' ?7 S  Y  X* Y* y
  不用刻意创建标签,具体原因见第二条。
( N6 p4 K/ ]9 x5 @7 [5 ]8 J0 w  Q! }8 v/ @
2.设置标签值% Z/ c: c$ Z" h5 ?5 b0 p
  1.   object.labelname=5;
复制代码

/ Z4 C4 ?$ k: f  如果标签名不存在,该行代码会自动先创建再赋值: X) o; t1 K) p( D1 W) T% p

( ~. ?% S* j( i# H0 v, Y& ~6 U" J" h3.获取标签值
: y) l8 w7 p' P; j$ q& F
  1.   return object.labelname;
复制代码
* F8 }6 n. g- R/ E, T
  如果标签名不存在会报错。可以使用如下代码替代:
$ ~7 @  D6 M+ w( w7 H! y" R) m
  1.   return object.labelname?;
复制代码
+ i7 @: ]* l: H' c* F

8 J% v8 t' N6 V, g2 D$ \1 g( o0 l! k4.增加标签值
# G9 W: w( i, [& C
  1.   object.labelname++;
复制代码

* x: G" R+ i- ~" o9 e( [. U  如果标签名不存在会报错。可以使用如下代码代替:2 m" e6 G- Y+ K& F& A  s- X
  1.   object.labelname=object.labelname?+1;
复制代码

( A+ a' o, D' L7 z' ?: o1 p1 a/ L4 K" r- o/ T, q
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;5 q+ d, z7 |4 g% p
  2.   object.labels[labelname]++;
复制代码
( R" |  [" L# W" O: L

4 G2 l! u6 w$ P, [
. z4 [! [$ R. f6.不建议使用标签序号
* W9 U0 [& W, m( I
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。& I% n% G" Z6 W, B
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
; E8 r/ w: `+ {! W8 f. i' m4 u" r2 {  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:, q0 ^5 G9 f% ]
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码

" I) }3 o/ W' ]1 d6 @# H5 J& Z
' b% `5 d' S4 [- f8 J/ N' ]1 W; ?$ _; `( a6 g& F+ z
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑
1 g+ R# J; ~* d0 i# [
Clay666 发表于 2020-5-6 08:14# T- U: B5 }6 R2 l" Y- p/ W# `7 j
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:
4 v1 @6 j$ \; T6 K% EVariant myValue = current.labels.ass ...

" @8 m* f6 J& z4 X; V" Z8 U7 J这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。# c8 s  g' T% P6 e: w
5 c  R* D+ T1 g8 i- E) e
这段代码等同于:
% L* \/ f- e+ [$ C9 o3 K( ~2 R5 u3 \$ Q- [Variant myValue=current.MyLabel?;参见我总结的第3条。
- C6 G* {6 z; J6 v% |  K  \! I( b% @. q+ m
新建标签并赋值直接用总结的第2条即可。. R" p0 }) l* }

( t/ S* W/ }3 X1 t9 i你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。+ r" N  v8 _% G' \, C
current.MyLabel = 5;0 O. l- c; o7 ~8 R- i
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.
& d3 M. X2 g' c0 }1 _' R" T9 l
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:- f: |9 w" p0 {
Variant myValue = current.labels.assert("MyLabel").value;
2 J+ j1 B# c6 D+ H6 P否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14  i3 C% D9 ?4 u/ y0 h& @
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:/ \" J+ |$ O3 b& Y
Variant myValue = current.labels.ass ...

5 G! ^" i7 b2 d3 Bcurrent.labels.assert("MyLabel", 0);2 C& E! ]0 I! M; {; }, ^
或者
' k. ?5 ?$ v' h- h" _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-1 18:50 , Processed in 0.085764 second(s), 14 queries .

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

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