Customizing von Steuerelementen in Listen

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.

Breite einer Spalte ändern

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.

Eine Spalte verschieben

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 hinzufügen

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 zu-hinterst angefügt.

Navigations-Button ein-/ausblenden

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".

Button Referenz entfernen ein-/ausblenden

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".

Zusatzfelder in Listen anzeigen

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.

Zusatzfeld ComboBox mit Objektwert <> Zeilenobjekt

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.

  • Expression:
    getlinks('projektstaende')->oclastype(Zusatzklasse1)
    ->orderby(zusatzfelddate('datum'))
    ->last.zusatzfeldint('status')
  • Steuerelement: cmbZusatzfeld
  • Renderer: rndZusatzfeld

 


23.02.2016 | 22.11.2016: Zusatzfeld ComboBox mit Objektwert <> Zeilenobjekt eingefügt.
Produktlinien: Expert
Module: Leistung & CRM
Apps: Desktop App, Web App, Cloud App