2.179 .label[anyvalue]
Dieses Attribut können Identifikatoren von bestimmten IDM Elementen wie bspw. Methoden oder benutzerdefinierten Attributen von Objekten oder Argumente von Funktionen erfragt werden. Ebenso können durch dieses Attribut Typkonvertierungen vorgenommen werden.
Definition
-
Datentyp
string, attribute, method,
object [ text, instance ],
enum, class, event, type,
boolean -
Zugriff
get
-
changed-Ereignis
ja

-
C
Datentyp: DT_string, DT_text, DT_instance, DT_attribute, DT_method, DT_enum, DT_event, DT_class, DT_type, DT_boolean
-
COBOL
Datentyp: DT-string, DT-text, DT-instance, DT-attribute, DT-method, DT-enum, DT-event, DT-class, DT-type, DT-boolean
-
Klassifizierung
Standardattribut
Argumente von Funktionen
Bei Funktionen kann man über diesen Attribut die Bezeichner der Argumente an einer bestimmten Stelle erfragen.
Als Index wird dabei die Position des Arguments beim Funktionsaufruf angegeben.
Ein Aufruf erfolgt nach folgendem Schema:
string := function.label[integer]
Benutzerdefinierte Attribute und Methoden
Von einem Objekt können benutzerdefinierte Attribute und Methoden erfragt werden, indem der Name als Indexstring übergeben wird.
Ein Aufruf erfolgt dabei nach folgendem Schema:
attribute := object.label[string]
method := object.label[string]
Dabei gilt folgende Unterscheidung:
- Indexstring beginnt mit einem
.
: man erhält das benutzerdefinierte Attribut des Objektes - Indexstring beginnt mit einem
:
: man erhält die benutzerdefinierte Methode des Objektes
Über dieses Attribut können ebenso Typkonvertierungen der folgenden Datentypen vorgenommen werden:
- attribute
- method
- enum
- class
- event
- datatype
- boolean
Eine Konvertierung kann dabei in in beide Richtungen erfolgen:
type := object.label["type-string"]
"type-string" := object.label[type]
Beispiel
dialog D function boolean Func(string Path, object Id) { return false; } window Wi { integer MySum := 512; rule void MyRule (string S) { print "Method called with: "+S; } } on dialog start { variable method M; variable attribute A; !! query parameters print Func.label[1]; // result: "Path" print Func.label[2]; // result: "Id" !! retrieve userdefined attributes and methods M := Wi.label[":MyRule"]; Wi:call(M, "Hello"); // result: "Method called with: Hello" A := Wi.label[".MySum"]; Wi.type[A] := string; !! type conversions print this.label[button_ok]; // result: "button_ok" print this.label["button_ok"]; // result: button_ok (enum) print Wi.label[".MySum"]; // result: .MySum (attribute) print Wi.label[.MySum]; // result: "MySum" print Wi.label[:MyRule]; // result: "MyRule" print this.label[window]; // result: "window" print this.label["window"]; // result: window (class) print this.label[select]; // result: "select" print this.label["select"]; // result: select (event) }