全球FlexSim系统仿真中文论坛

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

标签使用小结(基于Flexsim2020)

[复制链接]
跳转到指定楼层
1#
zorsite 发表于 2020-4-30 10:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zorsite 于 2020-4-30 11:00 编辑   P8 ~2 M8 W; V8 z* `! S. U0 `* j8 E3 v

% Q1 v/ F! l4 X& [( M) \, N; ~3 s' V2 c1.创建标签0 i1 w0 u, R# s/ I$ ~
  不用刻意创建标签,具体原因见第二条。/ l0 p, h1 W/ A# z: b; p- R# u
3 u2 s6 x, W, @- I  D
2.设置标签值
  M3 f: l+ }0 [, H& D3 S; l
  1.   object.labelname=5;
复制代码

6 |  m- f( t5 d3 ?8 V( ?  如果标签名不存在,该行代码会自动先创建再赋值1 u, u& w* C+ ~+ R
( k' C7 N; X0 A& D( N1 _: B& h
3.获取标签值1 B8 p8 x) o0 ]$ i' l% g
  1.   return object.labelname;
复制代码
" ]7 E+ T2 b$ b2 d2 i
  如果标签名不存在会报错。可以使用如下代码替代:+ |1 n9 X* j5 o9 K2 R( J
  1.   return object.labelname?;
复制代码

$ R) O/ t8 b9 W( s, h9 F2 r! J: R
8 k* z/ u5 [! u) H" d4.增加标签值9 X0 F% g6 ]6 R3 E& J& l. u- i5 O
  1.   object.labelname++;
复制代码
( E2 C6 c- n! @5 T: _: s
  如果标签名不存在会报错。可以使用如下代码代替:6 j8 _, s" |2 v6 }& k4 C! m
  1.   object.labelname=object.labelname?+1;
复制代码

( x+ h8 n0 h' A8 c% H3 _$ }6 |" G: Y# k: F5 i  M' W5 c- y% o. [, [% T
5.如果标签名为变量,可使用treenode的labels属性
  1.   string labelname="item"+type;
    $ a) g: u& T4 B6 T; ~4 i
  2.   object.labels[labelname]++;
复制代码

6 p. K* }4 l# y# ?" _* e+ m: A$ G9 ]! N4 i
( U6 @/ E$ k* {" O* F
6.不建议使用标签序号
- C: |2 H9 o) W
  老用户可能还记得一些标签命令可以使用序号来引用标签。但是新版本放弃了这种做法。7 L: L- ^8 Q& z
  使用序号引用标签会增加代码阅读难度,使用名字更容易阅读和理解。
* \; W1 W! `0 j0 C% x! z  如果一定要用序号的话,除了使用已经废弃的setlabel、getlabel等命令外,还可以使用新版点语法:
8 [9 P$ \$ c% L/ X' @2 T0 i
  1.   object.attrs.labels.subnodes[1].value = 2;
复制代码
* a! Q8 o, t8 U& h% ?1 z; B  T" r
% Z) H3 S( O2 a+ W1 i$ D
* e( a- V, a+ H# S$ l3 [3 V
推荐
 楼主| zorsite 发表于 2020-5-10 11:30:13 | 只看该作者
本帖最后由 zorsite 于 2020-5-12 17:08 编辑 ) H/ w: B! k3 z/ q* w7 U
Clay666 发表于 2020-5-6 08:143 I$ _+ f, `$ C" ?2 L/ Z
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:! m7 @! c3 |# J4 m
Variant myValue = current.labels.ass ...
6 x) R" c0 [# j9 V5 D
这段代码并不是“新建标签并赋值”,而是在某种情况下,明知道某标签不存在却仍要引用它。这段代码会先创建一个标签,然后将空的标签值返回给myValue变量。" t; S$ D  H9 a% E( M* u

9 x) A+ u3 L% t$ [6 ?% @  E这段代码等同于:
. W# `7 m3 M* ^8 Y0 Z7 ?( }5 c- iVariant myValue=current.MyLabel?;参见我总结的第3条。
* P1 B/ o0 ^3 O+ W* ]9 i
) P2 h: h, M5 {1 |新建标签并赋值直接用总结的第2条即可。
' B2 n: `$ P/ ]& S4 \% L' F' o9 c  e" l
你查看的是手册中treenode.labels部分,向上翻,在treenode.labelProperties部分有讲简短语法规则。
  ^! a, w4 t6 V: |! Pcurrent.MyLabel = 5;" @/ p; N& y$ p0 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.

; S* h9 Y0 `" G0 F4 L7 d9 _% {
3#
Clay666 发表于 2020-5-6 08:14:17 | 只看该作者
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:& _! ^+ D& \. D. a# Y. |
Variant myValue = current.labels.assert("MyLabel").value;
5 U' E% V; _- l; M" X' \否则会报错该label不存在。
4#
小王子波 发表于 2020-5-6 09:00:58 | 只看该作者
Clay666 发表于 2020-5-6 08:14$ U) q5 ]1 U/ d
我看了下最新的帮助文件,直接新建个标签并赋值还是需要如下操作:+ U/ Q4 p# T) y! @6 {! c" d; u! g+ K6 n7 A
Variant myValue = current.labels.ass ...

( j1 \, G: f9 @2 b2 g$ Ocurrent.labels.assert("MyLabel", 0);
. W' h# p% E/ J3 F+ ]/ Z3 B4 B或者/ h4 r$ A9 b  @& O% {0 J0 D
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:46 , Processed in 0.078406 second(s), 14 queries .

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

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