Dictionaries

 

Dictionaries verfügen über genau eine indizierte Schlüsselspalte und eine oder mehrere Wertespalten.

Die Vorteile von Dictionaries sind:

      Sehr schnelle Existenzprüfung eines Wertes der Schlüsselspalte

      Sehr schnelle Ermittlung von Werten der Ausdrücke der Wertespalten über einen Schlüssel

 

In diesem Beispiel wird ein Dictionary dazu verwendet, ein Bild dem Objekt Sigma Leuchtenschirm zuzuordnen.

Zuerst werden die Bilder der unterschiedlichen Schirme in einer Konstantengruppe abgelegt:

 

Danach legen wir ein Dictionary mit dem Namen DicPictures an:

Das Dictionary bekommt folgenden Inhalt:

Danach legen wir ein Picture-Control auf das Formular der Klasse. Das Steuerelement ist Bestandteil der TCE Picture Controls. Die Typelibrary wird über die Eigenschaften der Wissensbasis hinzugewählt.

Das Picture Steuerelement erhält folgende Steuervariable:

Es wird mit diesem Ausdruck über den Wert der Farbe in der Schlüsselspalte nach einem Treffer gesucht und der Wert in der Spalte Value zurückgegeben.

Sie sollten folgendes Ergebnis erzielen:

 

Das Dictionary spielt seine Fähigkeiten natürlich erst bei hohen Datenmengen aus, die in unserem kleinen Beispiel nicht umsetzbar sind:

Beispiele für den Einsatz sind beispielsweise:

RAL-Farbcodes (200-300 Einträge)

 

Auch vorstellbar ist der Einsatz eines Dictionaries für erweiterte Code-Spalten für Merkmale, hier zum Beispiel zur Ableitung von Schnittstellenwerten von einem gegebenen Code-Wert eines Merkmals:

 

In diesem Beispiel wird vorausgesetzt, dass ein Merkmal Farbe existiert, in dem drei Farben in der Pickliste mit den Codes 1, 2 und 3 definiert sind. Im Objekt Start steht ein Merkmal, in dem der Name des ERP mit den möglichen Werten SAP, Oracle oder ABAS belegt ist. Der Abruf der Daten könnte so aussehen:

a)    indirekt über eine Referenz-Variable Ref. Der Name des Dictionaries ist in einer Textkonstanten mit dem Namen Interface.ColorDictionary hinterlegt. Hier wird der zu interpretierende Ausdruck über einen String zusammengebaut. Der Wert des Ausdruckes kann dann über die Variable Ref direkt abgerufen werden.

   Dim Ref As Reference

  

   Ref.Expression := Interface.ColorDictionary & ".ValueOfKey(|Farbe.Code|, '|Start.ERP|')"

   Value := Ref

 

b)    direkt

   Value := [Interface Farbe].ValueOfKey(Farbe.Code, Start.ERP)"