Objektgruppe von Objekten mit Schlüssel
Die Gruppe nimmt zu jedem (unterschiedlichen) Wert des Schlüsselattributes einen Repräsentanten in die Gruppe auf und zählt das Vorkommen.
Jedes Hinzufügen eines weiteren Objektes mit diesem Schlüsselattribut-Wert erhöht den Mengenzähler um 1. Durch das Attribut <Quantity-ID> kann der Mengenzähler um einen selbst definierten Wert erhöht werden. Um explizit zu steuern, ob ein Objekt behandelt werden soll, kann das Attribut <Use-ID> verwendet werden.
Schlüsselkennung GK | Behandlung von Objektgruppen von Objekten mit Schlüssel | ||
Syntax: GK ( k [ e ] ["<Key-Format>"] <Key-ID> [ :<Quantity-ID> [ :<Use-ID> ] ] ) | a | ( q [ 0 ] ["<Format>"] ) | ( qk [ 0 ] "Key>" [ :"<Format>"] ) | t | c; | |||
k | Objektgruppe definieren | ||
e | Leere Schlüsselattribut-Werte sollen ignoriert werden. | ||
Key-ID | Schlüsselattribut, über das die Werte der Gruppe bestimmt werden. < aid > | <("<Data Service>")>
| ||
Key-Format | Festlegung, welcher Teil des Schlüsselattibuts den Schlüssel bildet.
Beispiel Schlüsselattribut: ".AAAAAA 23 BBBB" | ||
"%S%d" | Schlüssel: Zeichenfolge direkt vor der Zahl Beispiel: ".%S%d"Die Zeichenfolge muss mit "."beginnen und aus einer Zeichenfolge mit nachfolgender Zahl bestehen. Schlüssel = "AAAAAA"(ohne Punkt) | ||
"%s%D" | Schlüssel: Zahlenteil des Attributs Beispiel: ".%s%D" Die Zeichenfolge muss mit "." beginnen und aus einer Zeichenfolge mit nachfolgender Zahl bestehen. Schlüssel = "23" (ohne Punkt) | ||
"%s%d%S" | Schlüssel: Zeichenfolge direkt hinter der Zahl Beispiel: ".%s%d%S" Die Zeichenfolge muss mit "." beginnen und aus einer Zeichenfolge, nachfolgender Zahl und einer weiteren Zeichenfolge bestehen. Schlüssel = "BBBB" (ohne Punkt) | ||
Quantity-ID | Zählwertvorgabe (optional) < aid > | <("<Data Service>")>
| ||
Use-ID | Schalterattribut (optional) < aid > | <("<Data Service>")>
| ||
a | Objekt in die Gruppe hinzufügen. | ||
q | Mengenzähler zu Objekt lesen. | ||
q0 | Zähler mit dem Wert "0" werden nicht ausgegeben. | ||
q"<Format>" | Steuerung der Zahlenausgabe bei Abfrage der Anzahl. | ||
"<Key>" | Direkte Abfrage eines Zählers zu einem Schlüsselwert. | ||
qk0 | Zähler mit dem Wert "0" werden nicht ausgegeben. | ||
t | Gibt den Schlüsseltext aus. | ||
c | Die Gruppe wird geleert und deinitialisiert. | ||
Für die Nutzung der Gruppierung mit Schlüsselattribut-Werten muss die Zeilenformel folgendermaßen aufgebaut werden:
[+ GKk<Key-ID>; … Objektselektionen .. ;GKa; …. ;]RO; Ausgabe (inkl. GKq);
- GKk<Key-ID>: Definition und Initialisierung der Gruppenbehandlung auf Basis des Attributwerts von Key-ID.
- Objektselektion: Durch Navigation über Aggregationen und Relationen werden die relevanten Zielobjekte ausgewählt.
- GKa: Markierung des aktuellen Objekts als Objekt der Gruppe. Von diesem Objekt wird das Gruppenattribut gelesen; dabei werden die definierten Regeln von <Quantity-ID> und <Use-ID> berücksichtigt.
- ]RO;: Markiert das Sektionsende; danach erfolgt die Ausgabe. Die aufgenommenen Objekte in der Gruppe bilden die Ergebnismenge, über die gezählt wird.
- Ausgabe: Aufbereitung der Textausgabe auf Basis des ersten gefundenen Objektes dieser Gruppe; der Zugriff auf die Gruppenanzahl geschieht durch das Statement GKq;. Hierbei wird der Mengenwert über die aktuelle Instanz und nicht über den Schlüsselwert des aktuellen Objektes bestimmt. Attribut-ID als Nummer oder Data Service.
Beispiel für eine Gerätetabelle
[+GKk7; | R100:113; | GKa;Oj; | ] RO; | A7;": "; | GKq; | "\a"; |
Gruppierung der Daten über den Typ (AID=7). | ||||||
Alle Geräte einer Funktion sollen gesucht werden. | ||||||
Markierung des aktuellen Objekts als Objekt der Gruppe. | ||||||
Markiert das Ende der Objektsammlung; danach erfolgt die Ausgabe. | ||||||
Ausgabe des Objekttyps | ||||||
Wiederholung über die Gruppenelemente; Aufbereitung der Textausgabe | ||||||
Ausgabe der Ergebniszeilen | ||||||
Beispiel für die Verwendung der Formel - Betriebsmittelliste
Struktur im Systeme-Ordner
Definition der Tabelle. Der Textblock mit der Formel ist als Formelattribut definiert.
Ergebnis:


