Метод DataRecordset.RefreshUsingXML (Visio)
Обновления связанные фигуры с данными, содержащимися в строке, которая соответствует классической xml-схеме ADO, переданной методу в качестве параметра.
Примечание.
Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.
Синтаксис
expression. RefreshUsingXML (NewDataAsXML)
Выражение Выражение, возвращающее объект DataRecordset .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
NewDataAsXML | Обязательный | String | Строка XML, содержащая новые данные для обновления набора записей данных и соответствующая классической схеме ADO. |
Возвращаемое значение
Отсутствует
Примечания
Для параметра XMLString передайте XML-строку, которая соответствует классической схеме XML ADO и описывает данные, которые требуется импортировать. Пример XML-строки показан в примере ниже в этом разделе.
Данные в XML-строке, передаваемой в метод RefreshUsingXML , должны быть структурированы так же, как и данные в наборе записей данных, который требуется обновить. Как минимум, первичные ключевые столбцы должны быть одинаковыми в обоих наборах данных. Первичный ключ определяет имя столбца данных или столбцов, содержащих уникальные идентификаторы для каждой строки. Значение в столбце первичного ключа для каждой строки однозначно определяет эту строку в наборе записей данных.
При создании набора записей данных Microsoft Visio назначает идентификаторы строк всем строкам в наборе записей на основе существующего порядка строк в источнике данных.
Если XML-строка, передаваемая методу RefreshUsingXML , содержит столбец, состоящий из идентификаторов строк Visio (например, если бы вы экспортировали ее из Visio, получив значение свойства DataAsXML набора записей данных), метод RefreshUsingXML пытается проверить идентификаторы строк в строке. Если метод находит идентификаторы строк допустимыми, он повторно использует их в обновленном наборе записей данных. Если они признаны недопустимыми, возвращается ошибка.
Пример
В следующем макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать метод RefreshUsingXML для обновления существующего набора записей данных данными, содержащихся в классической XML-строке ADO.
Здесь показан пример XML-строки. Перед выполнением этого макроса откройте новый документ Visio и выполните макрос в разделе Метод DataRecordsets.AddFromXML .
При передаче его в метод RefreshUsingXML эта строка обновит набор записей данных, созданный методом AddFromXML , изменив названия городов.
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='c1' rs:name='Cities'
rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'>
<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>
</s:AttributeType>
<s:extends type='rs:rowbase'/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row c1='New York' />
<z:row c1='London' />
</rs:data>
</xml>
В следующем примере кода мы передадим методу RefreshUsingXML имя XML-строки, содержащей обновленные данные.
Public Sub RefreshUsingXML_Example()
Dim strXML As String
Dim intCount As Integer
Dim vsoDataRecordset As Visio.DataRecordset
intCount = ThisDocument.DataRecordsets.Count
strXML = "<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'" + Chr(10) _
& "xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'" + Chr(10) _
& "xmlns:rs='urn:schemas-microsoft-com:rowset'" + Chr(10) _
& "xmlns:z='#RowsetSchema'>" + Chr(10) _
& "<s:Schema id='RowsetSchema'>" + Chr(10) _
& "<s:ElementType name='row' content='eltOnly' rs:updatable='true'>" + Chr(10) _
& "<s:AttributeType name='c1' rs:name='Cities'" + Chr(10) _
& "rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'>" + Chr(10) _
& "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _
& "</s:AttributeType>" + Chr(10) _
& "<s:extends type='rs:rowbase'/>" + Chr(10) _
& "</s:ElementType>" + Chr(10) _
& "</s:Schema>" + Chr(10) _
& "<rs:data>" + Chr(10) _
& "<z:row c1='New York'/>" + Chr(10) _
& "<z:row c1='London'/>" + Chr(10) _
& "</rs:data>" + Chr(10) _
& "</xml>"
ThisDocument.DataRecordsets(intCount).RefreshUsingXML(strXML)
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.