Как заставить Visio переоценивать формулы при открытии ненадежного документа Visio - PullRequest
3 голосов
/ 21 сентября 2009

У меня есть модуль, который создает файл Visio (VDX) вне Visio. Согласно 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 умеет его открывать, но у подвидов есть ширина и высота мастера по умолчанию. Также связи между фигурами не проходят должным образом.

Если я скопирую / вставлю в тот же новый файл, то получу ожидаемый результат.

Я попытался изменить ширину и высоту подформ. У меня та же проблема.

Я пытался использовать код VBA при открытии документа, явно вызвав метод trigger () класса Cell, и я получил ожидаемые результаты. Это также работает, я открываю форму листа. Значение там черным, я просто нажимаю клавишу ввода в ячейке и получаю ожидаемый результат.

Мое понимание проблемы заключается в том, что Visio не оценивает формулы моих подформ, когда я открываю документ.

К сожалению, я не могу полагаться на макросы для принудительного обновления и обновления ячеек. Я хотел бы знать, есть ли способ принудительно пересмотреть формулы моих подформ, когда я открываю свой документ.

Заранее спасибо.

Эрик

Ответы [ 2 ]

0 голосов
/ 25 ноября 2014

На основании http://blogs.office.com/2013/01/29/10-tips-for-developers-working-with-the-visio-vsdx-file-format/

используйте флаг RecalcDocument в части docPropscustom.xml. Это приведет к полному пересчету, аналогичному поведению загрузки из VDX, но также значительно замедлит загрузку. Как только файл будет пересчитан и загружен, при следующем сохранении будет удален флаг RecalcDocument из документа. Это ограничит снижение производительности до загрузки одного файла. Пример части custom.xml с флагом RecalcDocument показан ниже.

image

0 голосов
/ 22 сентября 2009

Смотрите решение здесь: http://visguy.com/vgforum/index.php?topic=1199.msg5163#msg5163

...