Gentable
Das Gentable kann über ein "Gentable"-Objekt realtiv einfach ausgelesen und neu geschrieben werden.
var docFile = context.file;
var gentable = new Gentable(docFile);
/* Erstellt ein Array aus Zeilen-Objekten *
* Zahlen, Datumswerte und Boolsche Werte haben bereits das passende Format */
if( gentable.readFromField()===false || gentable.Result===false ){
util.log(Gentable.Log); /* Bei Fehlern kann das Log ausgegeben werden */
context.errorMessage = gentable.Error; /* Fehlermeldung in Client-Sprache */
return -1;
}
/* Beispiel um Zeilen zu iterieren */
for( var row=0; row<gentable.Rows.length; row++ ){
var net = gentable.Rows[row]["Net"]; /* Netto aus der Zeile ausgeben */
gentable.Rows[row]["Gross"] = net; /* Brutto auf den Netto-Wert setzen */
}
/* Summe aus Spaltenwerten bilden. */
var sumNet = gentable.sumLineAmounts("Net");
/* Gentable in die Datenbank-Tabelle 'Invoice_Posting_Pos' schreiben.
* Die eindeutige Zeilen ID wird zurück in die Gentable-Spalte "ID" geschrieben.
* Hierüber wird beim nächsten Aufruf ein Update ausgeführt. */
gentable.insertIntoDB();
/* Gentable-String in das Feld 'Gentable' schreiben.
* Über den Parameter kann optional direkt ein sync() auf das DocFile-Objekt ausgeführt werden. */
var syncFile = true;
gentable.createGentableStr(syncFile);
Gentable User-Exits
BeimAn Speicherneinigen undSkriptstellen bei Abschluss einer Aktion werden bereitswurden User-Exit-FunktionenExit zur Verfügung gestellt. Wenn in den- Funktionen Positionsfelderdirekt geprüftauf werdendas sollenGentable-Objekt oderhinzugefügt. wenn Anpassungen am Gentable vorgenommen werden sollen, dannDadurch muss das Gentable erneutnicht nochmals umständlich ausgelesen werdenwerden. undÜber nach"this" Abschlusskann mussdirekt derauf das Gentable-StringObjekt erneut generiert werden und die Daten müssen erneut in die Datenbank geschriebenzugegriffen werden.
Beim Speichern und beim Abschluss einer Workflow-Aktion wurden 2 zusätzliche User-ExitDie Funktionen explizitselber fürmüssen daskeinen GentableRückgabewert anzurückgeben. der Version XX.XXX hinzugefügt. Die anderen beiden Funktionen wurden bereits im User-Exit SkriptWenn "DEXPRO__UserExit_GentableAdd"this.Result" ausgeliefert.auf Dieden anderenboolschen könnenWert hier"false" optionalgesetzt hinzugefügtwird kann über "this.Error" eine Fehlermeldung mitgegeben werden.
/** Wird bei der Erstellung der initialen Gentable-Zeile aufgerufen **/
Gentable.prototype.createInitialRow = function (){
}
/** Wird am Ende des Skripts beim Laden der offenen Bestellpositionen ausgeführt **/
Gentable.prototype.adjustLoadedOrderPositions = function (){
}
/** User-Exit beim Speichern einer Rechnungs-Akte
* @since Invoice 1.0.200
**/
Gentable.prototype.ue_InvoiceOnSave = function (){
this.Result = false;
this.Error = "Fehlermeldung";
var docFile = this.DocFile;
for( var r=0; r<this.Rows.length; r++){
var row = this.Rows[r];
this.Rows[r]["Net"] = 0;
}
}
/** User-Exit bei Abschluss einer Workflow-Aktion
* @since Invoice 1.0.200
**/
Gentable.prototype.ue_OnActionEnd = function (){
this.Result = false;
this.Error = "Fehlermeldung";
var docFile = this.DocFile;
for( var r=0; r<this.Rows.length; r++){
var row = this.Rows[r];
this.Rows[r]["Net"] = 0;
}
}
/** Wird nach dem Anwenden einer Standardkontierung ausgeführt.
* Im Anschluss wird automatisch gentable.createGentableStr(true) ausgeführt.
* @since Invoice 1.0.300
* @returns {boolean} boolean true or false
**/
Gentable.prototype.ue_AfterStandardAccounting = function(){
return true;
}