Der Chatbot hilft Ihnen bei Fragen rund um das Produkt und die Anpassbarkeit der Software. Wie bei allen AI-generierten Daten sollten die Antworten bei kritischen Informationen verifiziert werden. Nehmen Sie dafür gerne Kontakt
mit uns auf. Weitere Informationen zur Verarbeitung der Chat-Daten bieten wir auf der Datenschutzseite
.
Die besten Antworten liefert der Chatbot, wenn Ihr Input möglichst viele Informationen enthält. Zum Beispiel:
«Welche Apps stehen im Vertec Cloud Abo zur Verfügung?»
Seiten, die Sie nicht benötigen, können Sie einfach ausblenden. Als Beispiel entfernen wir die Seite Budget auf dem Projekt. In den Klasseneinstellungen Projekt suchen wir in der eingebauten Seite nach der Budget-Seite, um den Namen herauszufinden.
Hier sehen wir: Die Seite heisst ProjectBudget. Um diese auszublenden, stellen wir die Eigenschaft Visible auf False.
Wir stellen um auf den Reiter Anpassung und geben folgenden Code ein:
<Page Override="ProjectBudget" Visible="False" />
Damit wird die Seite nicht mehr angezeigt.
Anzeige an eine Bedingung knüpfen
Soll die Seite nicht immer, sondern nur unter gewissen Bedingungen ausgeblendet werden, kann dies mit der Eigenschaft VisibleExpression gesteuert werden.
Als Beispiel möchten wir, dass die Budget-Seite für den Projektleiter sichtbar ist. Wir setzen also in der obigen Expression nicht die Eigenschaft Visible, sondern geben als VisibleExpression eine OCL-Expression an:
Das Ergebnis der OCL-Expression muss ein Boolean (Wahr/Falsch) sein. Ist das Resultat Wahr, wird die Seite angezeigt.
Ist die Expression ungültig, wird Wahr angenommen und die Seite immer angezeigt. Es gibt keinen Fehler.
Reihenfolge der Seiten ändern
Die Reihenfolge der Seiten kann ebenfalls umgestellt werden. Es gibt dafür folgende beiden Eigenschaften
PlaceBefore="PageName": Damit wird angegeben, vor welcher Seite die aktuelle Seite dargestellt werden soll. Die Seite wird mit dem Namen angegeben.
PlaceAfter="PageName": Damit wird angegeben, nach welcher Seite die aktuelle Seite dargestellt werden soll. Die Seite wird mit dem Namen angegeben.
Als Beispiel möchten wir die Seite Adressen auf dem Projekt direkt nach der Hauptseite anzeigen.
Wir suchen im eingebauten Code nach dem Namen der Adress-Seite und finden: ProjectAddress. Weiter müssen wir den Namen der Seite suchen, vor oder nach der wir die Seite einfügen wollen: Project oder ProjectFurtherInfo.
Die einzelnen Felder (und anderen Elemente wie Beschriftungen, Linien etc.) können abgeändert, verschoben, im Layout angepasst oder ausgeblendet werden. Wird ein Element einer Seite geändert, dann muss die Seite selbst überschrieben werden. Das heisst, eine Änderung findet immer innerhalb der Seite statt:
<Page Override="Project">
Hier werden die Elemente der Seite 'Project' angepasst.
</Page>
Werden mehrere Elemente einer Seite überschrieben, dann fügt man das alles in den gleichen Rahmen ein:
Hier nachfolgend ein paar exemplarische Beispiele:
Eine Beschriftung ändern
Als Beispiel nehmen wir auf der Projekt Hauptseite die Überschrift Zuweisung. Diese möchten wir ändern in Zuständigkeiten.
Wir haben nun zwei Möglichkeiten: Entweder wir benennen den Begriff Attribution in unserer kundenspezifischen Übersetzungsdatei um, oder wir überschreiben es direkt in den Klasseneinstellungen:
Mit dem Attribut Help kann ein Hilfetext als Tooltipp angezeigt werden. Als Beispiel fügen wir im Bemerkungsfeld, das wir vorher reduziert haben, einen Tooltipp ein:
<TextArea Override="Remarks" Lines="4" Help="Hier die Bemerkungen eintragen"/>
Wird der Mauszeiger auf dem Feld platziert, erscheint der Tooltipp:
Ausblenden von nicht benötigten Feldern
Felder, die Sie in Ihrer Firma nicht benötigen, können Sie nun von den Seiten entfernen. Im Beispiel blenden wir das Feld Beschreibung aus.
Man kann die Felder mit PlaceBefore / PlaceAfter (siehe oben) auch an einem anderen Ort anzeigen. Als Beispiel wird der Projekttyp direkt nach dem Projektcode angezeigt:
Wenn wir die Anpassung aus obigem Abschnitt Elemente verschieben gemacht haben, dann sieht das auf der Oberfläche nun so aus: Der Platz wurde standardmässig gedrittelt, weil es drei Elemente hat:
FlexWidth
Diese Aufteilung kann man beeinflussen mit der Eigenschaft FlexWidth. Diese bestimmt den Anteil, den ein Element innerhalb des gesamthaft zur Verfügung stehenden Platzes einnimmt. Die möglichen Werte sind 1 (Standard) bis 100. Wird FlexWidth auf "0" gesetzt, berechnet das Element die benötigte Breite selber. Das ist dann sinnvoll, wenn man mehrere Textfelder hintereinander hat und nicht weiss, wie breit die einzelnen Textteile sind.
In unserem Beispiel verbreitern wir die beiden Elemente Projektcode und Projekttyp . Wir setzen die FlexWidth der beiden Elemente auf 2. Dadurch erreichen wir eine Aufteilung des Platzes in 2+2+1.
Möchte man alle Labels einer Seite breiter oder schmaler machen, setzt man die Eigenschaft LabelWidth direkt auf der Seite.
WidthFraction
Mit der Eigenschaft WidthFraction wird angegeben, welchen Faktor das Element von der verfügbaren Breite nutzen soll. Mögliche Werte sind 0 bis 1 (Standard). Soll ein Element z.B. nur die Hälfte der Breite nutzen, erreicht man das wie folgt:
<TextBox WidthFraction="0.5" />
Als Beispiel nehmen wir das Feld Rechnungsintervall auf der Projekt-Seite. Dieses Feld nimmt nun die ganze Breite ein, da wir das Feld Projekttyp verschoben haben:
Als Beispiel passen wir die Combobox Projekt auf der Leistung an. Das geschieht in den Klasseneinstellungen der Klasse OffeneLeistung. Die Combobox soll gleich aussehen wie die im Beispiel in den Listeneinstellungen. Darum können wir den Code aus dem Feld Steuerelement XML 1:1 in die Klasseneinstellungen kopieren und passen nur den Namen der Combobox entsprechend an:
Ein Feld kann auch auf einer anderen Seite dargestellt werden. Das geschieht in zwei Schritten:
Das Feld wird auf der gewünschten Seite neu erstellt mit allen benötigten Eigenschaften. Damit ist es aber am ursprünglichen Platz nicht verschwunden, sondern wird an beiden Orten dargestellt.
Falls das Feld am ursprünglichen Platz nicht mehr angezeigt werden soll, muss es ausgeblendet werden.
Als Beispiel möchten wir die Felder der Gruppe Leistungen der Seite Vorgaben auf die Hauptseite verschieben:
Dafür wird diese Gruppe samt Feldern auf der Hauptseite (Project) neu erstellt. Der Code kann dafür vom Original übernommen werden:
Wir kopieren den ganzen Text und fügen ihn im Reiter Anpassung wieder ein, und zwar innerhalb der <Page Override="Project"> </Page> Tags:
Die Vorgabengruppe "Leistungen" wird jetzt auf der Hauptseite dargestellt:
Nun werden diese Felder an beiden Orten angezeigt. Wenn Sie einen Wert eingeben, erscheint er automatisch an beiden Orten, da der Wert in den gleichen Datensatz geschrieben wird.
In unserem Beispiel möchten wir diese Felder am alten Ort aber nicht mehr darstellen. Dafür blenden wir nun diese Gruppe auf der Seite Vorgaben aus. Wir benötigen dafür den Namen der Seite (ProjectPrerequisites) und den Namen der Gruppe (ServicesGroup):
Zusatzfelder können ebenfalls in den Seiten platziert werden. Dies ist nicht ganz so einfach wie bei anderen Feldern, die man einfach kopieren kann, weil Zusatzfelder auf der Seite Weitere Info automatisch dargestellt werden.
Hier fügt man die Felder manuell ein und setzt das Zusatzfeld via OCL in der Eigenschaft ValueExpression.
Als Beispiel setzen möchten wir ein Zusatzfeld Laufzeit auf der Hauptmaske des Projekts darstellen. Dieses Zusatzfeld ist wie folgt erfasst:
Dieses Feld kann mit folgendem Code an einem beliebigen Ort platziert werden:
AdditionalFieldComboBox: ComboBox für die Darstellung von Auswahl-Zusatzfeldern (siehe Abschnitt Welches Steuerelement für welches Zusatzfeld? weiter unten)
Auch einzelne Stichwörter können in den Seiten platziert werden mit dem Element KeywordGroup. Dieses stellt eine Gruppe mit der Bezeichnung des Stichwort-Ordners und einer Auswahl je nach Art mit Checkboxen oder einer Combobox dar.
Ab Vertec 6.3.0.12 können auch Ordner, die nicht als Stichwort-Ordner markiert sind, auf diese Art in den Seiten platziert werden.
Dafür wird die Eigenschaft FolderId oder ab Vertec 6.2.0.9 auch die Eigenschaft FolderEntryId gesetzt.
Als Beispiel fügen wir das Stichwort Branche auf der Projekt-Hauptseite nach dem Rechnungsintervall ein:
FolderId: Zur Angabe des zu verwendenden Stichwort Ordners muss die ID des Ordners angegeben werden. Diese finden Sie in den Ordnereigenschaften des entsprechenden Ordners:
FolderEntryId: Ab Vertec 6.2.0.9 kann auch die Eintrag Id des Ordners angegeben werden. Diese finden Sie in den Ordnereigenschaften des entsprechenden Ordners. Bei neu erstellten Ordnern muss die Eintrag Id via Python Konsole gesetzt werden
.
Nun wird dieses Stichwort direkt auf der Hauptmaske angezeigt:
Als Beschriftung wird immer die Bezeichnung des entsprechenden Stichwort-Ordners gesetzt. Das Label der KeywordGroup kann nicht im Code gesetzt werden. Falls Sie also die Beschriftung des Feldes ändern möchten, müssen Sie die Bezeichnung des Ordners ändern.
Die Standard Stichwort-Seite ausblenden
Das Ausblenden der Stichwort-Seite, wie sie standardmässig angezeigt wird, funktioniert gleich wie bei anderen Seiten:
<Page Override="Keywords" Visible="False" />
Eigene Seiten erstellen
Eigene Seiten können mit einem Page Element - ohne Override - erstellt werden:
<Page Header="Meine eigene Seite">
</Page>
Darauf können Felder und Gruppen beliebig angeordnet werden. Eine Auflistung aller verfügbaren Elemente finden Sie in der UI Customizing Dokumentation
. Die Elemente der Seite werden standardmässig vertikal angeordnet.
Ab Version 6.1 ist es möglich, die horizontalen Scrollbalken mehrerer Controls zu synchronisieren.
Eingeführt wurde das für die Ansicht der Wochenerfassung und der Ressourcenplanung, welche in übereinander liegenden Listen horizontale Scrollbalken verwenden, um die Daten darzustellen. Die horizontale Ausrichtung war jedoch nicht gekoppelt, so dass jedes Element einzeln gescrollt werden musste, damit dieselben Datenspalten visuell übereinander liegen.
Mit dem ScrollSynchronizer wurde die Möglichkeit geschaffen, diese Scrollbalken zu koppeln. Nun muss nur noch ein Balken gescrollt werden, und alle gekoppelten Listen verschieben sich gleichzeitig.
Das Control ScrollSynchronizer hat keine visuelle Repräsentation und besitzt folgende Eigenschaften:
SourceNames: Eine Komma separierte Liste der Elementnamen, welche synchronisiert werden sollen. Bei den zu koppelnden Elementen, welche selbst erstellt werden, muss also ein Name gesetzt werden (z.B. <DataGrid Name="DataGrid1" />). Dieser darf keine Leerzeichen enthalten.
Die Kopplung ist bei den Control-Typen DataGrid und ScrollableGroup möglich. Diese enthalten jeweils die Eigenschaft
ShowHorizontalScrollbar: Sichtbarkeit der horizontalen Scrollbar (Default="True")
Damit die Darstellung stimmt, muss die Anzahl der Zellen identisch sein mit der Anzahl der Tabellenspalten.
Eine eigene Tabelle erstellen
Als Beispiel wird eine Zusatzklasse namens "Rolle" als editierbare Tabelle (DataGrid) in einer zusätzlichen Seite "Rollen und Funktionen" auf der Klasse Adresseintrag dargestellt. Die Tabellenspalten (ColumnDefinition) zeigen die Zusatzfelder auf der Zusatzklasse an und sind editierbar.
Es geht in diesem Beispiel vor allem darum, aufzuzeigen, wie in selbst erstellten Tabellen verschiedene Arten von Controls eingebunden und Spalten dargestellt werden können. So zeigt z.B. die Spalte Rolle eine ComboBox an und die Spalte Organisation dient zur Auswahl eines Objekts.
Eine Sternzeile zum Erfassen von neuen Einträgen kann nicht angezeigt werden in einem DataGrid, da die Logik zum Erzeugen nicht vorhanden ist (hier im aktuellen Beispiel handelt es sich um eine Verknüpfung zwischen einer Adresse und einer Zusatzklasse20). Die Einträge werden also wie gewohnt erzeugt, z.B. im Neu-Menü der Adresse oder via Drag & Drop, und erscheinen dann in der Liste. Eine andere Variante ist, wie hier im Beispiel dargestellt, einen Script Button anzuzeigen und das Erzeugen eines Eintrags in ein entsprechendes Script auszulagern.
EditControlName: Damit wird ein Steuerelement angegeben
Converter: Der Converter entspricht einem Renderer. Die in DataGrids verfügbaren Renderer sind unter ConverterType beschrieben
Da es für einen Boolean kein Steuerelement gibt (in bestehenden Tabellen wird das mit dem Renderer rndBoolean implizit gemacht), muss zusätzlich zum Converter="InvariantBoolean" die Checkbox mit DiplayType="Toggle" eingeblendet werden
Um die Sortierung im DataGrid zu aktivieren, muss AllowSort="True" aktiviert sein. Soll beim Start eine Sortierung aktiv sein, muss die Expression entsprechend angepasst werden: ListExpression="getlinks('Rollen').oclAsType(Zusatzklasse20)->orderby(zusatzfelddate('datum'))"