Voraussetzung
-
Die TIA Portal Openness-Anwendung ist mit dem TIA Portal verbunden. Weitere Informationen zu Verbindungen finden Sie im Benutzerhandbuch zum TIA Portal.
-
Ein TIA Portal-Projekt mit Bildregeltabelle, Bildregeln und Bildregelgruppen ist vorhanden.
Suchen von Bildregelgruppen in Bildgruppen
Fall 1: Suchen von Bildregeln in der Bildregeltabelle.
Mit der folgenden API sivarc.ScreenRules.Rules können Sie die verfügbaren Regeln in der SiVArc-Bildregeltabelle wie nachfolgend gezeigt suchen:
//Sammlung sämtlicher direkter Bildregeln der ersten Ebene
|
ScreenRuleComposition screenRules = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules; if (screenRules != null && screenRules.Count > 0) { //Suchen von Bildregel ScreenRule rule = screenRules.Find("Screen rule_7"); if (rule != null) { Console.WriteLine("Screen Rule Name: " + rule.Name); Console.WriteLine("Screen Rule Comment: " + rule.Comment); Console.WriteLine("Screen Rule Enabled: " + rule.Enabled); Console.WriteLine("Screen Rule Condition: " + rule.Condition); } } |
Fall 2: Suchen von Bildregelgruppen in der Bildregeltabelle.
Mit der folgenden API sivarc.ScreenRule.Groups können Sie die verfügbaren Regeln und Regelgruppen in der SiVArc-Bildregeltabelle wie nachfolgend gezeigt suchen:
|
var groups = sivarc.ScreenRules.Tables.Find("Default screen rule table").Groups; if (groups != null && groups.Count > 0) { ScreenRule rule = groups.Find("Screen rule_group").Rules.Find("Screen rule_2"); if (rule != null) { Console.WriteLine("Found Screen Rule Name: " + rule.Name); Console.WriteLine("Found Screen Rule Comment: " + rule.Comment); Console.WriteLine("Found Screen Rule Enabled: " + rule.Enabled); Console.WriteLine("Found Screen Rule Condition: " + rule.Condition); } var group = groups.Find("Screen rule_group").Groups.Find("Screen rule group_2"); if(group != null) { Console.WriteLine("Found Screen Rule Group Name: " + group.Name); Console.WriteLine("Found Screen Rule Group Comment: " + group.Comment); Console.WriteLine("Found Screen Rule Group Enabled: " + group.Enabled); Console.WriteLine("Found Screen Rule Group Condition: " + group.Condition); } |
Projektieren der Eigenschaft Condition Operator
Sie können die Eigenschaft Condition Operator der Bildregel in der Bildregeltabelle wie nachfolgend gezeigt projektieren:
ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Groups.Find("Screen rule group_1).Rules.Find("Screen rule_2");
if (screenRule ! = null)
{
screenRule.ConditionOperator = ConditionOperator.GreaterThan;
}
Die API screenRuleGroup.ConditionOperator wird zum Projektieren der Eigenschaft Condition Operator in der Bildregeltabelle verwendet.
-
Bei Bildregeln gilt: Wenn Sie auf eine Bildregel zugreifen, bei der die Eigenschaft Condition Operator nicht vorhanden ist, gibt das System den Wert
ConditionOperator.Nonezurück.-
Wenn Sie auf eine Bildregel zugreifen, bei der die Eigenschaft Condition Operator nicht vorhanden ist, gibt das System den Wert
ConditionOperator.Nonezurück. -
Wenn Sie einen anderen Condition Operator-Wert für den oben erwähnten Regeltyp festlegen, zeigt das System eine wiederherstellbare Ausnahme an
-
-
Bei Bildregelgruppen
ConditionOperator.Andgibt das System eine wiederherstellbare Ausnahme zurück.
Projektieren von Layoutfeldern
Die API GetLayoutFields wird zum Projektieren von Layoutfeldern im Bildregeleditor verwendet, wie nachfolgend gezeigt:
ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("Screen rule");
{
var layoutFields = screenRule.GetLayoutFields();
foreach (var layoutField in layoutFields)
{
if (layoutField.Equals("TestLayoutField"))
{
screenRule.LayoutField = layoutField;
}
}
}
screenRule.LayoutField schreibt den Wert in das Layoutfeld.
Um Layoutfelder für die Bildregel zu aktualisieren, verwenden Sie den nachfolgenden Code:
if (screenRule ! = null)
{
ScreenRule screenRule = sivarc.ScreenRules.Tables.Find("Default screen rule table").Rules.Find("Screen rule group_1;
IList<string> layoutFields = screenRule ?. GetLayoutFields() . ToList();
{
if (layoutFields ?.Count > 1)
{
screenRule.LayoutField = layoutfields[0];
}
}
|
Hinweis In ähnlicher Weise können Sie das Positionierungsfeld für die Bildregelgruppe konfigurieren. |