Метод DataRecordset.RemoveRefreshConflict (Visio)
Очищает сведения о конфликте для фигуры, связанной с данными, из текущего документа.
Примечание.
Этот объект или элемент Visio доступен только лицензированным пользователям Visio профессиональный 2013.
Синтаксис
expression. RemoveRefreshConflict (ShapeInConflict)
Выражение Выражение, возвращающее объект DataRecordset .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
ShapeInConflict | Обязательный | [IVSHAPE] | Фигура, связанная с данными, конфликтующая после обновления набора записей данных. |
Возвращаемое значение
Отсутствует
Примечания
Если shapeInConflict фактически не имеет конфликтов, метод не будет действовать.
Если вы решили не удалять сведения о конфликте, эти сведения будут сохраняться в текущем документе на неопределенный срок.
Пример
Этот макрос Microsoft Visual Basic для приложений (VBA) показывает, как использовать метод RemoveRefreshConflict для устранения конфликтов. Он вызывает метод GetAllRefreshConflicts , чтобы определить, какие фигуры, если таковые имеются, имеют конфликты после обновления набора записей данных. Затем он вызывает метод GetMatchingRowsForRefreshConflict , чтобы определить, какие строки или строки набора данных вызывают конфликт.
Он обновляет недавно добавленный набор данных и, если не обнаруживает результирующие конфликты, выводит сообщение "Нет конфликтов" в окне Интерпретации. Если конфликты не обнаруживаются, каждая фигура с конфликтами передается методу GetMatchingRowsForRefreshConflict и выводит результирующие идентификаторы строк в том же окне. Затем он передает фигуры с конфликтами в метод RemoveRefreshConflict , чтобы удалить конфликты.
Перед выполнением этого макроса убедитесь, что последний добавленный набор записей данных является подключенным (не основанным на XML) набором данных и что подключение к исходному источнику данных по-прежнему доступно. Затем удалите строку в источнике данных или внесите другое изменение, которое вызовет конфликт при обновлении набора записей данных.
Public Sub RemoveRefreshConflicts_Example()
Dim vsoDataRecordset As Visio.DataRecordset
Dim intRecordsetCount As Integer
Dim intShapeCount As Integer
Dim vsoShapes() As Visio.Shape
Dim intRowCount As Integer
Dim vsoShapeInConflict As Visio.Shape
Dim alngRowIDs() As Long
Dim lngvsoRowID As Long
intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount)
vsoDataRecordset.Refresh
vsoShapes = vsoDataRecordset.GetAllRefreshConflicts
If IsEmpty(vsoShapes) Then
Debug.Print "No conflict"
Else
For intShapeCount = LBound(vsoShapes) To UBound(vsoShapes)
Set vsoShapeInConflict = vsoShapes(intShapeCount)
alngRowIDs = vsoDataRecordset.GetMatchingRowsForRefreshConflict(vsoShapeInConflict)
If IsEmpty(alngRowIDs) Then
Debug.Print "For shape:", vsoShapeInConflict.Name, "Row deleted."
Else
For intRowCount = LBound(alngRowIDs) To UBound(alngRowIDs)
lngvsoRowID = alngRowIDs(intRowCount)
Debug.Print "For shape:", vsoShapeInConflict.Name, "Row ID of row in conflict:", lngvsoRowID
Next intRowCount
End If
Call vsoDataRecordset.RemoveRefreshConflict (vsoShapeInConflict)
Next intShapeCount
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.