Создание настраиваемых правил проверки: Методы проверки схем для добавления наборов правил и правил


Созданные собственные правила проверки необходимо добавить в файл Visio. API Visio предоставляет простой способ добавления правил и наборов правил, а также установки связанных с ними свойств. Обычно эти методы выполняются однократно для заполнения шаблона или схемы правилами проверки. На практике правила уже могут быть добавлены в шаблон, после чего шаблон можно развернуть, не используя программный код решения. При развертывании кода решения можно также добавить в текущий документ пользователя собственные правила, если пользователь сначала захочет выполнить проверку с помощью этих правил.

В таблице  дано краткое описание параметров методов проверки схем.

Методы проверки схем для добавления наборов правил и правил.

Метод

Описание метода

Параметр

Описание параметра

ValidationRuleSets.Add

[ {http://msdn.microsoft.com/en-us/library/ff766785.aspx ] (NameU)

Добавляет новый пустой объект ValidationRuleSet в набор  ValidationRuleSets документа.

 

NameU

Универсальное имя, назначаемое новому набору правил проверки.

ValidationRules.Add

[ http://msdn.microsoft.com/en-us/library/ff765351.aspx ] (NameU)

Добавляет новый пустой объект ValidationRule в набор  ValidationRules документа.

 

NameU

Универсальное имя, назначаемое новому правилу проверки.

Следующий код Visual Basic for Applications (VBA) добавляет набор правил и правило, которое направляет фигуру в активный документ.

Set vsoDocument = Visio.Activedocument
 
'Add a validation rule set to the document
Set vsoValidationRuleSet = vsoDocument.Validation.RuleSets.Add("Connectivity")
vsoValidationRuleSet.Description = "Verify that shapes are correctly connected in the document."
vsoValidationRuleSet.Enabled = True
vsoValidationRuleSet.RuleSetFlags = Visio.VisRuleSetFlags.visRuleSetDefault
 
'Add a validation rule to the document
Set vsoValidationRule = vsoValidationRuleSet.Rules.Add(“Unglued2DShape”)
vsoValidationRule.Category = "Shapes"
vsoValidationRule.Description = "This 2-dimensional shape is not connected to any other shape."
vsoValidationRule.Ignored = False
vsoValidationRule.TargetType = Visio.VisRuleTargets.visRuleTargetShape
 
'The validation function Is1D() returns a Boolean value indicating whether the shape is
'1D (True) or 2D (False)
vsoValidationRule.FilterExpression = "NOT(Is1D())"
 
'The validation function GLUEDSHAPES returns a set of shapes glued to the shape.
'It takes as input one parameter indicating the direction of the glue.
'The direction values are equivalent to members of VisGluedShapesFlags:
'0 = visGluedShapesAll1D and 3 = visGluedShapesAll2D
'The validation function AGGCOUNT takes a set of shapes as its input, and returns
'the number of shapes in the set.
vsoValidationRule.TestExpression = "AGGCOUNT(GLUEDSHAPES(0)) + AGGCOUNT(GLUEDSHAPES(3)) > 0"