Customizing von Steuerelementen in Listen
Produktlinie
Standard
|Expert
Betriebsart
CLOUD ABO
|ON-PREMISES
Module
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Um via Customizing ein vorhandenes Steuerelement in einer Liste zu überschreiben, muss mit Override das entsprechende Steuerelement angesprochen werden:
Es können aber auch neue Steuerelemente erstellt werden, indem das Feld Steuerelement leergelassen und im Feld Steuerelement XML ein neues Steuerelement erzeugt wird. Dies wird zum Beispiel für gewisse Zusatzfelder gebraucht, wo es kein vordefiniertes Steuerelement gibt. Siehe dazu den Abschnitt Zusatzfelder in Listen anzeigen weiter unten.
Die Code-Spalte des Steuerelements cmbProjekt verbreitern wir auf 150. Dafür wird die Eigenschaft Width der Spalte Code überschrieben:
<ComboBox Override="cmbProjekt"> <ComboBox.ColumnDefinitions> <ColumnDefinition Override="Code" Width="150" /> </ComboBox.ColumnDefinitions> </ComboBox>
Wie die einzelnen Spalten der jeweiligen Steuerelemente heissen, finden Sie im Artikel Steuerelemente.
Die Spalte Betreffend stellen wir als zweite Spalte nach der Code-Spalte dar. Dafür setzen wir die Eigenschaft PlaceAfter:
<ComboBox Override="cmbProjekt"> <ComboBox.ColumnDefinitions> <ColumnDefinition Override="Regarding" PlaceAfter="Code" /> </ComboBox.ColumnDefinitions> </ComboBox>
Eine neue Spalte einfügen geht gleich, nur dass wir diesmal kein Override verwenden. Dadurch ist klar, dass es sich um eine neue Spalte handelt. Als Expression geben wir die entsprechende OCL-Expression ein:
<ComboBox Override="cmbProjekt"> <ComboBox.ColumnDefinitions> <ColumnDefinition Width="110" Expression="projektleiter" /> </ComboBox.ColumnDefinitions> </ComboBox>
Ohne Angabe von PlaceBefore oder PlaceAfter wird die neue Spalte zuhinterst angefügt.
In der Combobox kann ein Pfeil eingeblendet werden, mit dem man direkt zum ausgewählten Objekt navigieren kann. Dieses wird dann in einem separaten Tab oder Fenster geöffnet.
Dafür muss ShowNavLinkButton auf "True" gestellt werden:
<ComboBox Override="cmbProjekt" ShowNavLinkButton="True" />
Möchten Sie einen Pfeil, der standardmässig eingeblendet ist, nicht anzeigen, stellen Sie ShowNavLinkButton auf "False".
Neu kann in der Combobox ein Löschbutton x eingeblendet werden. Damit kann eine bereits ausgewählte Referenz wieder entfernt werden.
Dafür muss ShowRemoveButton auf "True" gestellt werden:
<ComboBox Override="cmbTaetigkeit" ShowRemoveButton="True" />
Achten Sie darauf, dass Sie diesen Button nur dann einblenden, wenn das Löschen der Referenz nicht zu einem ungültigen Eintrag führt.
Möchten Sie einen Button, der standardmässig eingeblendet ist, nicht anzeigen, stellen Sie ShowRemoveButton auf "False".
Ab Vertec 6.2 kann in Datumsspalten in Listen ein DatePicker eingeblendet werden. Dafür muss im Feld Steuerelement XML der Code
<DatePicker />
eingegeben werden:
Daraufhin wird in der entsprechenden Spalte ein DatePicker zur Auswahl des Datums angezeigt:
Für die Anzeige von Auswahl- und Objekt-Zusatzfeldern gibt es das vordefinierte Steuerelement cmbZusatzfeld.
Um Zusatzfelder eines anderen Typs anzuzeigen, geben Sie nicht ein Steuerelement an, sondern erstellen dieses direkt im Feld Steuerelement XML. Als Beispiel blenden wir ein Dateizusatzfeld auf dem Vorschuss ein. Das Zusatzfeld ist wie folgt erfasst:
In den Listeneinstellungen lautet das entsprechende Steuerelement XML
<PathBox Label="Datei" ValueExpression="zusatzfeld('Datei')" SelectType="FileOpen" />
In der Liste wird daraufhin ein Feld angezeigt, wo die Datei ausgewählt werden kann:
Eine Auflistung, welches Steuerelement Sie für welchen Typ verwenden müssen, finden Sie im Abschnitt XML (Customizing) im Artikel über die Zusatzfelder.
Ab Vertec 6.1 ist es möglich, die ComboBox an einen Objektwert zu binden, welcher nicht vom Zeilenobjekt stammt.
Zum Beispiel soll in der Listenspalte einer Projektliste die Auswahl von einem Feld in einer verlinkten Zusatzklasse angeboten werden.
getlinks('projektstaende')->oclastype(Zusatzklasse1) ->orderby(zusatzfelddate('datum')) ->last.zusatzfeldint('status')
Bei selbst erstellten ComboBoxen
wird mittels ListExpression
berechnet, welche Elemente darin angezeigt werden. Diese Expression bezieht sich auf das Zeilen-Objekt in der Liste.
Im Falle der Hinzufügen Zeile (Stern-Zeile für neue Einträge) gibt es noch kein Zeilen-Objekt, auf welches die Expression sich beziehen kann. Handelt es sich deshalb bei der ListExpression
nicht um eine global auswertbare Expression, muss zusätzlich eine GhostrowListExpression
gesetzt werden. Als Context gilt dabei der Container, welcher die Liste enthält.
Ab Vertec 6.4.0.21 kann in der GhostrowListExpression
mit der Variable varContainer
auf den Container (Ordner oder Link Container), und mit varParent
auf das Objekt, dem der Container gehört, zugegriffen werden.