Zum Hauptinhalt springen

API

constructor(options: TableGadgetOptions)

new TableGadget(options: TableGadgetOptions): TableGadget

Erstellt eine TableGadget Instanz

Beispiel:

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const gadget = new TableGadget({
title: "Beispieldatensätze",
rows: [
{
id: "1",
name: "name1",
},
{
id: "2",
name: "name2",
},
{
id: "3",
name: "name3",
},
],
});

context.returnValue = gadget.transfer();
context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

/**
* (Fortgeschritten) Übersteuerung der Eigenschaften und Daten zurück geben
*/
const gadget = new TableGadget({
fieldName: "jsonField",
filter: "test1234",
select: true,
sortBy: 1,
sortAscending: false,
emptyMessage: "Nope",
multiSelect: true,
multiSelectBehavior: "filter",
pageSizes: [5, 10],
currentPage: 2,
pageSize: 2,
});

context.returnValue = gadget.transfer();

Statische Funktionen

from

TableGadget.from(rows: Object[]): TableGadget

Erstellt eine TableGadget Instanz anhand von einem Array

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const gadget = TableGadget.from([
{
id: "1",
name: "name1",
},
{
id: "2",
name: "name2",
},
{
id: "3",
name: "name3",
},
]);

context.returnValue = gadget.transfer();

fromFileResultset

TableGadget.fromFileResultset(fileResultset: FileResultset, fields?: string[]): TableGadget

Erstellt eine TableGadget Instanz anhand eines FileResultsets.

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const fileResultset = new FileResultset("ouspPostman_Documents");
const fields = ["mailSender", "mailDate"];

const gadget = TableGadget.fromFileResultset(fileResultset, fields);
context.returnValue = gadget.transfer();

fromHitResultset

TableGadget.fromHitResultset(hitResultset: HitResultset): TableGadget

Erstellt eine TableGadget Instanz anhand eines HitResultsets.

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const hitResultset = new HitResultset("ouspPostman_Documents");
const gadget = TableGadget.fromHitResultset(hitResultset);

context.returnValue = gadget.transfer();

fromDatabase

TableGadget.fromDatabase(database: Database, query: QueryBuilder): TableGadget

Erstellt eine TableGadget Instanz anhand einer Datenbank-Abfrage.

const { TableGadget } = require("ou.sp.gadget.TableGadget");
const { Database, QueryBuilder } = require("ou.sp.Database");

const dbUser = util.getEnvironment("OUSP_DATABASE_USER");
const dbPassword = util.getEnvironment("OUSP_DATABASE_PASSWORD");
const db = new DBConnection("odbc", "ousp", dbUser, dbPassword);
const database = new Database(db);
const query = QueryBuilder.select(["recipient", "costcenter", "costcenterName"])
.from("costcenter")
.orderBy("recipient")
.orderBy("costcenter");

const gadget = TableGadget.fromDatabase(database, query);
gadget.options.id = "exampleDB";
gadget.options.showOptions = true;
gadget.options.showFooter = true;
gadget.options.showPagination = true;
gadget.options.pageSize = 10;
gadget.options.columns = {
recipient: {
label: "Rechnungskreis",
field: "recipient",
},
costcenter: {
label: "Id",
field: "costcenter",
},
costcenterName: {
label: "Kostenstelle",
field: "costcenterName",
},
};

if (db) {
db.close();
}

context.returnValue = gadget.transfer();

Instanz Funktionen

setStore

setStore(fieldName: string)

Setzt den Mappenfeldnamen, welcher bei einer Auswahl befüllt werden soll.

ParameterTypBeschreibung
fieldNamestringDer Mappenfeldname, indem das JSON mit der Auswahl gespeichert werden soll.
context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const fileResultset = new FileResultset("ptpInvoice", "vendorName ~ 'Firma'");
const fields = ["vendorId", "vendorName"];
const tableGadget = TableGadget.fromFileResultset(fileResultset, fields);

// Mappenfeld zum Speichern der Auswahl als JSON
tableGadget.setStore("fieldSelectedEntries");

// Mehrfachauswahl
tableGadget.options.multiSelect = true;

context.returnValue = tableGadget.transfer();

transfer

transfer(): string

Gibt das TableGadget an den Client zurück.

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const tableGadget = new TableGadget({
title: "Beispieldatensätze",
rows: [
{
id: "1",
name: "name1",
},
{
id: "2",
name: "name2",
},
{
id: "3",
name: "name3",
},
],
});

context.returnValue = tableGadget.transfer();

Extensions

saveAsXlsx

saveAsXlsx(filePath: string): void

Speichert die TableGadget Instanz als Xlsx Datei an dem angegeben Pfad ab.

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");

const tableGadget = new TableGadget({
title: "Beispieldatensätze",
rows: [
{
id: "1",
name: "name1",
},
{
id: "2",
name: "name2",
},
{
id: "3",
name: "name3",
},
],
});

try {
tableGadget.saveAsXlsx("D:\\tmp\\gadget.xlsx");
context.returnValue = tableGadget.transfer();
} 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 { TableGadget } = require("ou.sp.gadget.TableGadget");

const tableGadget = new TableGadget({
title: "Beispieldatensätze",
rows: [
{
id: "1",
name: "name1",
},
{
id: "2",
name: "name2",
},
{
id: "3",
name: "name3",
},
],
});

try {
context.returnValue = tableGadget.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.

Gadget_API_Controller Context verwenden

In manchen Fällen ist es gewünscht, selber das gadgetAction festzulegen. In diesem Fall könnte das Portalskript so aussehen.

context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");
// #import "Gadget_API_Controller"

function myCustomAction() {
this.execute = function () {
const tableGadget = new TableGadget({
title: "Beispieldatensätze",
rows: [
{
id: "1",
name: "name1",
},
{
id: "2",
name: "name2",
},
{
id: "3",
name: "name3",
},
],
});

return tableGadget.transfer();
};
}