我已经构建了一个简单的转换添加,但不幸的是它的行为与不同的Visio版本(Visio 2010 Professional和Visio 2010 Premium)不同。 Add In使用来自Stencil_1.vss的Shapes创建的流程图,并使用Stencil_2.vsd中的Shapes创建一个略有不同的新Process-Diagram。它循环访问Visio页面,并为每个创建的形状创建一个新的主形状(来自Stencil_2.vsd)的形状并将其放入新页面。几何,字幕等是相同的,只改变形状外观。以下是源图:
当我将代码运行到Visio 2010 Professional时,泳道形状被正确绘制。
当我从Visio Premium运行相同的代码时,泳道外观和布局不匹配:
两次我都将SAME Shape(来自同一模板的“Swimlane”)放入带有SAME Code片段的页面中:
Visio.Master vm = swimlane_stencil.Masters.get_ItemU(@"Swimlane");
Visio.Shape TargetShape = targetPage.Drop(vm, shape_x, shape_y);
我怎样才能确保代码在任何时候产生相同(正确)的输出?我必须禁用泳道 - 形状表中的任何(高级)功能吗?
答案 0 :(得分:1)
跨功能流程图形状由插件支持,以便形状在泳道和页面等中正确定位。大多数形状都有一个on drop事件,可以调用插件来获取各自的功能。
从外观上看,在Visio Premium实例中未正确调用插件。例如,EventDrop cell中有一个函数:
= RUNADDONWARGS( “CFF14”, “/ CMD = 20001”)
..其中CFF14是2010版跨功能流程图插件。
请记住,2010还在跨功能流程图解决方案中使用container shapes。您使用的是正确的2010'目标'形状吗?
据我所知,就跨职能流程图而言,专业版和高级版之间的功能应该没有区别。
答案 1 :(得分:0)
请记住,2010年还使用了容器形状 跨功能流程图解决方案。你使用的是正确的2010年吗? '目标'形状?
两种情况下的'目标'形状都是来自交叉功能流程图模板的Swimlanes。
我在另一个“Professional”-Machine上测试了相同的Add In-code,它是成功的,我的意思是“Swimlane”形状定位正确,没有分隔符和Title-section。 我还卸载并重新安装了Premium实例,没有任何更改,相同的代码生成上面绘制的相同图表。 Swimlanes PinX已更改,并添加了分隔符和标题部分。
现在它工作正常,我希望这个解释对其他人有用,有人可以比我更好地解释这种行为:)