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:      MVP-MitwirkenderDavid 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

  1. Klicken Sie auf der Registerkarte Datei auf Optionen, klicken Sie auf Sicherheitscenter, und klicken Sie dann auf Einstellungen für das Sicherheitscenter.

  2. Klicken Sie im Dialogfeld Sicherheitscenter auf die Registerkarte Einstellungen für Makros.

  3. 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)

Registerkarte 'Prozess'

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)

Fenster 'Probleme'

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

Diagrammeingrenzung

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

Diagrammreihenfolge

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

Diagrammzuordnung

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

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

Schlüsselüberprüfungsobjekte, -methoden und -eigenschaften

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

Description

Gibt die Beschreibung für den Regelsatz ein.

Enabled

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.

Name

Gibt den Namen der Regelsatz, der in der Benutzeroberfläche (UI) angezeigt wird. Standardmäßig ist der Wert der NameU identisch.

NameU

Gibt den universellen Namen der Regelsatz.

Rules

Schlüsselt die Regeln im Regelsatz.

RuleSetFlags

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

Category

Repräsentiert den Text, der in der Spalte Kategorie des Fensters Probleme angezeigt wird.

Description

Gibt die Beschreibung der Regel, die Probleme im Fenster angezeigt wird.

FilterExpression

Gibt den logischen Ausdruck, der bestimmt, ob die Gültigkeitsregel einem Zielobjekt angewendet werden soll.

Ignored

Bestimmt, ob die Gültigkeitsregel derzeit ignoriert wird. In der Standardeinstellung werden die Regeln nicht ignoriert.

NameU

Gibt den universellen Namen der Regel an.

RuleSet

Gibt die Regel zurück, das die Regel enthält.

TargetType

Bestimmt den Zieltyp der Regel. Eine Regel kann Dokumente, Seiten oder Formen abzielen.

Der Eigenschaftenwert TargetType muss eine der folgenden VisRuleTargets-Konstanten sein:

  • visRuleTargetShape = 0

  • visRuleTargetPage = 1

  • visRuleTargetDocument = 2

TestExpression

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

Ignored

Bestimmt, ob das Problem momentan ignoriert wird.

Rule

Gibt die Regel, die das Problem generiert.

TargetPage

Gibt die Seite an, die mit dem Problem verknüpft ist.

TargetPageID

Gibt die ID der Seite, die die Validierung-Problem zugeordnet ist.

TargetShape

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

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

  1. Öffnen Sie eine Vorlage Standardflussdiagramm aus der Kategorie Flussdiagramm, wie in Abbildung 9 dargestellt.

    Abbildung 9. Grundlegende Flussdiagramm-Vorlage

    Vorlage für Standardflussdiagramm

  2. Stellen Sie sicher, dass die Registerkarte Entwickler in Visio angezeigt wird:

    1. Klicken Sie auf Optionen, klicken Sie auf die Registerkarte Datei.

    2. Klicken Sie im Dialogfeld Optionen für Visio klicken Sie auf die Registerkarte Erweitert.

    3. Aktivieren Sie unter Allgemeinim Entwicklermodus ausführen.

  3. Klicken Sie auf der Registerkarte EntwicklerVisual Basic auf Öffnen Sie den VBA-Editor zu, und fügen Sie ein Modul in das VBA-Projekt.

  4. 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

    Microsoft Forms-Verweis

  5. 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:

  • Element = 0

  • Verbindung = 1

  • Container = 2

  • Legende = 4

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:

  • visConnectedShapesAllNodes = 0

  • visConnectedShapesIncomingNodes = 1

  • visConnectedShapesOutgoingNodes = 2

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:

  • visGluedShapesAll1D = 0

  • visGluedShapesIncoming1D = 1

  • visGluedShapesOutgoing1D = 2

  • visGluedShapesAll2D = 3

  • visGluedShapesIncoming2D = 4

  • visGluedShapesOutgoing2D = 5

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

Fehlerstrukturanalyse-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

Shapeebenen

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

Bearbeiten von Argumenten in Excel

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

Jeder Verbinder muss an beiden Enden verbunden sein

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

Ereignis-Shape hat keine Textbeschriftung

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.

FTA-Shape ist mit keiner anderen Shape 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.

Kein ausgehender Verbinder für sekundäre Ereignisse

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.

Gatter-Shape sollte eine Verbindung nach innen haben

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

Gatter-Shape hat weniger als zwei ausgehende Verbinder

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

Nur eine ausgehende Verbindung für Sperrgatter

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

Gatter-Shape hat weniger als drei verbundene 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.

Transfersymbol-Shape sollte einen Verbinder haben

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

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

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.