Einführung in Gültigkeitsprüfungsregeln in Visio Premium 2010 (maschinell übersetzt)
Wichtig
Dieser Artikel ist der Computer übersetzt, finden Sie in der Erklärung. Suchen Sie die englische Version dieser Artikel hier, für den Verweis.
Zusammenfassung: Erfahren Sie mehr über das neue Feature zur Validierung Diagramm in Microsoft Visio Premium 2010 und wie die Validation-API verwenden, um eigene Regeln und Regel erstellen auf Visio 2010 Diagramme zu überprüfen.
Letzte Änderung: Donnerstag, 7. April 2011
Gilt für: Office 2010 | SharePoint Server 2010 | Visio 2010 | Visio Premium 2010
Inhalt dieses Artikels
Übersicht über
Voraussetzungen:
Benutzerfreundlichkeit
Strukturierte Diagramme
Übersicht über die Validierung-API
Überprüfen von strukturierten Diagramme
Überprüfen vorhandene Regeln
Erstellen einen neuen Regelsatz
Beispiel: Erstellen einer Fault Tree Analysis-Regel festlegen.
Veröffentlichen von Regeln
Schlussbemerkung
Weitere Informationsquellen
Informationen über die Autorin
Applies to:Microsoft Visio Premium 2010
Veröffentlicht: Juli 2010
bereitgestellt von: David j. Parker, bVisual Ltd | Informationen über die Autorin
Inhalt
Übersicht über
Voraussetzungen:
Benutzerfreundlichkeit
Strukturierte Diagramme
Übersicht über die Validierung-API
Überprüfen von strukturierten Diagramme
Überprüfen vorhandene Regeln
Erstellen einen neuen Regelsatz
Beispiel: Erstellen einer Fault Tree Analysis-Regel festlegen.
Veröffentlichen von Regeln
Schlussbemerkung
Weitere Informationsquellen
Übersicht über
Microsoft Visio Premium 2010 Erweiterung eingeführt, um die Visio-Typbibliothek die Validation-API aufgerufen. Mithilfe von die Validation-API können Sie überprüfen, um sicherzustellen, dass die Konstruktion einer Reihe von Regeln (z. B. Industriestandard-Diagramm Regeln oder benutzerdefinierte Regeln für ein bestimmtes Unternehmen entwickelt wurde) entspricht einem Visio-Diagramm. Organisationen können mit diesem neue Feature verwenden, um Geschäftslogik als Regeln für die Gültigkeitsprüfung innerhalb von Regelsätzen zu kapseln. Visio Premium 2010 enthält standardmäßige Regelsätze für die Verwendung mit Diagrammen Basic und funktionsübergreifenden Flussdiagrammen, BPMN (Business Process Modeling Notation) Diagramme und SharePoint-Workflow-Designer.
Voraussetzungen:
In diesem Artikel verwendet die Validation-API, die nur in Microsoft Visio Premium 2010 gefunden wird. Der Leser sollte entweder Erfahrung in oder die Bereitschaft, um zu lernen, Visio-ShapeSheet-Formel bearbeitet haben. Weitere Informationsquellen stehen zur Verfügung, am Ende des Artikels.
Die in diesem Artikel beschriebenen Regelsatz Entwicklungsmethodik verwendet Visual Basic für Applikationen-Makros. Aus diesem Grund müssen Makros in Visio aktiviert werden.
Zum Aktivieren von Makros in Visio
Klicken Sie auf der Registerkarte Datei auf Optionen, klicken Sie auf Sicherheitscenter, und klicken Sie dann auf Einstellungen für das Sicherheitscenter.
Klicken Sie im Dialogfeld Sicherheitscenter auf die Registerkarte Einstellungen für Makros.
Aktivieren Sie unter EntwicklermakroeinstellungenZugriff auf das VBA-Projektobjektmodell vertrauen.
Benutzerfreundlichkeit
Visio Premium 2010 enthält eine zusätzliche Registerkarte Prozessfarbe(n) (in der Komponente Multifunktionsleiste von der Microsoft Office Fluent-Benutzeroberfläche, wie in Abbildung 1 dargestellt), die Zugriff auf die sichtbare Teile der Validation-API in der Gruppe Diagramm Validierung bereitstellt.
Abbildung 1. Prozess (Registerkarte)
Der Benutzer klickt auf die Schaltfläche Diagramm überprüfen, das gesamte Dokument anhand der derzeit aktivierten Regelsätze im Dokument zu überprüfen. Das Fenster Probleme, die in Abbildung 2 gezeigt zeigt alle Probleme, die die Gültigkeitsprüfung auslöst. Klicken Sie einfach Shapes suchen, die Probleme, auf ein Problem und Visio wählt das entsprechende Shape.
Abbildung 2. Probleme (Fenster)
Visio Premium 2010 bietet Unterstützung für die Gültigkeitsprüfung für mehrere Dokumentvorlagen, einschließlich der neuen BPMN Diagramm und Vorlagen für Microsoft SharePoint-Workflow und verbesserten Standardflussdiagramm und Funktionsübergreifendes Flussdiagramm-Vorlagen in einem Diagramm, die in der Kategorie Flussdiagramm gefunden werden.
Strukturierte Diagramme
Es gibt viele Arten von Diagrammen, die berücksichtigt werden können als strukturierte. Ein Prozessflussdiagramm ist ein strukturiertes Diagramm, aber es gibt viele andere Diagramme, denen Struktur zugewiesen werden können.
Ein strukturierter Diagramm ist ein Speicherort ist eine Gruppe von logischen Beziehungen zwischen den Shapes. Visuelle Organisation zu Diagrammen Beziehungen zu bringen, und können Sie spezielle Interaktion Funktionen bieten.
Visio 2010 (alle Editionen) eingeführt, einige neue Features, die es für Benutzer leicht zu dieser Beziehungen zu bilden. Der Container, Listen und Legenden in Visio 2010 aktivieren Shapes-Einkapselung, die Reihenfolge und die Zuordnung zu bestimmen. Dies ist in der Konnektivität Beziehungen, die immer in Visio möglich waren, jedoch sind jetzt einfacher zu verstehen und mit der API für neue Verbindungen zu navigieren.
Kapselung
Das Container-Feature in Visio 2010 erleichtert das Hinzufügen einer visuellen Grenze um Formen, z. B. eine Beschriftung ein, wie in Abbildung 3 dargestellt. Visio führt alle Schritte die Beziehung zwischen dem Container und seinen Inhalt zu verwalten.
Abbildung 3. Diagramm-Einkapselung
Reihenfolge
Formen, die einer Liste hinzugefügt werden, werden automatisch nebeneinander angeordnet. In Abbildung 4 werden die Verantwortlichkeitsbereichen Liste Formen in der Containerform Funktionsübergreifendes Flussdiagramm (CFF).
Abbildung 4. Diagramm-Reihenfolge
Zuordnung
Ein Beschriftungs-Shape verschoben wird, wenn das Ziel-Shape verschoben wird. In Abbildung 5 hat die Diskussion Fortschritt auswerten Aufgabe Form eine zugeordnete Legende, die beschreibenden Text enthält.
Abbildung 5. Diagramm-Zuordnung
Konnektivität
Visio hat immer die Möglichkeit, Verbindungen zwischen Shapes erstellen bereitgestellt. Ursprünglich war dies nur möglich mithilfe eines eindimensionalen (1D-) Shapes zweidimensionaler (2D) Shapes miteinander verbinden. Das 1D-Shape als einen Connector bezeichnet hat einen Anfang und ein Ende. Aus diesem Grund 2D-Shapes, an den Anfang eines 1-D-Shapes geklebt wurde eine Verbindung nach außen und 2D-Shapes, bis zum Ende des 1D-Shapes geklebt hat einen Connector nach innen, wie in Abbildung 6 dargestellt.
Abbildung 6. Verbindungen zwischen shapes
Die Richtung des Datenflusses zusammen einen eindimensionalen Verbinder kann für visuelle und programmgesteuerte Verständnis wichtig sein. Daher ist es oft notwendig, zu prüfen, um die richtige Ende der Verbindung Shapes geklebt werden.
Hinweis
Zeilen in Visio können Pfeile und andere Arten von Linienenden, an beiden Enden haben beide Enden oder an beide Enden. Aus diesem Grund kann nicht immer angenommen, dass ein Pfeil auf einer Zeile in die Richtung der Linie angezeigt.
Höhere Versionen von Visio die Möglichkeit, dass zwei 2D-Shapes (z. B. die Arbeitsflächen in der Büroplan-Vorlage) eingeführt, um zu anderen oder sogar für zwei 1D-Shapes an (z. B. die Pipelines in der Vorlage Process Flow) zusammen geklebt werden geklebt werden.
Übersicht über die Validierung-API
Die wichtigsten Objekte, Methoden und Eigenschaften für die Validierung sind in Abbildung 7 dargestellt.
Abbildung 7. Die wichtigsten Sie Objekte, Methoden und Eigenschaften von Gültigkeitsprüfung
Die Überprüfung der API basiert auf drei Hauptkonzepte: Regel legt, Regeln und Probleme. Eine Gültigkeitsregel oder eine Regel stellt eine Art von Fehler, die in Ihrem Diagramm auftreten können. Jede Regel hat die zugrunde liegende Geschäftslogik, die bestimmt, wann die Regel nicht eingehalten wird. Ein Problem ist ein Fall, in dem Diagramm, in dem die Gültigkeitsregel nicht eingehalten wird. Je nach Ihrem Diagramm kann mehrere Probleme, die dieselbe Regel zugeordnet sein. Z. B. wird die Regel erfordert, dass alle Shapes bezeichnet werden, Validierung ein Problem für jedes Shape angezeigt, dem eine Bezeichnung fehlt. Regelsätze sind logische Gruppierung von Regeln, wie z. B. Regelsätze BPMN und Flussdiagramm.
Wichtige Validation-Objekte und Eigenschaften
Legt Regeln, Regeln und Probleme bei jeder entsprechenden API-Objekte haben: ValidationRuleSetValidationRule und ValidationIssue, bzw.. In den folgenden Abschnitten werden die wichtigsten Eigenschaften für jedes dieser Objekte beschrieben.
ValidationRuleSet
Jede Regel hat eine eindeutige NameU-Eigenschaft, die den universellen Namen der Regelsatz darstellt. Sie sollten auch einen Eigenschaftenwert Description für jede Regel angeben. Andere Eigenschaften werden in der Standardeinstellung festgelegt, und Sie haben Sie nur, wenn Sie möchten, dass ein anderes Verhalten ändern. Die wichtigsten Eigenschaften des Objekts ValidationRuleSet sind in Tabelle 1 dargestellt.
Tabelle 1. ValidationRuleSet Key-Eigenschaften
Eigenschaft |
Beschreibung |
---|---|
Gibt die Beschreibung für den Regelsatz ein. |
|
Bestimmt, ob der Regelsatz aktiv oder inaktiv ist. Nur Regeln, die zur aktiven Regelsätze gehören werden überprüft, wenn Validierung ausgelöst wird. Regelsätze sind standardmäßig aktiviert. |
|
Gibt den Namen der Regelsatz, der in der Benutzeroberfläche (UI) angezeigt wird. Standardmäßig ist der Wert der NameU identisch. |
|
Gibt den universellen Namen der Regelsatz. |
|
Schlüsselt die Regeln im Regelsatz. |
|
Bestimmt, ob der Regelsatz in der Benutzeroberfläche angezeigt wird. In der Standardeinstellung werden Regelsätze in der Benutzeroberfläche angezeigt. |
Gültigkeitsregel
Jede Regel verfügt über eine eindeutige NameU-Eigenschaft, die den universellen Namen der Regel darstellt. Sie sollten auch eine Category und Description Eigenschaftenwert für jede Regel angeben, da diese Eigenschaften in der Benutzeroberfläche verwendet werden. Der Wert Category sollte informieren den Benutzer über die Art des Problems und kann verwendet werden, um die Regel bestimmen, die das Problem ausgelöst. Der Wert Description sollte explizit genug ist, Erläutern Sie das Problem, dass ein Benutzer adressieren. Die wichtigsten Eigenschaften des Objekts ValidationRule sind in Tabelle 2 gezeigt.
In Tabelle 2. Key ValidationRule-Eigenschaften
Eigenschaft |
Beschreibung |
---|---|
Repräsentiert den Text, der in der Spalte Kategorie des Fensters Probleme angezeigt wird. |
|
Gibt die Beschreibung der Regel, die Probleme im Fenster angezeigt wird. |
|
Gibt den logischen Ausdruck, der bestimmt, ob die Gültigkeitsregel einem Zielobjekt angewendet werden soll. |
|
Bestimmt, ob die Gültigkeitsregel derzeit ignoriert wird. In der Standardeinstellung werden die Regeln nicht ignoriert. |
|
Gibt den universellen Namen der Regel an. |
|
Gibt die Regel zurück, das die Regel enthält. |
|
Bestimmt den Zieltyp der Regel. Eine Regel kann Dokumente, Seiten oder Formen abzielen. Der Eigenschaftenwert TargetType muss eine der folgenden VisRuleTargets-Konstanten sein:
|
|
Gibt den logischen Ausdruck, der bestimmt, ob das Zielobjekt der Regel entspricht. |
ValidationIssue
Jedes Problem hat eine zugeordnete Regel, die angibt, die Beschreibung und der Kategorie, die Probleme im Fenster angezeigt wird. Wenn ein Benutzer einem Problem im Fenster Probleme Visio zeigt klickt der Seite, die das Problem enthält (Wenn sich das Problem auf ein Zeichenblatt oder Shape zielt) und wählt das Ziel-shape (sofern das Problem zielt auf eine Form). Die TargetPage, TargetPageID und TargetShape Eigenschaften werden verwendet, bestimmen Sie die Anzeige der Seite und dem Shape auswählen. In Tabelle 3 werden die wichtigsten Eigenschaften des Objekts ValidationIssue angezeigt.
Tabelle 3. ValidationIssue Key-Eigenschaften
Eigenschaft |
Beschreibung |
---|---|
Bestimmt, ob das Problem momentan ignoriert wird. |
|
Gibt die Regel, die das Problem generiert. |
|
Gibt die Seite an, die mit dem Problem verknüpft ist. |
|
Gibt die ID der Seite, die die Validierung-Problem zugeordnet ist. |
|
Gibt das Shape an, das die Validierung-Problem zugeordnet ist. |
Überprüfen von strukturierten Diagramme
Ein Dokument kann mehrere Regelsätze, enthalten, die aktiviert oder deaktiviert im Rahmen die Struktur geprüft werden kann. Visio Premium 2010 enthält einen Flussdiagramm Regelsatz, der in den Vorlagen Standardflussdiagramm, funktionsübergreifendes Flussdiagramm und Six Sigma verwendet wird. Alle Regeln im Regelsatz Flussdiagramm werden im Filter und Test-Ausdrücke definiert. Sie können diese Regeln, um Informationen zum Erstellen von Regelsätzen für andere Arten von Diagrammen analysieren.
Ein weiteres Beispiel für das Flussdiagramm Regeln in Visio Premium 2010 ist die Vorlage BPMN Diagramme, wie in Abbildung 8 dargestellt. Mit diesem Regelsatz unterstützt BPMN 1.2, wodurch Organisationen, mit denen dieses bestimmte Verfahren stellen Sie sicher, dass die Diagramme entsprechend strukturiert sind.
Abbildung 8. BPMN Regelsatz
Die Option Regeln importieren aus können Sie Regelsätze aus anderen geöffneten Visio-Dokumente importieren. Jedoch, wenn die erforderlichen Regeln sehr komplex sind, können Sie auch Regeln im Code schreiben. Diese Art von Regeln nicht Filter erfordern und Ausdrücke getestet werden, da Sie vom RuleSetValidated Ereignis aufgerufen werden. Ein Beispiel für diese Art von Regeln in Visio Premium 2010 ist die Workflowvorlage von SharePoint Designer.
Überprüfen vorhandene Regeln
Um zu verstehen, wie Sie eigene Regeln zu erstellen, ist es sinnvoll, eine Reihe von vorhandenen Regeln zu prüfen.
So erstellen Sie eine Liste der vorhandenen Regeln
Öffnen Sie eine Vorlage Standardflussdiagramm aus der Kategorie Flussdiagramm, wie in Abbildung 9 dargestellt.
Abbildung 9. Grundlegende Flussdiagramm-Vorlage
Stellen Sie sicher, dass die Registerkarte Entwickler in Visio angezeigt wird:
Klicken Sie auf Optionen, klicken Sie auf die Registerkarte Datei.
Klicken Sie im Dialogfeld Optionen für Visio klicken Sie auf die Registerkarte Erweitert.
Aktivieren Sie unter Allgemeinim Entwicklermodus ausführen.
Klicken Sie auf der Registerkarte EntwicklerVisual Basic auf Öffnen Sie den VBA-Editor zu, und fügen Sie ein Modul in das VBA-Projekt.
Klicken Sie im Menü Extras auf klicken Sie Verweise, und wählen Sie Microsoft Forms 2.0-Objektbibliothek einen Verweis auf diese Bibliothek zu Ihrem Projekt hinzufügen. Die Objektbibliothek von Microsoft Forms ermöglicht den Zugriff auf die Zwischenablage-Objekt.
Tipp
Wenn Sie eine UserForm in das VBA-Projekt einfügen, wird es automatisch den Microsoft Forms-Verweis hinzufügen, wie in Abbildung 10 dargestellt. Sie können dann die UserForm entfernen.
Abbildung 10. Microsoft Forms-Referenz
Kopieren Sie und fügen Sie die folgende Unterroutine mit EnumerateRules() in das Modul.
Public Sub EnumerateRules() Dim doc As Visio.Document Dim ruleSet As Visio.ValidationRuleSet Dim rule As Visio.ValidationRule Dim datObj As DataObject Dim txt As String Set doc = Visio.ActiveDocument txt = "EnumerateRulesSets Count = " & doc.Validation.RuleSets.Count For Each ruleSet In doc.Validation.RuleSets If ruleSet.Enabled Then txt = txt & vbCrLf & "EnumerateRules for RuleSet : " & _ ruleSet.nameu & " : Count = " & ruleSet.Rules.Count txt = txt & vbCrLf & "ID" & vbTab & "Category" & vbTab & "NameU" & vbTab & _ "Description" & vbTab & "TargetType" & vbTab & _ "FilterExpression" & vbTab & "TestExpression" For Each rule In ruleSet.Rules With rule txt = txt & vbCrLf & .ID & vbTab & .category & vbTab & .nameu & vbTab & _ .description & vbTab & .targettype & vbTab & _ .filterexpression & vbTab & .testexpression End With Next End If Next Set datObj = New DataObject datObj.SetText txt datObj.PutInClipboard End Sub
Diese Unterroutine kopiert in die Zwischenablage alle Regeln für aktivierte Regel im aktiven Dokument festgelegt. Sie können dann den Inhalt in Microsoft Excel, z. B. einfügen, um eine Tabelle zu erstellen, wie in Tabelle 4 dargestellt.
In Tabelle 4. Regelsätze aktiviert
EnumerateRulesSets Count = 1 |
Für den Regelsatz EnumerateRules: Flussdiagramm: Count = 11 |
ID |
Category |
NameU |
Description |
TargetType |
FilterExpression |
TestExpression |
---|---|---|---|---|---|---|
1 |
Konnektivität |
Unglued oder verbinden |
Connector ist an beiden Enden nicht geklebt. |
0 |
ROLLE () = 1 |
AND(AGGCOUNT(GLUEDSHAPES(4)) = 1, AGGCOUNT(GLUEDSHAPES(5))=1) |
2 |
Starten / Beenden |
StartWithoutTerminator |
Flussdiagramm-Shape hat keine eingehenden Connectors und keinen Anfang/Ende-Form. |
0 |
AND(OR(HASCATEGORY("Flowchart"),ONLAYER("Flowchart")),NOT(OR(HASCATEGORY("Start/End"),STRSAME(LEFT(MASTERNAME(750),9),"Start/End"),STRSAME(LEFT(MASTERNAME(750),10),"Terminator")))) |
AGGCOUNT(GLUEDSHAPES(1)) > 0 |
3 |
Starten / Beenden |
EndWithoutTerminator |
Flussdiagramm-Shape verfügt über keinen ausgehenden Connectors und keinen Anfang/Ende-Form. |
0 |
AND(OR(HASCATEGORY("Flowchart"),ONLAYER("Flowchart")),NOT(OR(HASCATEGORY("Start/End"),STRSAME(LEFT(MASTERNAME(750),9),"Start/End"),STRSAME(LEFT(MASTERNAME(750),10),"Terminator")))) |
AGGCOUNT(GLUEDSHAPES(2)) > 0 |
4 |
Starten / Beenden |
NoStartTerminator |
Flussdiagramm beginnt nicht mit einer Anfang/Ende-Form. |
1 |
AGGCOUNT(FILTERSET(SHAPESONPAGE(), " OR(HASCATEGORY(""Flowchart""),ONLAYER(""Flowchart""))")) > 0 |
AGGCOUNT(FILTERSET(SHAPESONPAGE(), "AND(OR(HASCATEGORY(""Start/End""),STRSAME(LEFT(MASTERNAME(750),9),""Start/End""),STRSAME(LEFT(MASTERNAME(750),10),""Terminator"")),AGGCOUNT(CONNECTEDSHAPES(2))>0)")) > 0 |
5 |
Starten / Beenden |
NoEndTerminator |
Flussdiagramm endet nicht mit einer Anfang/Ende-Form. |
1 |
AGGCOUNT(FILTERSET(SHAPESONPAGE(), "OR(HASCATEGORY(""Flowchart""),ONLAYER(""Flowchart""))")) > 0 |
AGGCOUNT(FILTERSET(SHAPESONPAGE(), "AND(OR(HASCATEGORY(""Start/End""),STRSAME(LEFT(MASTERNAME(750),9),""Start/End""),STRSAME(LEFT(MASTERNAME(750),10),""Terminator"")),AGGCOUNT(CONNECTEDSHAPES(1))>0)")) > 0 |
6 |
Konnektivität |
UnconnectedShape |
Flussdiagramm-Shape ist nicht mit keiner anderen Form verbunden. |
0 |
OR(HASCATEGORY("Flowchart"),ONLAYER("Flowchart")) |
AGGCOUNT(CONNECTEDSHAPES(0)) > 0 |
7 |
Konnektivität |
TerminatorinMiddle |
Anfang/Ende-Form verfügt über eingehende und ausgehende Verbindungen. |
0 |
OR(HASCATEGORY("Start/End"),STRSAME(LEFT(MASTERNAME(750),9),"Start/End"),STRSAME(LEFT(MASTERNAME(750),10),"Terminator")) |
NOT(AND(AGGCOUNT(CONNECTEDSHAPES(1)) > 0,AGGCOUNT(CONNECTEDSHAPES(2)) > 0)) |
8 |
Konnektivität |
TooFewOutConns |
Shape Entscheidung sollten mehrere ausgehende Connectors verfügen. |
0 |
OR(HASCATEGORY("Decision"),STRSAME(LEFT(MASTERNAME(750),8),"Decision")) |
AGGCOUNT(GLUEDSHAPES(2)) > 1 |
9 |
Konnektivität |
NonFlowchartShape |
Verbundene Form wird als ein Flussdiagramm-Shape nicht erkannt. |
0 |
NOT(OR(HASCATEGORY("Flowchart"),ONLAYER("Flowchart"))) |
AGGCOUNT(GLUEDSHAPES(0)) = 0 |
10 |
Text |
NoShapeText |
Flussdiagramm-Shape hat keine Beschriftung. |
0 |
OR(HASCATEGORY("Flowchart"),ONLAYER("Flowchart")) |
NOT(STRSAME(SHAPETEXT(TheText), "")) |
11 |
Cross - Functional |
OutsideCFF |
Flussdiagramm-Shapes sollte ein Verantwortlichkeitsbereich angehören. |
1 |
AGGCOUNT(FILTERSET(SHAPESONPAGE(),"HASCATEGORY(""Swimlane"")")) > 0 |
AGGCOUNT(FILTERSET(SHAPESONPAGE(),"AND(OR(HASCATEGORY(""Flowchart""),ONLAYER(""Flowchart"")),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Swimlane"""")""))=0)")) = 0 |
Die FilterExpression und TestExpression Formeln sind reguläre ShapeSheet-Funktionen, abgesehen von mehreren neuen spezielle Funktionen, die in Visio 2010 besonders für die Validierung hinzugefügt.
In Tabelle 5 werden die speziellen Funktionen, die ähneln ShapeSheet-Funktionen und können verwendet werden, in der Formeln TestExpressionFilterExpression aufgeführt.
Tabelle 5. FilterExpression und TextExpression-Funktion
Funktion |
Beschreibung |
---|---|
Role() |
Gibt eine ganze Zahl, die die Shape-Rolle:
|
OnLayer(LayerName) |
Wenn auf einem Shape aufgerufen, gibt einen booleschen Wert, der angibt, ob das Shape ein Mitglied der angegebenen Ebene zurück. Wenn auf einer Seite aufgerufen wird, gibt einen booleschen Wert, der angibt, ob die Ebene auf der Seite vorhanden ist. |
ConnectedShapes(Direction) |
Gibt den Satz von Shapes, die die Direction Übereinstimmungskriterien und mit dem Shape verbunden sind. Die Funktion ConnectedShapes überspringt die Connectors während die Funktion GluedShapes Verbinder-Shapes selbst zurückgibt. Der Wert der Direction ist einer der VisConnectedShapesFlags-Konstanten sein:
|
GluedShapes(Direction) |
Gibt den Satz von Shapes, die die Direction Übereinstimmungskriterien und angeklebt werden auf das Shape. Die Funktion ConnectedShapes überspringt die Connectors während die Funktion GluedShapes Verbinder-Shapes selbst zurückgibt. Der Wert der Direction ist einer der VisGluedShapesFlags-Konstanten sein:
|
ContainerMembers() |
Gibt den Satz von Shapes, die Mitglieder der Container oder der Liste Form sind. |
ListMembers() |
Gibt den Satz von Shapes, die Mitglieder der Liste Form sind. |
Callouts() |
Gibt den Satz von Shapes, die Legenden auf dem Shape. |
ParentContainers() |
Gibt den Satz von Containern, denen das Shape gehört. |
ShapesOnPage() |
Gibt die Gruppe von Formen der obersten Ebene auf der Seite. Keine Seite Bezeichner die Funktion vorangestellt ist, wird das Shape enthaltenden Seite angenommen. |
AggCount(Set) |
Zählt die Anzahl von Shapes in einer Gruppe. |
FilterSet(Set,FilterExpression) |
Gibt die Teilmenge der Formen in einer Gruppe, die einen Ausdruck entsprechen. |
OnBoundaryOf() |
Gibt den Satz von Containern in einer Weise, dass die Form an der Grenze dieser Container ist. |
Erstellen einen neuen Regelsatz
Nun, da Sie wissen, wie Regeln geschrieben werden, können Sie Ihre eigenen benutzerdefinierten Regelsätze erstellen. Dieser Abschnitt zeigt wie Sie schreiben einfach strukturierte Diagrammerstellung Regeln für das Fault Tree Analysis-Diagramm, das derzeit keine Regeln für die Gültigkeitsprüfung zugeordnet hat.
Erstellen Sie zunächst ein neues Fault Tree Analysis Diagram aus der Kategorie Geschäftlich wie in Abbildung 11 dargestellt.
Abbildung 11. Fault Tree Analysis-Diagramm
Später fügen Sie VBA-Code in der VBA-Projekt des neuen Dokuments.
Analysieren der Anforderungen
Die erste Aufgabe besteht darin, die Shapes zu verstehen, die Sie bei der Erstellung des Diagrammtyps verwenden können.
Ziehen Sie alle master-Shapes aus der Schablone Fault Tree Analysis Shapes, und legen Sie in der leeren Seite. Öffnen Sie die Dokumentschablone und Zeichnungs-Explorer-Fenster (auf der Registerkarte Entwickler), welche Ebenen finden Sie in der Standardeinstellung die Shapes befinden. Wie in Abbildung 12 sehen ist, den dynamischen Verbinder auf dem Verbindung-Layer ist und alle anderen Shapes auf dem Layer Flussdiagramm werden.
Abbildung 12. Shape-Ebenen
Sie können auch überprüfen, dass die Shapes an, ob Sie eine beliebige Form von Datenzeilen enthalten (diese bestimmten master-Shapes jedoch nicht).
Anschließend können Sie durch Verwendung des Master-Shapes gruppieren. In diesem Fall stehen sechs Gate-Symbole, fünf Ereignis Symbole, ein Symbol für die Übertragung und für einen Connector.
Nun können Sie beginnen, die grundlegenden Regeln beschäftigen, die Sie erstellen möchten. Die folgende Liste zeigt eine Beispiel-Zusammenstellung von Regeln:
Jeder Connector muss auf ein Shape an jedem Ende verbunden sein.
Alle Ereignis-Shape muss beschriftet werden.
Jedes Shape FTA (Fault Tree Analysis) muss auf eine andere Form der FTA verbunden sein.
Ein sekundäres Ereignis sollten keine Verbindungen nach außen verfügen.
Jeder Gatter-Shape ist nur eine Eingabe erforderlich.
Jeder Gatter, außer das Tor Inhibit benötigen Sie mindestens zwei Ausgaben.
Ein Standortgate Inhibit sollte eine nach außen Verbindung verfügen.
Jeder Gatter, außer das Tor Inhibit muss mindestens drei Ereignissen herstellen.
Symbol für die Übertragung muss nur eine Verbindung verfügen.
Einige dieser Regeln erstellen möchten, müssen Sie die Klärung eine gültige Form ist.
Ermitteln Sie zunächst, ob alle gültigen Shapes auf dem Layer Flussdiagramm sind. Die OnLayer(LayerName)-Funktion können Sie dies überprüfen.
Bestimmen Sie als Nächstes die Namen der master-Shapes. Verwenden Sie die MasterName(langid_opt)-Funktion für diese, jedoch müssen Sie Vorsicht ein wenig Übung. Dies ist, da es einfach, ein Benutzer versehentlich mehrfach-Master-Shapes in einem Dokument erstellen in dem Fall Visio automatisch den doppelten Name des Masters eindeutig sein ist, durch Anfügen von einem Punkt und einer Zahl erzwingen. Daher sollten Sie den Test StrSame(Left(MasterName(750),n),Name) werden geändert, wobei 750 den universellen Sprachcode steht Name ist der Name des Master-Shapes überprüft werden und n ist die Anzahl der Zeichen in den Namen.
In Flussdiagrammen, die bereits Regeln angegeben haben, wurden die master-Shapes geändert, um eine zusätzliche benutzerdefinierte Zelle User.msvShapeCategories, enthalten, die eine Liste von Kategorien enthalten, denen das Shape gehört. Sie können dann die neuen HasCategory(CategoryName)-Funktion anstelle der Funktion MasterName() als Test verwenden. Wenn Sie eine Vorlage, die Ihre eigenen Master-Shapes enthält erstellen, haben Sie die Möglichkeit, die User.msvShapeCategories an den Mastern hinzufügen.
Ein Regelsatz hinzufügen
Zuerst müssen Sie einen Regelsatz für die Regeln gehört zu erstellen. Die folgenden Code-Prozedur AddRuleSet(), fügt den Fault Tree Analysis Regelsatz oder aktualisiert wird, wenn es bereits vorhanden ist. Es wird eine Support-Prozedur getRuleSet(), folgen die verwendet wird, um zu testen, ob eine benannte Regel vorhanden ist. Ruleset-Objekt zurück, wenn es vorhanden ist; andernfalls wird er Nothing zurück.
Public Sub AddRuleSet()
' Add a validation rule set to the document.
' Edit the nameU to suit.
Dim doc As Visio.Document
Dim ruleSet As Visio.ValidationRuleSet
Dim nameU As String
nameU = "Fault Tree Analysis"
Set doc = Visio.ActiveDocument
' Check whether the rule set already exists.
Set ruleSet = getRuleSet(doc, nameU)
If ruleSet Is Nothing Then
' Create the new rule set.
Set ruleSet = doc.Validation.RuleSets.Add(nameU)
End If
ruleSet.description = "Example Fault Tree Analysis rule set."
ruleSet.Enabled = True
ruleSet.RuleSetFlags = Visio.VisRuleSetFlags.visRuleSetDefault
End Sub
Private Function getRuleSet(ByVal doc As Visio.Document, _
ByVal nameU As String) As Visio.ValidationRuleSet
' Return a named rule set or nothing.
Dim retVal As Visio.ValidationRuleSet
Dim ruleSet As Visio.ValidationRuleSet
Set retVal = Nothing
For Each ruleSet In doc.Validation.RuleSets
If UCase(ruleSet.nameU) = UCase(nameU) Then
Set retVal = ruleSet
Exit For
End If
Next
Set getRuleSet = retVal
End Function
Löschen einen Regelsatz
DeleteRuleSet() Code folgt können Sie um eine unerwünschte Regel in einem Regelsatz zu löschen.
Public Sub DeleteRuleSet()
' Delete a rule set from the active document.
' Edit the ruleSetNameU value to suit.
Dim doc As Visio.Document
Dim nameU As String
nameU = "Fault Tree Analysis"
Set doc = Visio.ActiveDocument
' Check whether the rule set already exists.
If Not getRuleSet(doc, nameU) Is Nothing Then
' Delete the rule set.
doc.Validation.RuleSets.Item(nameU).Delete
End If
End Sub
Hinzufügen einer Regel
In der folgenden Beispielprozedur Code veranschaulicht das Hinzufügen einer Regel zu einem Regelsatz.
Public Sub AddRule()
' Add a rule to named rule set.
' Edit nameU and the addARule arguments to suit.
Dim doc As Visio.Document
Dim ruleSet As Visio.ValidationRuleSet
Dim nameU As String
nameU = "Fault Tree Analysis"
Set doc = Visio.ActiveDocument
' Check whether the rule set already exists.
Set ruleSet = getRuleSet(doc, nameU)
If ruleSet Is Nothing Then
Exit Sub
End If
' Add the rule.
addARule ruleSet, "Connectivity", "UngluedConnector", _
"Connector is not glued at both ends.", 0, _
"ROLE()=1", _
"AND(AGGCOUNT(GLUEDSHAPES(4)) = 1, AGGCOUNT(GLUEDSHAPES(5)) = 1)"
End Sub
Private Function getRule(ByVal ruleSet As Visio.ValidationRuleSet, _
ByVal nameU As String) As Visio.ValidationRule
' Return a named rule or nothing.
Dim retVal As Visio.ValidationRule
Dim rule As Visio.ValidationRule
Set retVal = Nothing
For Each rule In ruleSet.Rules
If UCase(rule.nameU) = UCase(nameU) Then
Set retVal = rule
Exit For
End If
Next
Set getRule = retVal
End Function
Private Sub addARule(ByVal ruleSet As Visio.ValidationRuleSet, _
ByVal category As String, ByVal nameU As String, _
ByVal description As String, ByVal targetType As Integer, _
ByVal filterExpression As String, ByVal testExpression As String)
' Add or update a validation rule in the document.
Dim rule As Visio.ValidationRule
Set rule = getRule(ruleSet, nameU)
If rule Is Nothing Then
Set rule = ruleSet.Rules.Add(nameU)
End If
rule.category = category
rule.description = description
rule.Ignored = False
rule.targetType = targetType
rule.filterExpression = filterExpression
rule.testExpression = testExpression
' Flush existing issues to ensure re-validation.
ruleSet.Document.Validation.Issues.Clear
End Sub
Löschen einer Regel
DeleteRule() Code folgt können Sie um eine unerwünschte Regel aus einem Regelsatz zu löschen.
Public Sub DeleteRule()
' Delete a rule from a rule set.
' Edit ruleSetNameU and ruleNameU to suit.
Dim ruleSetNameU As String
Dim ruleSet As Visio.ValidationRuleSet
ruleSetNameU = "Fault Tree Analysis"
Set ruleSet = getRuleSet(Visio.ActiveDocument, ruleSetNameU)
If ruleSet Is Nothing Then
Exit Sub
End If
Dim ruleNameU As String
ruleNameU = "UngluedConnector"
' Check whether the rule already exists.
If Not getRule(ruleSet, ruleNameU) Is Nothing Then
' Delete the rule.
ruleSet.Rules.Item(ruleNameU).Delete
End If
End Sub
Hinzufügen einer Regel aus der Zwischenablage
Zum Hinzufügen einer Regel zu einem Regelsatz, der AddRule() funktioniert Prozedur gezeigt zuvor. Allerdings müssen Sie entweder das Verfahren für die weitere Regeln bearbeiten oder kopieren Sie die Prozedur, benennen Sie Sie leicht und bearbeiten Sie die Argumente für die Prozedur addARule(). Wenn Sie diesen Ansatz verwenden, müssen Sie viele Variationen der AddRule() Prozedur im Modul.
Allerdings können auch Sie die Argumente in der Tabelle Microsoft Excel in einem Format ähnlich wie bei der Ausgabe in der oben aufgeführten EnumerateRulesets()-Methode eingeben. Sie können dann Ihre Argumente bearbeiten – insbesondere die Ausdrücke filtern und Test – in eine Excel-Zelle, wie in Abbildung 13 dargestellt.
Abbildung 13. Argumente in Excel bearbeiten
Dann verwenden Sie den folgenden Code, die Regeln aus Excel zu Ihrer Zeichnung hinzugefügt. Beachten Sie, dass diese Methode auf mehrere Zeilen funktioniert, aber es wird davon ausgegangen, dass eine Kopfzeile vorhanden ist, und diese Zeile überspringt, beginnend bei Zeile 2. Wenn die Tabelle keine Kopfzeile, passen Sie den Code entsprechend an.
' Adds rules to named rule set from Excel.
' To use this in a VBA project, add a reference to the "Microsoft Excel 14.0 Object Library".
Public Sub AddRulesFromExcel()
Dim xlWorkbook As Excel.Workbook
Dim doc As Visio.Document
Dim ruleSet As Visio.ValidationRuleSet
Dim nameu As String
nameu = "Fault Tree Analysis"
Dim category As String
Dim rulenameu As String
Dim description As String
Dim targettype As String
Dim filterexpression As String
Dim testexpression As String
Const categoryCol As Integer = 2
Const rulenameCol As Integer = 3
Const descriptionCol As Integer = 4
Const targettypeCol As Integer = 5
Const filterexpressionCol As Integer = 6
Const testexpressionCol As Integer = 7
Set doc = Visio.ActiveDocument
' Check whether the rule set exists already.
Set ruleSet = GetRuleSet(doc, nameu)
If ruleSet Is Nothing Then
Exit Sub
End If
' Get data from Excel.
' Assumes you have created an Excel spreadsheet at the path shown, that contains the rules you want to add,
' and with columns that correspond to the constants declared in this subroutine.
Dim xlApp As New Excel.Application
Set xlWorkbook = xlApp.Workbooks.Open("C:\Users\username\Documents\RuleList.xlsx")
On Error GoTo AddRulesFromExcel_Err
Dim xlWorkSheet As Excel.Worksheet
Set xlWorkSheet = xlWorkbook.Worksheets(1)
Dim numRows As Integer
numRows = xlWorkSheet.UsedRange.Rows.Count
' Assumes that a header row exists and skips over it.
For xlRow = 2 To numRows
category = xlWorkSheet.Cells(xlRow, categoryCol)
rulenameu = xlWorkSheet.Cells(xlRow, rulenameCol)
description = xlWorkSheet.Cells(xlRow, descriptionCol)
targettype = xlWorkSheet.Cells(xlRow, targettypeCol)
filterexpression = xlWorkSheet.Cells(xlRow, filterexpressionCol)
testexpression = xlWorkSheet.Cells(xlRow, testexpressionCol)
addARule ruleSet, category, rulenameu, description, targettype, filterexpression, testexpression
Next xlRow
AddRulesFromExcel_Err:
If (Err.Number) Then
Debug.Print Err.description
End If
xlWorkbook.Close
xlApp.Quit
End Sub
Beispiel: Erstellen einer Fault Tree Analysis-Regel festlegen.
Dieser Abschnitt beschreibt die neun Beispiel-Regeln, wie im Abschnitt Erstellen Sie einen neuen Regelsatz, eingeführt, die zu einem Diagramm FTA (Fault Tree Analysis) übernommen werden konnten. Können Sie entweder zuvor beschriebene Verfahren – AddRule() oder AddRuleFromExcel() – jede Regel hinzufügen, die in diesem Abschnitt aufgeführt ist.
Die Parameter sind in der richtigen Reihenfolge für kopieren und Einfügen in Excel aufgeführt. Des Transponieren Befehls können in Excel Sie um das Layout der einzelnen Regeln von vertikal auf horizontal zu wechseln. Die Regel in Excel einfügen, drücken Sie STRG + C zum Kopieren des eingefügten Bereichs mit der rechten Maustaste der Auswahl und klicken Sie dann unter EinfügeoptionenTransponieren.
Regel 1: Alle Connectors muss auf ein Shape an jedem Ende verbunden sein.
Das Flussdiagramm der Regeln in der Standardflussdiagramm Zeichnung bereits hat solcher eine Regel. Daher können Sie die Regel 1 aus der Standardsatz der Regel kopieren.
Category |
Konnektivität |
NameU |
UngluedConnector |
Description |
Connector ist an beiden Enden nicht geklebt. |
TargetType |
0 |
FilterExpression |
ROLLE () = 1 |
TestExpression |
AND(AGGCOUNT(GLUEDSHAPES(4)) = 1, AGGCOUNT(GLUEDSHAPES(5)) = 1) |
Der FilterExpression Wert bedeutet, dass nur eindimensional (1D-Shape) Verbinder-Shapes getestet werden. Der Wert TestExpression überprüft, dass eine einzelne zweidimensionale (2D) Form an beiden Enden des Connectors geklebt ist. Der Wert TargetType für diese Regel (und für alle anderen Regeln in diesem Artikel) ist der Standardwert visRuleTargetShape.
Abbildung 14. Jeder Connector muss an beiden Enden geklebt werden
Regel 2: Alle Ereignis-Shape muss gekennzeichnet werden.
Flussdiagramm der auch Regelsatz enthält eine Regel namens NoShapeText. In der Regel wird festgelegt, ändern Sie den Wert DescriptionEreignis-Shape hat keine Beschriftung.
Sie haben den Wert FilterExpression ändern, da die FTA Shapes keine Kategorien aufgerufen, benutzerdefinierte ShapeSheet-Zelle enthalten. Daher müssen Sie für die Namen der master speziell anstelle von HasCategory()-Funktion zu überprüfen. Der TestExpression-Wert bestimmt, ob Text im Shape vorhanden ist.
Category |
Text |
NameU |
NoShapeText |
Description |
Ereignis-Shape hat keine Beschriftung. |
TargetType |
0 |
FilterExpression |
OR (STRSAME (LEFT (MASTERNAME (750), 11), "Basic Ereignis"), STRSAME (LEFT (MASTERNAME (750), 17), "Sekundäres Ereignis"), STRSAME (LEFT (MASTERNAME (750), 5), "Ereignis"), STRSAME (LEFT (MASTERNAME (750), 11), "House-Ereignis"), STRSAME (LEFT (MASTERNAME (750), 17), "Bedingte Ereignis"))) |
TestExpression |
NOT(STRSAME(SHAPETEXT(TheText), "")) |
Um zu überprüfen, dass diese Regel funktioniert, können Sie zum Ignorieren der ersten Regel UngluedConnector, indem Sie mit der rechten Maustaste in das Fenster Probleme der ersten Regel, auf ignorieren dieser Regel klicken und dann auf Diagramm überprüfen.
Abbildung 15. Ereignis-Shape hat keine Beschriftung
Regel 3: Alle FTA Form muss auf eine andere Form der FTA verbunden sein.
Wie in den ersten beiden Regeln können Sie diese Regel (UnconnectedShape) aus dem Regelsatz Standardflussdiagramm kopieren. Ändern Sie den Wert Description, um FTA Shape nicht mit keiner anderen Form verbunden ist.
Wie bei der Regel NoShapeText, müssen Sie den Wert FilterExpression ergänzen, aber dieses Mal überprüft nur die Layerzuweisung verfügt. Der Wert TestExpression stellt sicher, dass verbundene Formen.
Sie könnten möglicherweise Erweitern dieser Regel an Namen für die master-Shapes, die verbunden sind.
Category |
Konnektivität |
NameU |
UnconnectedShape |
Description |
FTA Form ist nicht mit keiner anderen Form verbunden. |
TargetType |
0 |
FilterExpression |
ONLAYER("Flowchart") |
TestExpression |
AGGCOUNT(CONNECTEDSHAPES(0)) > 0 |
Testen Sie diese Regel, indem Sie nach dem Zufallsprinzip verschiedene FTA-Shapes verbinden.
In Abbildung 16. FTA Form ist nicht mit keiner anderen Form verbunden.
Regel 4: Ein sekundäres Ereignis sollten keine Verbindungen nach außen verfügen.
Es gibt keine vorhandenen Regelsatz, von dem Sie diese Regel kopieren können, so dass Sie Ihre eigene Regel schreiben.
Überprüft der Wert FilterExpression, ob ein sekundäres Ereignis-Shape getestet werden. Der Wert TestExpression überprüft, dass keine nach außen geklebten Verbinder sind.
Category |
Konnektivität |
NameU |
UndevelopedEventHasConnectionOut |
Description |
Undeveloped Ereignis-Shape sollten nicht nach außen Connectors verfügen. |
TargetType |
0 |
FilterExpression |
STRSAME (LEFT (MASTERNAME (750), 17), "Sekundäres Ereignis") |
TestExpression |
AGGCOUNT(GLUEDSHAPES(2)) = 0 |
Testen Sie Ihre Regel jetzt durch einen Connector nach außen, um ein sekundäres Ereignis-Shape Kleben.
In Abbildung 17. Sekundäres Ereignis sollten nicht mit einen nach außen gerichteten Connector verfügen.
Regel 5: Alle Gatter-Shape benötigen nur eine Eingabe.
Der Wert FilterExpression überprüft die Layer-Zuweisung und überprüft, ob alle Shapes Schaltungen sind getestet werden. Die TestExpression überprüft ein nach innen geklebten Verbinder.
Category |
Konnektivität |
NameU |
GateHasNoConnectionIn |
Description |
Gatter-Shape, müsste eine einen Verbindungspunkt nach innen. |
TargetType |
0 |
FilterExpression |
AND (ONLAYER ("Flussdiagramm") OR (STRSAME (LEFT (MASTERNAME (750), 7), "Oder-Gatter"), STRSAME (LEFT (MASTERNAME (750), 8), "Und-Gatter"), STRSAME (LEFT (MASTERNAME (750), 17), "Priorität und-Gatter"), STRSAME (LEFT (MASTERNAME (750), 17), "Ausschließendes oder-Gatter"), STRSAME (LEFT (MASTERNAME (750), 11), "Abstimmungs-Gate"), STRSAME (LEFT (MASTERNAME (750), 12), "Inhibit Gate"))) |
TestExpression |
AGGCOUNT(GLUEDSHAPES(1)) = 1 |
Testen Sie die Regel, dass überhaupt keinen Connector nach innen oder durch Hinzufügen von mehr als einen nach innen Connector auf ein Gatter-Shape an.
Abbildung 18. Gatter-Shape sollte eine nach innen Netzwerkverbindung verfügen.
Regel 6: Alle Gatter, außer das Tor Inhibit muss mindestens zwei Ausgaben verfügen.
Der Wert FilterExpression überprüft die Layer-Zuweisung und überprüft, ob alle Gatter-Shapes sind getestet werden. Der Wert TestExpression überprüft, dass mindestens zwei nach außen geklebten Verbinder sind.
Category |
Konnektivität |
NameU |
GateWithoutAtLeastTwoOutputs |
Description |
Gatter-Shape verfügt über weniger als zwei nach außen Connectors. |
TargetType |
0 |
FilterExpression |
AND (ONLAYER ("Flussdiagramm") OR (STRSAME (LEFT (MASTERNAME (750), 7), "Oder-Gatter"), STRSAME (LEFT (MASTERNAME (750), 8), "Und-Gatter"), STRSAME (LEFT (MASTERNAME (750), 17), "Priorität und-Gatter"), STRSAME (LEFT (MASTERNAME (750), 17), "Ausschließendes oder-Gatter"), STRSAME (LEFT (MASTERNAME (750), 11), "Abstimmungs-Gate"))) |
TestExpression |
AGGCOUNT(GLUEDSHAPES(2)) > 1 |
Testen Sie die Regel, indem Sie ein Gatter-Shape weniger als zwei nach außen Connectors hinzufügen.
Abbildung 19. Gatter-Shape verfügt über weniger als zwei nach außen connectors
Regel 7: Ein Tor Inhibit sollte eine nach außen Verbindung verfügen.
Die FilterExpression überprüft, dass ein Gatter-Shape Inhibit getestet werden. Die TestExpression überprüft nur ein nach außen geklebten Verbinder.
Category |
Konnektivität |
NameU |
InhibitGateNeedsOneOutput |
Description |
Behindern Gatter-Shape ein nach außen Connector haben sollte. |
TargetType |
0 |
FilterExpression |
STRSAME (LEFT (MASTERNAME (750), 12), "Inhibit Gate") |
TestExpression |
AGGCOUNT(GLUEDSHAPES(2)) = 1 |
Testen Sie die Regel, indem Sie ein Gatter-Shape Inhibit mehr als einen nach außen Connector hinzugefügt.
In Abbildung 20. Behindern Gatter-Shape müsste ein nach außen Connector
Regel 8: Ein Gatter, außer das Tor Inhibit muss mit mindestens drei Ereignissen verbunden werden.
Der Wert FilterExpression überprüft, dass ein Gatter-Shape, abgesehen von ein Tür-Shape Inhibit getestet werden. Der Wert TestExpression überprüft mindestens drei verbundenen Ereignisse vorhanden sind.
Category |
Konnektivität |
NameU |
GateMustConnectAtLeastThreeEvents |
Description |
Gatter-Shape verfügt über weniger als drei verbundenen Ereignisse. |
TargetType |
0 |
FilterExpression |
OR (STRSAME (LEFT (MASTERNAME (750), 7), "Oder-Gatter"), STRSAME (LEFT (MASTERNAME (750), 8), "Und-Gatter"), STRSAME (LEFT (MASTERNAME (750), 17), "Priorität und-Gatter"), STRSAME (LEFT (MASTERNAME (750), 17), "Ausschließendes oder-Gatter"), STRSAME (LEFT (MASTERNAME (750), 11), "Abstimmungs-Gate")) |
TestExpression |
AGGCOUNT(FILTERSET(CONNECTEDSHAPES(0), "OR (STRSAME (LEFT (MASTERNAME (750), 11), „" Basic Ereignis""), STRSAME (LEFT (MASTERNAME (750), 17),""Sekundäres Ereignis" "), STRSAME (LEFT (MASTERNAME (750), 5),""Ereignis" "), STRSAME (LEFT (MASTERNAME (750), 11),""Haus" Ereignis"), STRSAME (LEFT (MASTERNAME (750), 17),""bedingte Ereignis" "))")) > 2 |
Testen Sie die Regel, indem Sie weniger als drei Connectors an der Tür-Shapes hinzufügen.
Abbildung 21. Gatter-Shape verfügt über weniger als drei verbundenen Ereignisse
Regel 9: Ein Symbol Übertragung benötigen nur eine Verbindung.
Der Wert FilterExpression überprüft die Layer-Zuweisung und überprüft, ob eine Übertragung Symbol Form getestet werden. Der Wert TestExpression überprüft nur einen geklebten Verbinder.
Category |
Konnektivität |
NameU |
Übertragung |
Description |
Symbol-Shape Übertragung sollten einen Connector sein. |
TargetType |
0 |
FilterExpression |
AND (ONLAYER ("Flussdiagramm"), STRSAME (LEFT (MASTERNAME (750), 15), "Transfer Symbol")) |
TestExpression |
AGGCOUNT(GLUEDSHAPES(0)) = 1 |
Sie können die Regel, dass überhaupt keine Connectors oder durch Hinzufügen von mehr als einen Connector zu einem Symbol Übertragung testen.
Abbildung 22. Übertragung Symbol-Shape sollte einen Connector sein.
Veröffentlichen von Regeln
Regelsätze werden in Visio-Dokumente oder Vorlagen gespeichert. Beispielsweise können Sie als Fault Tree Validation Rules.vsd leere FTA Dokument speichern. Unabhängig davon, ob Sie ein Dokument oder eine Vorlage verwenden wird allen Zeichnungen auf Grundlage Ihrer Datei dem Regelsatz enthalten. Nachdem Sie VBA-Code, verwenden um die Regeln zu der Datei hinzufügen, können Sie bedenkenlos entfernen, dass Code zum Verkleinern der Zeichnungsdatei, und vermeiden die Anforderung zum Aktivieren von Makros in Zeichnungen, die aus der Vorlage erstellt werden.
Alternativ konnte Sie öffnen Sie eine vorhandene oder neue Zeichnung und importieren Sie dann die Regel festlegen, indem Sie auf den Pfeil Diagramm überprüfen auf Regeln importieren aus, und legen Sie dann die Regel auswählen (siehe Abbildung 23).
Abbildung 23. Importieren eines Regelsatzes
Schlussbemerkung
In diesem Artikel wird das Analysieren von vorhandenen Validierungsregeln Visio Premium 2010 und wie die Validation-API verwenden, um eigene Regeln und Regel erstellen auf um Diagramme zu überprüfen. Mithilfe der Gültigkeitsprüfung-API, können Sie vorhandene Regeln ändern, oder können Sie komplexe Regeln und Regelsätze in Code zum Überprüfen der Logik des benutzerdefinierten Diagramms.
Weitere Informationsquellen
Weitere Informationen zur Überprüfung von Diagramm in Visio 2010 finden Sie unter die folgenden Ressourcen.
Blog von Visio Einblicke
Erstellen Sie benutzerdefinierte Validierungsregeln für Visio (2010)
SharePoint-Workflow schreiben, in der Visio-Premium 2010 (Teil 1)
SharePoint-Workflow schreiben, in der Visio-Premium 2010 (Teil 2)
bVisual Blog
MSDN-Bibliothek
Informationen über die Autorin
David j. Parker ist ein Visio MVP und den Besitzer des bVisual Ltd. Er schreibt Lösungen für die Visualisierung von Daten in erster Linie mithilfe von Visio und Bing-Karten.
David schreibt ein normales Blog über Visio an bvisual.spaces.live.com, und er ist der Autor der Visualisierung von Informationen mit Microsoft Visio 2007. Er ist nur ein neues Buch Microsoft Visio 2010 Business Process Diagramming und Validierung, für Publishing Packt abgeschlossen.
Hinweis
Maschinelle Übersetzung Verzichtserklärung: Dieser Artikel wurde durch ein Computersystem ohne Eingriffe übersetzt. Microsoft bietet diese Computer Übersetzungen nicht englischen sprechen Benutzer Inhalte über Microsoft-Produkte, Dienste und Technologien nutzen können. Da Artikel Computers übersetzt wurde, kann Sie im Vokabular, Syntax oder Grammatik Fehler enthalten.