|
楼主 |
发表于 2008-7-31 22:40:02
|
显示全部楼层
先感谢楼上的回复。
首先自我检讨一下没有把问题讲清楚。
先介绍一下关于模块的一些参数:
对于Arena中的每一个模块,为了实现与其他模块的链接,所以定义了入口和出口,对于一般的模块,只有一个入口和出口,在Arena中定义为:label和next label。默认是隐藏的,在模块属性框中是找不到的。在connections.create函数中是作为srcOperand 与 destOperand 来使用的。如下面:Model.Connections.Create create, process,"Next Label", "Label", 11, 24, xValues, yValues;就表示将create的next label与process模块的label连起来。这样就实现了create与process的链接。
但对于多个入口或出口的模块,如decide,如果是2-way-chance,则Yes出口定义为:Next Label Yes,No出口定义为:Next Label No.我们通过编写代码: m.Connections.Create Decide, Process, "Next Label No", "Label", , , ""就可以实现No出口与Process的label进行链接。如果改为m.Connections.Create Decide, Process, "Next Label Yes", "Label", , , ""则可以实现Yes出口与Process的label进行链接。
但如果改为N-way-chance则不同了。因为还是只有一个No出口所以, m.Connections.Create Decide, Process, "Next Label No", "Label", , , ""仍然可以实现No出口的链接。但这时有多个YES出口,所以这些出口叫做:N Next Label Yes。
我想问的是在N-way条件下为什么:m.Connections.Create Decide, Process, "N Next Label Yes", "Label", , , ""就会报错。不能链接。
我在建模时遇到这个问题时,采用的方法和楼上的类似。不去指定这些label。但遇到这个问题后,我就觉得提出来让大家讨论讨论,挺好。没想到没说清楚。。不好意思了!
另外解释一下connections.create的方法:
Create(IDispatch *srcModule, IDispatch *destModule, srcOperand As String, destOperand As String, srcRepeatIndex As Long, destRepeatIndex As Long, xPoints() as Long, yPoints() as Long) As Connection
srcModule:起始模块 destModule:结束模块;
srcOperand:起始模块的出口:通常为Next label,对于多出口模块则不一样如decide则为:Next Label Yes和Next Label No;
destOperand :结束模块的入口:通常为Label。对于多入口模块则不一样如match则为:Label1和label2;
xPoints yPoints:指连接线的拐点坐标,没有实际意义。
我想顺便请教大家一下:srcRepeatIndex As Long, destRepeatIndex As Long的用处。。
版主看一下能否再跟我加个金币啥的,那天给我加了金币后,我在论坛下了点东西,一下就低于权限值了,下不了了。急死了。所以拜托了,看在这么多文字的份儿上。
[ 本帖最后由 mayiArena 于 2008-7-31 22:43 编辑 ] |
评分
-
查看全部评分
|