3

我有一个在 Visio 外部创建 Visio 文件 (VDX) 的模块。根据 SDK,这指的是“不受信任”的 XML。我通过从我的模具中复制 Masters 创建了我的 xml 文件,然后使用 XML 稀疏文件引用它们。

在我的稀疏 xml 中,我以这种方式覆盖形状的位置和大小:

<Shape ID="154" Master="0">
       <Text>Text of the shape</Text>
       <XForm>
         <PinX>2.90625</PinX>
         <PinY>3.895833333333333</PinY>
         <Width F="No Formula">0.75</Width>
         <Height F="No Formula">0.5</Height>
       </XForm>
</Shape>

我的形状是一个有子形状的组。

它可以工作,Visio 能够打开它,但子形状具有主形状的默认宽度和高度。形状之间的链接也没有正确路由。

如果我复制/粘贴到同一个新文件中,那么我会得到预期的结果。

我试图强制子形状的宽度和高度。我遇到同样的问题。

我尝试通过显式调用 Cell 类的 trigger() 方法在打开文档时使用 VBA 代码,我得到了预期的结果。它也可以,我打开形状表。该值是黑色的,我只是在单元格上按 Enter 键,我也得到了预期的结果。

我对这个问题的理解是,当我打开文档时,visio 不会评估我的子形状的公式。

不幸的是,我不能依靠宏来强制和更新单元格。我想知道是否有办法在我打开文档时强制重新评估我的子形状的公式。

提前致谢。

埃里克

4

2 回答 2

0

基于 http://blogs.office.com/2013/01/29/10-tips-for-developers-working-with-the-visio-vsdx-file-format/

在 docPropscustom.xml 部分中使用 RecalcDocument 标志。这将导致完全重新计算,类似于 VDX 的加载行为,但也会显着减慢加载速度。重新计算并加载文件后,下一次保存将从文档中删除 RecalcDocument 标志。这会将性能影响限制为单个文件加载。下面显示了带有 RecalcDocument 标志的 custom.xml 部分的示例。

于 2014-11-25T20:54:13.617 回答
0

在此处查看解决方案:http: //visguy.com/vgforum/index.php?topic= 1199.msg5163#msg5163

于 2009-09-22T15:41:07.150 回答