Bislang haben wir Steuerungen kennen gelernt, mit denen man den Wert eines Objektes oder Merkmales automatisiert festlegen kann. Eine weitere Möglichkeit ist der Einsatz von Entscheidungstabellen.
Um die Funktionsweise kennen zu lernen, führen wir einige Modifikationen an der Wissensbasis durch. Wir modifizieren die Klasse Sigma Leuchtmittel, die bereits angelegt wurde, jedoch noch keine Inhalte aufweist.
Wir überlegen, dass für unser Produkt unterschiedliche Leuchtmittel zum Einsatz kommen können. Je nach Ausführung der Lampe kommen unterschiedliche Fassungsträger zum Einsatz. Und damit müssen auch unterschiedliche Anzahlen an Leuchtmitteln beigelegt werden. Darüber hinaus muss ein Netzteil passend zur voraussichtlichen Zahl und Leistung der Leuchtmittel gefunden werden.
Für diese Aufgabe legen wird zunächst ein Merkmal [Anzahl Fassungen] vom Typ Long an, welches die Anzahl der Lampenfassungen aufnehmen soll:
Als nächste brauchen wir ein Merkmal Leuchtmittel vom Typ String, für die möglichen wählbaren Leuchtmittel.
Das Merkmal erhält zusätzlich zu dem Wert noch Code-Werte. Diese benötigen wir um den Leistungsbedarf der Lampe zu berechnen.
Ein weiteres Merkmal Leistung vom Typ Double wird benötigt, um die Leistungsaufnahme zu ermitteln:
Der Get-Event wird mit folgendem Programmcode gefüllt:
Function Get(ByRef Value As Double) As Void
Value := Leuchtmittel.Code * [Anzahl Fassungen]
End Function
Nun werden noch Materialien benötigt, die aus den Merkmalen ermittelt werden:
Wir legen ein Objekt [Material Leuchtmittel] von der Klasse Material an und setzen über eine Steuerung die Klassen für das Objekt.
Danach legen wir ein weiteres Objekt [Material Lampenfassung] an:
Nun haben wir alle Requisiten beisammen, um die Klasse „zum spielen“ zu bekommen. Moment, sagen Sie, es fehlt noch das Material der Lampenfassung, die Anzahl der Leuchtkörper?
Hier kommt nun eine Entscheidungstabelle ins Spiel:
Es können mehrere Eingangsspalten und Ausgangsspalten definiert werden. Durch Doppelklick auf den Kopf einer Spalte wird für jede Spalte eine Steuervariable angegeben.
In der Entscheidungstabelle Fassungen ist die Eingangsspalte über die Objektreferenz Sigma definiert. Die Entscheidungstabelle prüft Zeile für Zeile von oben nach unten auf das Zutreffen aller Felder der Eingangsspalten, hier also, ob das Vaterobjekt ein Sigma 25, Sigma 50 oder Sigma 75 ist.
Nehmen wir an, wir haben uns zur Laufzeit für ein Sigma 50 Objekt entschieden, dann wird der Reihe nach für jede Ausgangsspalte das Feld der gefundenen Zeile abgearbeitet. Das Merkmal [Anzahl Fassungen] erhält den Wert 2, Das Merkmal Anzahl des Objektes [Material Leuchtmittel] erhält den Wert 2 und das Objekt [Material Lampenfassung] wird mit der Klasse 476155 initialisiert.
Jetzt können Sie das Formular der Klasse Sigma Leuchtmittel anpassen.
Das Objekt für das erforderliche Netzteil für die Lampe können Sie in der Klasse Sigma anlegen.