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
An einigen Skriptstellen wurden User-Exit - Funktionen direkt auf das Gentable-Objekt hinzugefügt. Dadurch muss das Gentable nicht nochmals umständlich ausgelesen werden. Über "this" kann direkt auf das Gentable-Objekt zugegriffen werden.
Die Funktionen selber müssen keinen Rückgabewert zurückgeben. Wenn "this.Result" auf den boolschen Wert "false" gesetzt wird 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 Auslesen des Gentable aber noch vor dem Anwenden einer Standardkontierung ausgeführt.
* @param {Accounting} standardAccounting Das Standardkontierungs-Objekt
* @since Invoice 1.1.300
**/
Gentable.prototype.ue_BeforeStandardAccounting = function(standardAccounting){
/* Beispiel: Kürzt das Gentable auf die gleiche Anzahl an Positionen wie die Standardkontierung *
accObj.getAccountingPositions(accObj.AccountingName);
var accPos = accObj.Accounting[accObj.AccountingName];
if( this.Rows.length>accPos.length ){
for( r=this.Rows.length-1; r>=accPos.length ;r-- ){
if( this.Logg instanceof Log ){
this.Logg.info("["+r+"] this.Rows.pop();");
}
this.Rows.pop();
}
}
*/
}
/** Wird nach dem Anwenden einer Standardkontierung ausgeführt.
* Im Anschluss wird automatisch gentable.createGentableStr(true) ausgeführt.
* @param {Accounting} standardAccounting Das Standardkontierungs-Objekt wird ab Invoice 1.1.300 mitgegeben
* @since Invoice 1.0.300
**/
Gentable.prototype.ue_AfterStandardAccounting = function(standardAccounting){
;
}
Gentable XML User-Exits
Die Gentable-XML wird automatisch über die WEB-Konfigurations-Tabellen.