Compound

Das Compound dient der Darstellung von Mehrfachattributen, also von allen Attributen, für die man mehrere Datensätze anlegen kann. Dies können sowohl einzelne als auch zusammengesetzte Attribute sein.

Abbildung 1. Beispiel für ein Compound:


Das Compound verfügt über eine Kopfzeile, die auf der linken Seite die Bezeichnung des Compounds und Informationen zur Anzahl der gespeicherten Datensätze und zur Nummer des angezeigten Datensatzes enthält, und auf der rechten Seite Schaltflächen zur Verwendung des Compounds.



Über die Schaltflächen + und X können Sie neue Datensätze hinzufügen und löschen und über die Pfeiltasten können Sie zwischen den einzelnen Datensätzen hin und her navigieren.

Das Compound bildet einen Rahmen, in dem die dort angezeigten Controls als dem Compound untergeordnete Controls angelegt werden.

Sie müssen also zuerst das Compound im Dialog platzieren und anschließend die gewünschten Controls innerhalb des Compounds anlegen. Die untergeordneten Controls können Sie dann innerhalb des Compounds beliebig platzieren. Die Position wird dabei relativ zum Rahmen des Compounds angegeben.

Wenn Sie das Compound nutzen, um ein zusammengesetztes Attribut darzustellen, müssen die untergeordneten Controls zudem mit diesem Attribut verknüpft werden.

Verknüpfen Sie dazu das Compound mit dem gewünschten zusammengesetzten Attribut. Durch die Verknüpfung wird der Anzeigename des Attributs automatisch als Bezeichnung für das Compound verwendet und links oben in der Kopfzeile angezeigt.



Verknüpfen Sie anschließend die untergeordneten Controls der GroupBox mit den einzelnen Attributen des zusammengesetzten Attributs. Durch die Verknüpfung der GroupBox mit dem Attribut werden Ihnen hier nur noch die einzelnen Attribute des zusammengesetzten Attributs zur Auswahl angezeigt.

Eigenschaften

Neben den Standard-Eigenschaften hat dieses Control die folgenden Eigenschaften:

AllowAddNew

Diese Eigenschaft bestimmt, ob im Compound Datensätze hinzugefügt werden dürfen.

Typ Boolean
Werte True = Im Compound dürfen Datensätze hinzugefügt werden.

False = Im Compound dürfen keine Datensätze hinzugefügt werden. Die Schaltfläche zum Hinzufügen von Datensätze ist deaktiviert.



AllowDelete

Diese Eigenschaft bestimmt, ob ein einmal hinzugefügter Datensatz im Compound wieder gelöscht werden darf oder nicht.

Typ Boolean
Werte True = Die Datensätze des Compounds dürfen gelöscht werden.

False = Ein einmal hinzugefügter Datensatz darf nicht gelöscht werden. Die Schaltfläche zum Löschen der Datensätze ist deaktiviert.

OCID

Diese Eigenschaft gibt für den im Compound ausgewählten Datensatz eine innerhalb des Compounds eindeutige ID an. So kann jedes einzelne im Compound enthaltene Element referenziert werden.

Typ Zahl
Werte Ganze Zahl
Beispiel: Die E-Mail-Adresse des aktuell ausgewählten Datensatzes im Compound-Control soll ausgelesen werden:

Email = hlObj.GetValue("CommunicationGeneral.Email_CA.Email",0,CompoundControl.OCID,0,0)

TableViewHeaderHeight

Diese Eigenschaft bestimmt die Höhe der Kopfzeile der Tabelle, in der die Datensätze angezeigt werden, wenn Sie für die Eigenschaft „ViewMode“ den Wert „TableView“ gesetzt haben.

Typ Zahl
Werte Natürliche Zahl (Pixelangabe)

TableViewItems

Wenn für die Eigenschaft „ViewMode“ der Wert „TableView“ gesetzt wurde, wird das Compound als Tabelle dargestellt.

Über diese Eigenschaft definieren Sie, welche Inhalte in den Spalten dieser Tabelle angezeigt werden sollen. Dabei können zum einen die Attribute des zusammengesetzten Attributs als Spalten angezeigt werden, zum anderen können Sie für eine Spalte eine Suche definieren, deren Ergebnisse in der Spalte angezeigt werden.

Wählen Sie die Schaltfläche ... am Ende der Zeile an.



Der Dialog Auswahl der Attribute wird geöffnet.



Auf der linken Seite können Sie über die Schaltflächen Hinzufügen und Entfernen neue Spalten hinzufügen oder bestehende löschen. Die neuen Spalten erhalten zunächst den Standardnamen „[Undefiniert]“.



Über die Pfeilschaltflächen können Sie außerdem die Reihenfolge ändern, in der die Spalten in der Tabelle angezeigt werden.

Anmerkung: Im Gegensatz zu „normalen“ Tabellen können Sie in der Tabelle im Compound die Spalten später nicht mehr umsortieren. Daher müssen Sie die Reihenfolge der Spalten bereits hier endgültig festlegen.

Die Events und Eigenschaften der auf der linken Seite markierten Spalten werden jeweils auf der rechten Seite des Dialogs angezeigt.



Diese können Sie genau wie die Eigenschaften der Controls bearbeiten.

Folgende Events werden unterstützt:

CellValueChanged Dieses Event tritt ein, wenn sich in dieser Spalte ein Wert in einer Zelle geändert hat.

Folgende Einstellungen können Sie über die einzelnen Eigenschaften machen:

AttributeKey Über diese Eigenschaft verknüpfen Sie die Spalte mit dem Attribut, das in der Tabelle dargestellt werden soll.

Wählen Sie dazu auf die Schaltfläche am Ende der Zeile an.

Der Dialog Attribut wird geöffnet.



Hier werden Ihnen nur die Attribute angezeigt, die zu dem zusammengesetzten Attribut gehören, das mit dem Compound verknüpft ist.

Wählen Sie hier das Attribut aus, dessen Werte in einer Spalte in der Tabelle angezeigt werden sollen, und wählen Sie anschließend die Schaltfläche OK.

Anmerkung: Der Anzeigename des hier ausgewählten Attributs wird automatisch als Spaltenüberschrift verwendet. Wenn Sie eine andere Spaltenüberschrift verwenden wollen, können Sie diese über die Eigenschaft „Text“ eingeben.
ColumnType Diese Eigenschaft bestimmt, ob der Spaltentyp automatisch anhand des AttributeKey ermittelt wird (Wert=„Auto“) oder ob es sich um eine Spalte handelt, in der eine Suche ausgeführt wird (Wert=„Search“).
ColumnWidth Diese Eigenschaft bestimmt die Breite der Spalte in Pixeln.
IsReadOnly Diese Eigenschaft bestimmt, ob die Spalte später im Dialog schreibgeschützt angezeigt wird.

True = Die Spalte wird schreibgeschützt angezeigt.

False = Die Werte in der Spalte können bearbeitet werden.

PasswordChar Mit dieser Eigenschaft können Sie ein einzelnes Zeichen festlegen, das als Platzhalter für die Zeichen angezeigt werden soll, die für dieses Attribut eingegeben werden.
Search Diese Eigenschaft fasst die Eigenschaften zusammen, die dazu dienen, für eine Spalte, für die „ColumnType=Search“ gesetzt ist, die Suche zu definieren, mit der die Einträge ermittelt werden, die in der Spalte angezeigt werden.

Die Funktionsweise dieser Eigenschten ist dieselbe wie die der unter der Eigenschaft Search zusammengefassten Eigenschaften in der ComboBox:

  • AttributeKeyDefID

  • AttributeKeyName

  • SearchAttributeKey

  • SearchCondition

  • SearchObjects

Text Über diese Eigenschaft können Sie eine alternative Spaltenüberschrift definieren, wenn Sie nicht den Anzeigenamen des Attributs verwenden wollen.

Über die Schaltfläche am Ende der Zeile können Sie zudem den Dialog Übersetzung öffnen, in dem Sie den Spaltennamen auch für die anderen Sprachen Ihres Systems angeben können.

TitleTextcolor

Diese Eigenschaft bestimmt die Schriftfarbe des Texts, der in der Kopfzeile des Compounds angezeigt wird.



Typ Farbe
Werte Ausgewählte oder benutzerdefinierte Farbe aus der Farbpalette

TableViewSelectionMode

Diese Eigenschaft bestimmt, ob Sie in der Tabelle, die angezeigt wird, wenn Sie für die Eigenschaft „ViewMode“ den Wert „TableView“ gesetzt haben, einzelne Felder einer Spalte und mehrere Felder auf einmal markieren können.

Typ Auswahlliste
Werte Default = Es kann immer nur eine komplette Zeile markiert werden.

Extended = Die Felder der Spalten können einzeln markiert werden und es können bei Gedrückthalten der STRG-Taste mehrere Felder auf einmal markiert werden.

Anmerkung: Eine Mehrfachauswahl ist nur bei gleichartigen Attributtypen sinnvoll. Wenn Sie also mehrere Felder markieren, können Sie per Copy & Paste alle markierten Felder gleichzeitig füllen.

ViewMode

Diese Eigenschaft bestimmt, ob das Compound in Form von einzelnen Controls oder als Tabelle dargestellt wird.

Typ Auswahlliste
Werte FormView = Das Compound wird in Form von einzelnen Controls dargestellt.


Werte TableView = Das Compound wird als Tabelle dargestellt.

Diese Darstellung ist dann sinnvol, wenn es Ihnen wichtig ist, alle Datensätze des Mehrfachattributs auf einen Blick sehen zu können.



Anmerkung: Weil Sie in einer Tabelle keine separaten Felder für die Anzeige der Attribute brauchen, müssen Sie bei Auswahl dieser Ansicht keine untergeordneten Controls zu dem Compound hinzufügen (falls noch nicht geschehen), sondern können einfach über die Eigenschaft „TableViewItems“ definieren, welche Attribute im Compound angezeigt werden sollen.

Events

AfterAdd

Dieses Event tritt ein, nachdem ein neuer Datensatz hinzugefügt wurde.

AfterNext

Dieses Event tritt ein, nachem zum nächsten Datensatz gewechselt wurde.

AfterPrev

Dieses Event tritt ein, nachdem zum vorherigen Datensatz gewechselt wurde.

AfterRemove

Dieses Event tritt ein, nachdem ein Datensatz gelöscht wurde.

BeforeAdd

Dieses Event tritt ein, bevor ein neuer Datensatz hinzugefügt wird.

BeforeCellEdit

Dieses Event tritt in der Tabellenansicht („ViewMode=TableView“) ein, wenn eine im Compound-Control enthaltene ComboBox zur Bearbeitung ausgewählt wird.

Anmerkung: Dieses Event wird nur in ClassicDesk unterstützt.

BeforeNext

Dieses Event tritt ein, bevor zum nächsten Datensatz gewechselt wird.

BeforePrev

Dieses Event tritt ein, bevor zum vorherigen Datensatz gewechselt wird.

BeforeRemove

Dieses Event tritt ein, bevor ein Datensatz gelöscht wird.

Methoden

SetTableViewItemSearchCondition

Wenn für die Eigenschaft „ViewMode“ der Wert „TableView“ gesetzt wurde, wird das Compound als Tabelle dargestellt.

Diese Methode bestimmt die Suche, die in einer Spalte mit dem Wert „ColumnType=Search“ ausgeführt wird, um die Einträge zu ermitteln, die in der Spalte angezeigt werden sollen.

Syntax SetTableViewItemSearchCondition(column,condition)
Parameter column: Nummer der Spalte, in der die Suche ausgeführt werden soll. Die Spaltennummern sind 0-basiert, d. h. die erste Spalte hat die Nummer 0, die zweite die Nummer 1 usw.

condition: Suchbedingung als Zeichenkette

Die Suchbedingung muss im selben Format eingegeben werden wie z. B. im Textmodus bei der Erstellung eines Ad-Hoc Reports.

SetTableViewItemSearchProperties

Diese Methode ändert die Eigenschaft „Search“ so ab, dass sie dynamisch während der Laufzeit des Dialogs die Ergebnisse auf die geänderte Suchbedingung anpasst.

Syntax SetTableViewItemSearchProperties(int column, string searchCondition, object[] searchObjects, string searchAttributeKey, string attributeKeyDefId, string attributeKeyName)
Parameter column: Nummer der Spalte, in der die Suche ausgeführt werden soll. Die Spaltennummern starten bei 0, d. h. die erste Spalte hat die Nummer 0.

searchCondition Die Suchbedingung für die auszuführende Suche.

searchObjects Array der Namen der Objektdefinitionen, in denen gesucht werden soll.

searchAttributeKey Attribut, das in der Dropdownliste angezeigt werden soll.

attributeKeyDefID Attribut, in dem die DefId des ausgewählten Objekts gespeichert wird.

attributeKeyName Attribut, in dem der Name des ausgewählten Objekts gespeichert wird.

Anmerkung: Wenn im Compound Control zum Zeitpunkt der Methodenausführung ein Wert ausgewählt ist und dieser nach Ausführung der Methode nicht mehr gültig sein sollte, so muss der ausgewählte Wert des Componds anschließend zurückgesetzt werden.

Tastenkombinationen

Für das Compound stehen die folgenden Tastenkombinationen zur Verfügung:

Strg + <BILD-AUF> zeigt den vorherigen Datensatz an.
Strg + <BILD-AB> zeigt den nächsten Datensatz an.
Strg + Einfg fügt einen neuen Datensatz ein.
Strg + Entf löscht den aktuellen Datensatz.