Созданные собственные правила проверки необходимо добавить в файл 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"