API
new TableMonitor(options: TableMonitorOptions): TableMonitor
TableMonitor Optionen
Neben den oben genannten MultiTable Optionen stehen im TableMonitor weitere Optionen zur Verfügung.
| Option | Typ | Beschreibung |
|---|---|---|
| id | string | (Optional) Eine eindeutige Id für das Gadget Default: nullZugriff über: |
| fieldName | string | (Optional) Ein Mappenfeld zum Speichern der Daten Default: null |
| showButtonAlways | boolean | (Optional) Zeigt die Schaltflächen an, auch wenn der User nicht im Bearbeitungsmodus ist. Default: false |
| update | string|((options: TableGadgetChangeEventOptions) => boolean) | (Optional) Callback bevor die Zeilen in das Mappenfeld gespeichert werden. ⚡ Ein Abbruch erfolgt nur, wenn der return Wert false ist! Kein return Wert wird als true gehandhabt. Default: null Beispiel: change: "someCallbackFunction" change: (options) => { // Abbruch über return false => Feld wird nicht beschrieben } |
| buttons | TableMonitorButtons | (Optional) Oberhalb der Tabelle können über Schaltflächen eingeblendet werden.. Default: null Beispiel: Siehe TableMonitor Beispiele |
TableMonitorButtons
Neben den oben genannten MultiTable Optionen stehen im TableMonitor weitere Optionen zur Verfügung.
| Option | Typ | Beschreibung |
|---|---|---|
| label | string | Beschriftung des Buttons |
| tooltip | string | (Optional) Tooltip des Buttons Default: null |
| visible | boolean | (Optional) Soll der Button angezeigt werden? Default: true |
| enabled | boolean|'single'|'multi'|((selectedRows: Object[], options: TableMonitorOptions) => boolean) | (Optional) (Optional) Steuert ob der Button aktiviert ist. Default: null Beispiel: enabled: true Beispiel: enabled: 'single'Beispiel: enabled: function (selectedRows, options) { return selectedRows.length > 0 } |
| click | string|((options: TableMonitorButtonClickEventOptions) => void) | (Optional) Callback wenn der Button geklickt wurde. Default: null Beispiel: Siehe TableMonitor Beispiele |
TableMonitorButtonClickEventOptions
| Option | Typ | Beschreibung |
|---|---|---|
| selectedRows | Object[] | Selektierten Zeilen |
| rows | Object[] | Enthält alle Zeilen |
| id | string | Angegebene oder Genierte ID zur TableMonitor Instanz. |
| moveSelectedRow | (nextIndex: Number) => boolean | Verschiebt die selektierte Zeile an den angegeben Index. |
| removeSelectedRows | () => void | Löscht die selektierten Zeilen. |
Portalskript Funktionen
TableMonitor Klasse
Funktionen
constructor(options: string | TableMonitorOptions)
| Parameter | Typ | Beschreibung |
|---|---|---|
| options | TableMonitorOptions | Ein Objekt welches die Optionen zum Steuern des Dialogs enthält. Siehe Optionen |
context.enableModules();
const { TableMonitor } = require("ou.sp.gadget.TableMonitor");
// #import "Gadget_API_Controller"
function build() {
this.execute = function () {
const tableMonitor = new TableMonitor({
fieldName: "Mappenfeld",
rows: [],
columns: {
icon: {
type: "icon",
label: "",
attributes: {
style: "width: 20px"
}
},
id: {
label: "Kreditorennummer",
required: true,
attributes: {
class: 'cell-id'
}
}
}
})
return tableMonitor.transfer()
}
}
TableMonitor.show
static TableMonitor.show(options: string | TableMonitorOptions): string
Erstellt eine TableMonitor Instanz anhand einem Array
| Parameter | Typ | Beschreibung |
|---|---|---|
| options | TableMonitorOptions | Ein Objekt welches die Optionen zum Steuern des Dialogs enthält. Siehe Optionen |
⚡ Ein // #import "Gadget_API_Controller" darf nicht verwendet werden!
context.enableModules();
const { TableMonitor } = require("ou.sp.gadget.TableMonitor");
context.returnValue = TableMonitor.show({
fieldName: "Mappenfeld",
rows: [ ],
columns: {
icon: {
type: "icon",
label: "",
attributes: {
style: "width: 20px"
}
},
id: {
label: "Kreditorennummer",
required: true,
attributes: {
class: 'cell-id'
}
}
}
})
transfer
transfer(): string
Gibt das TableMonitor an den Client zurück.
| Parameter | Typ | Beschreibung |
|---|---|---|
context.enableModules();
const { TableMonitor } = require("ou.sp.gadget.TableMonitor");
// #import "Gadget_API_Controller"
function build() {
this.execute = function () {
const tableMonitor = new TableMonitor({
fieldName: "Mappenfeld",
rows: [],
columns: {
icon: {
type: "icon",
label: "",
attributes: {
style: "width: 20px"
}
},
id: {
label: "Kreditorennummer",
required: true,
attributes: {
class: 'cell-id'
}
}
}
})
return tableMonitor.transfer()
}
}
Extensions
saveAsXlsx
saveAsXlsx(filePath: string): void
Speichert die TableMonitor Instanz als Xlsx Datei an dem angegeben Pfad ab.
Beispiel:
context.enableModules();
const { TableMonitor } = require("ou.sp.gadget.TableMonitor");
const tableMonitor = new TableMonitor({
title: "Beispieldatensätze",
rows: [{
id: "1",
name: "name1"
},
{
id: "2",
name: "name2"
},
{
id: "3",
name: "name3"
}
]
})
try {
tableMonitor.saveAsXlsx("D:\\tmp\\gadget.xlsx")
context.returnValue = tableMonitor.show()
} catch (error) {
context.errorMessage = error
context.returnValue = false
}
downloadAsXlsx
MultiTable.downloadAsXlsx(options: MultiTableXlsxExportOptions, filePath: string): string
Speichert die Excel Datei auf dem Dateisystem und startet den Download am Client.
Beispiel:
context.enableModules();
const { TableMonitor } = require("ou.sp.gadget.TableMonitor");
const tableMonitor = new TableMonitor({
title: "Beispieldatensätze",
rows: [{
id: "1",
name: "name1"
},
{
id: "2",
name: "name2"
},
{
id: "3",
name: "name3"
}
]
})
try {
context.returnValue = tableMonitor.downloadAsXlsx(util.getTmpPath() + "multiTable.xlsx")
} catch (error) {
context.errorMessage = error
context.returnValue = false
}
warnung
Achtung! In einem Gadget-Portalskript wird dieser Aufruf nicht funktionieren, da documents den returnType ignoriert. Hier müsste das Portalskript über eine benutzerdefinierte Aktion getriggert werden.