3

Visioの外部にVisioファイル(VDX)を作成するモジュールがあります。SDKによると、これは「信頼できない」XMLを指します。ステンシルからマスターをコピーして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://visguy.com/vgforum/index.php?topic = 1199.msg5163#msg5163

于 2009-09-22T15:41:07.150 に答える
0

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

docPropscustom.xml パーツで RecalcDocument フラグを使用します。これにより、VDX からのロード動作と同様に完全な再計算が行われますが、ロードも大幅に遅くなります。ファイルが再計算されて読み込まれると、次回の保存時にドキュメントから RecalcDocument フラグが削除されます。これにより、パフォーマンス ヒットが 1 つのファイルの読み込みに制限されます。RecalcDocument フラグを使用した custom.xml パーツの例を以下に示します。

于 2014-11-25T20:54:13.617 に答える