Поделиться через


Метод 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 и обратная связь.