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

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;
}