Zum Hauptinhalt springen

API

Clientskript Funktionen

Am Client existiert eine Funktion zum Laden des TableDialogs. Die Funktion ist Bestandteil der tableresultFactory.js .

showTableDialog

showTableDialog(options: TableDialogOptions)
ParameterTypBeschreibung
optionsTableDialogOptionsEin Objekt welches die Optionen des Dialogs enthält.
Siehe Optionen
documents.sdk.exitRegistry.registerFileFieldExitCallback("ouspDemo", "mappenFeld", function(documentsContext, options) {

showTableDialog({
title: "Beispieldatensätze",
rows: [{
id: "1",
name: "name1"
},
{
id: "2",
name: "name2"
},
{
id: "3",
name: "name3"
}
]
})
})

Portalskript Funktionen

constructor

new TableDialog(options: TableDialogOptions): TableDialog
ParameterTypBeschreibung
optionsTableDialogOptionsEin Objekt welches die Optionen zum Steuern des Dialogs enthält.
Siehe Optionen

Beispiel:

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

const tableDialog = new TableDialog({
title: "Beispieldatensätze",
rows: [{
id: "1",
name: "name1"
},
{
id: "2",
name: "name2"
},
{
id: "3",
name: "name3"
}
]
})
context.returnValue = tableDialog.transfer();

Erweitertes Beispiel:

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

/**
* (Fortgeschritten) Übersteuerung der Eigenschaften und Daten zurück geben
*/
const tableDialog = new TableDialog({
filter: "test1234",
select: true,
sortBy: 1,
sortAscending: false,
emptyMessage: "Nope",
multiSelect: true,
multiSelectBehavior: "filter",
pageSizes: [5, 10],
currentPage: 2,
pageSize: 2,
rows: [{
id: "1",
name: "name1"
},
{
id: "2",
name: "name2"
},
{
id: "3",
name: "name3"
},
]
});

context.returnValue = tableDialog.transfer();

Statische Funktionen

from

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

Erstellt eine TableDialog Instanz anhand einem Array

ParameterTypBeschreibung
rowsObject[]Die Einträge zum Anzeigen als Array

Beispiel:

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

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

context.returnValue = tableDialog.transfer();

fromFileResultset

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

Erstellt eine TableDialog Instanz anhand eines FileResultsets.

ParameterTypBeschreibung
fileResultsetFileResultsetEine documents FileResultset Instanz
fieldsstring[](Optional) Eine Auswahl der Mappenfelder welche angezeigt werden soll.

Beispiel:

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

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

const tableDialog = TableDialog.fromFileResultset(fileResultset, fields);
context.returnValue = tableDialog.transfer();

fromHitResultset

TableDialog.fromHitResultset(hitResultset: HitResultset): TableDialog

Erstellt eine TableDialog Instanz anhand eines HitResultsets.

ParameterTypBeschreibung
hitResultsetHitResultsetEine documents HitResultset Instanz

Beispiel:

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

const hitResultset = new HitResultset("ouspPostman_Documents")

const tableDialog = TableDialog.fromHitResultset(hitResultset);
context.returnValue = tableDialog.transfer();

fromDatabase

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

Erstellt eine TableDialog Instanz anhand einer Datenbank-Abfrage.

ParameterTypBeschreibung
databaseDatabaseEine OUSP Datenbank Instanz
queryQueryBuilderEine OUSP QueryBuilder Instanz mit der Abfrage

Beispiel:

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

const args = TableDialog.getParams()
const db = new DBConnection("odbc", "invoicecontroldb", "user", "pwd")
const database = new Database(db)
const query = QueryBuilder
.from("vendor")
.select(["vendorid", "vendorname1", "vendorstreet", "vendorzipcode", "vendorcity", "vendorcountrycode"])
.orderBy("vendorId")
.where("vendorid LIKE '" + args.searchValue + "%' OR vendorname1 LIKE '%" + args.searchValue + "%'")

query.top = 1000

const tableDialog = TableDialog.fromDatabase(database, query)

// Spaltendefinition mit Mapping
tableDialog.options.columns = {
vendorid: {
label: "Nr",
field: "vendorId"
},
vendorname1: {
label: "Name",
field: "vendorName"
},
vendorstreet: {
label: "Strasse",
field: "vendorStreet"
},
vendorzipcode: {
label: "PLZ",
field: "vendorZipCode"
},
vendorcity: {
label: "Ort",
field: "vendorCity"
},
vendorcountrycode: {
label: "Land",
field: ""
}
}

context.returnValue = tableDialog.transfer();
tipp

Ein Aufruf der close() Funktion der Datenbank muss nicht mehr ausgeführt werden.

fromLegacy

TableDialog.fromLegacy(config: TableResultDialogConfiguration, dbUser: string, dbPassword: string): TableDialog

Kompatiblität für altes TableResultDialog

ParameterTypBeschreibung
configTableResultDialogConfigurationTableResultDialog Konfiguration
dbUserstringDatenbank-User
dbPasswordstringDatenbank-Passwort

Beispiel:

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

/**
* Daten anhand des alten User-Exits zurückgeben.
* Achtung es werden nur folgende Werte verwendet:
* - labels
* - fields
* - columns
* - db
* - table
* - where
* - orderBy
* - maxCountToDisplay
* - multiSelect
*/
// Initial Config
var config = {
// WICHTIG: Labels, Felder, Columns müssen in der gleichen Reihenfolge sein
// Je nach dem, welches Feld in der Tabelle nicht angezeigt/in der Mappe nicht gefüllt werden soll,
// muss dieses bei labels oder fields leer gelassen werden ("")
labels: ["Kundennummer", "Kundenname"], // Spalten in Html Tabelle
fields: ["Kundennummer", "Kundenname"], // Felder in Documents
columns: ["Kundennummer", "Kundenname"], // Spalten in DB

// SQL Abfrage
db: "easy",
table: "tblKunden",
where: "Kundennummer LIKE '%" + searchValue + "%'",
orderBy: "Kundenname ASC",
// Maximale Treffer die geladen werden, darüber
maxCountToDisplay: 400,
rowsPerPage: 10, // [optional] Default 10

title: "Kunde auswählen", // Titel des Fensters
width: 1200, // Breite des Dialogs
height: 800, // Höhe des Dialogs

// Zusätzliche Einstellungen
// Art der Auswahl beim UserExit. WICHTIG: Beim onSuccessCallback muss hier anders reagiert werden!
multiSelect: false, // [optional] Default false
emptyResult: { // [optional] Verhalten bei leerem Ergebnis
message: "", // Bei leerem Ergebnis, Meldung als Dialog anzeigen
hideTable: false, // Bestimmt ob die leere Tabelle angezeigt werden soll (message: "" erforderlich)
where: "" // Abweichende where-Bedingung falls das erste Ergebnis leer ist (message: "" erforderlich)
}
}
context.returnValue = TableDialog.fromLegacy(config, "dbUser", "dbPassword").transfer();

show

TableDialog.show(config: TableDialogOptions): string

Erstellt eine TableDialog Instanz und öffnet den Dialog.

ParameterTypBeschreibung
optionsTableDialogOptionsEin Objekt welches die Optionen zum Steuern des Dialogs enthält.
Siehe Optionen

Beispiel:

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

context.returnValue = TableDialog.show({
title: "Test",
rows: [{
id: "1",
name: "name1"
},
{
id: "2",
name: "name2"
},
{
id: "3",
name: "name3"
},
]
});

getParams

TableDialog.getParams(): Object

Ließt die Parameter aus, welche vom Client aus geschickt wurden. Siehe auch params Option.

Beispiel:

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

const args = TableDialog.getParams()

Instanz Funktionen

transfer

transfer(): string

Gibt die Daten an den vorhandenen TableDialog am Client zurück. Diese Funktion wird typischerweise in dem Portalskript verwendet, welches am Client unter script deklariert ist und dafür zuständig ist Daten zurück zugeben.

Beispiel:

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

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

const tableDialog = TableDialog.fromFileResultset(fileResultset, fields);
context.returnValue = tableDialog.transfer();

show

show(): string

Zeigt am Client einen neuen TableDialog an. Hierbei wird der returnType auf clientScript geändert.

Beispiel:

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

const fileResultset = new FileResultset("ptpInvoice", "vendorName ~ 'Firma'")
const fields = ["vendorId", "vendorName"]
const tableDialog = TableDialog.fromFileResultset(fileResultset, fields)
context.returnValue = tableDialog.show();

Extensions

saveAsXlsx

saveAsXlsx(filePath: string): void

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

Beispiel:

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

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

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

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

try {
context.returnValue = tableDialog.downloadAsXlsx(util.getTmpPath() + "multiTable.xlsx");
} catch (error) {
context.errorMessage = error;
context.returnValue = false;
}