Über Table Personalization kann das Layout der Tabelle durch den Benutzer eingestellt werden. Dies ist vergleichbar mit den Layouts bei ALV Listen.
Umsetzung
Controller.js
Um die Funktion zu aktivieren, kann im Kontroller diese Funktion eingebaut werden. Die Funktion nutzt dabei einen Service der SAP UI Shell, um die Daten zu persistieren
tablePersonalization: function (key) {
// Create a persistence key
var oPersId = {
container: "myContainer",
item: key
};
// default Provider (uiShell)
var oProvider = sap.ushell.Container.getService("Personalization").getPersonalizer(oPersId);
// init and activate controller
var oTablePersoController = new TablePersoController({
table: this.byId("idInsplotTable"),
//specify the first part of persistence ids e.g. 'demoApp-productsTable-dimensionsCol'
persoService: oProvider
}).activate();
// Cause the dialog to open when the button is pressed
this.byId("idPersonalization").attachPress(function () {
oTablePersoController.openDialog();
});
}
Der Aufruf erfolgt vor der Ausgabe der Tabelle (z.B. onInit oder onBeforeRendering) etwa wie folgt
// Table Personalization aktivieren
this.tablePersonalization(myKey);
View
In der View wird im Tabellen Headerbereich ein Button (idPersonalization) definiert, über den der Personalization Dialog aufgerufen werden kann (Auszug):
<Table id="tableID" inset="false" items="{uiModel>/localData/results}">
<headerToolbar>
<OverflowToolbar>
<core:Icon src="sap-icon://status-negative" color="red" size="3em"/>
<Title text="{uiModel>/header/redcount}"/>
<core:Icon src="sap-icon://alert" color="orange" size="3em"/>
<Title text="{uiModel>/header/yellowcount}"/>
<core:Icon src="sap-icon://status-positive" color="green" size="3em"/>
<Title text="{uiModel>/header/greencount}"/>
<ToolbarSpacer/>
<Button icon="sap-icon://action-settings" id="idPersonalization">
<layoutData>
<OverflowToolbarLayoutData priority="NeverOverflow"/>
</layoutData>
</Button>
</OverflowToolbar>
</headerToolbar>
<columns>
<Column id="trafficSign">
<Text text="{i18n>TrafficSign}"/>
</Column>
Ergebnis
Die hier vorgenommenen Einstellungen bleiben beim erneuten Aufruf erhalten
Einschränkung
Es lassen sich hiermit nicht mehrere Varianten speichern, so dass der Benutzer bequem zwischen den Varianten wechseln kann. Dies ließe sich ggf. durch einen zusätzlichen Variant Manager lösen