Skip to main content

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 Anwenden einer Standardkontierung ausgeführt.
 * Im Anschluss wird automatisch gentable.createGentableStr(true) ausgeführt.
 * @since Invoice 1.0.300
 **/
 Gentable.prototype.ue_AfterStandardAccounting = function(){
}