Метод DataRecordset.GetAllRefreshConflicts (Visio)
Возвращает массив, содержащий фигуры, связанные со строками данных, которые имеют неразрешимые конфликты после обновления набора записей данных. .
Примечание.
Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.
Синтаксис
expression. GetAllRefreshConflicts
Выражение Выражение, возвращающее объект DataRecordset .
Возвращаемое значение
Shape()
Замечания
При обновлении данных из источника данных, который изменился с момента последнего обновления данных, могут возникать конфликты. Конфликты могут возникать, если одна фигура связана с несколькими строками в одном источнике данных или если фигура связана со строкой в источнике данных, который был удален.
Чтобы определить, какие строки набора данных вызвали конфликт, передайте фигуры, возвращенные Командлетом GetAllRefreshConflicts , в метод GetMatchingRowsForRefreshConflict , который возвращает массив строк, которые находятся в конфликте.
Пример
В этом макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать метод GetAllRefreshConflicts, чтобы определить, какие фигуры, если таковые имеются, имеют конфликты после обновления набора записей данных. Он обновляет недавно добавленный набор данных и, если не обнаруживает результирующие конфликты, выводит сообщение "Нет конфликтов" в окне Интерпретации. Если он находит конфликты, он выполняет итерацию по возвращенному массиву фигур и выводит имена фигур, имеющих конфликты, в том же окне.
Перед выполнением этого макроса убедитесь, что последний добавленный набор записей данных является подключенным (не основанным на XML) набором данных и что подключение к исходному источнику данных по-прежнему доступно. Затем удалите строку из источника данных или внесите другое изменение, которое вызовет конфликт.
Public Sub GetAllRefreshConflicts_Example()
Dim vsoDataRecordset As Visio.DataRecordset
Dim intRecordsetCount As Integer
Dim intShapeCount As Integer
Dim avsoShapes() As Visio.Shape
intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount)
vsoDataRecordset.Refresh
avsoShapes = vsoDataRecordset.GetAllRefreshConflicts
If IsEmpty(avsoShapes) Then
Debug.Print "No conflict"
Else
For intShapeCount = LBound(avsoShapes) To UBound(avsoShapes)
Debug.Print avsoShapes(intShapeCount).Name
Next intShapeCount
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.