Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum.composite.form
Dieses Element splittet Positionen. Das Splitten von Positionen setzen Sie für Rechnungen und die Kontierung, etwa für die Zuweisungen von verschiedenen Kostenstellen für eine Rechnungsposition.
agorum.composite.form.element.splitList erbt alle grundlegenden Eigenschaften von element.
let aguila = require('common/aguila'); let form = aguila.create({ type: 'agorum.composite.form.basic', name: 'form', labelPosition: 'top', elements: [ { type: 'agorum.composite.form.element.splitList', name: 'splitList', disableSplit: false, showRowDelete: true, showAppend: true, copyDiffValues: false, template: [ // Es muss mindestens ein festes Feld geben, das pro Position eindeutig ist, etwa eine Positionsnummer { type: 'agorum.composite.form.element.text', label: 'Nummer', name: 'number', readOnly: true }, { type: 'agorum.composite.form.element.text', label: 'Beschreibung', name: 'description', readOnly: true }, { type: 'agorum.composite.form.element.number', label: 'Menge', name: 'quantity', // Der Wert dieser Spalte ergibt sich aus allen Summen der aufgesplitteten Werte dieser Spalte split: 'sum' }, { type: 'agorum.composite.form.element.number', label: 'Einzelpreis', name: 'net_price', readOnly: true }, { type: 'agorum.composite.form.element.number', label: 'Gesamtpreis', name: 'net_amount', readOnly: true, // Der Wert dieser Spalte ergibt sich aus allen Summen der aufgesplitteten Werte dieser Spalte split: 'sum' }, { type: 'agorum.composite.form.element.text', label: 'Kostenstelle', name: 'cost_center', // Der Wert dieser Spalte soll pro aufgesplitteter Position unterschiedlich sein split: 'diff', validation: [ { required: true } ] } ] } ] }); // Konsole vom Browser aufrufen, um Werte zu sehen form.on('valueChanged', value => { console.log('values', value); }); // Manuelle Erstellung von Testdaten // Wichtig ist, dass die Bezeichnungen wie number / description dem name der splitListe-Elementen entspricht // Dadurch können die Werte den entsprechenden Spalten zugeordnet werden. // Die Namensgebung ist frei und kann beliebig angepasst werden. setImmediate(() => { form.set('splitList.value', [ { number: '01', description: 'Position 1', quantity: 10, net_price: 100, net_amount: 1000 }, { number: '02', description: 'Position 2', quantity: 20, net_price: 50, net_amount: 1000 } ]); }); form;
Alle Parameter in element gelten. Zusätzlich gelten folgende Parameter.
Wert | Beschreibung |
---|---|
top | Das Label ist über dem Feld. |
left | Das Label ist links vom Feld. |
Definiert den type des Elements, etwa agorum.composite.form.element.text.
Beispiel
type: 'agorum.composite.form.element.text',
Definiert den Text / das Label vor dem Element.
Beispiel
label: 'Nummer',
Definiert die eindeutige Benennung des Elements.
Beispiel
name: 'number',
Definiert optional, ob ein Element im Bearbeitungs- oder Ansichtsmodus ist.
Wert | Beschreibung |
---|---|
false (Standard) | Das System legt den Bearbeitungs- oder Ansichtsmodus über die umliegende form. Das Element befindet sich im Bearbeitungsmodus, wenn keine form existiert. |
true | Das Element ist immer im Ansichtsmodus, unabhängig vom Zustand der umliegenden form. |
Definiert optional, wie das System die Positionen aufteilt.
Wert | Beschreibung |
---|---|
sum | Teilt den Wert zwischen den Positionen anteilig auf.
split: 'sum'
sum
|
diff | Die geteilten Positionen besitzen nach dem Splitten keinen Wert mehr, der Benutzer muss die unterschiedlichen Werte in der Bedienoberfläche manuell zuteilen. split: 'diff'
diff
|
Definiert die Validierung für das Element.
Beispiel
validation: [ { required: true } ]
Wert | Beschreibung |
---|---|
true | Blendet die Schaltflächen zum Splitten und Zusammenführen aus. |
false (Standard) | Blendet die Schaltflächen zum Splitten und Zusammenführen ein. |
Wert | Beschreibung |
---|---|
true | Übernimmt beim Splitten die Werte der vorherigen Zeile für alle als diff markierten Felder. |
false (Standard) | Als diff markierte Felder sind beim Splitten leer. |
Wert | Beschreibung |
---|---|
true | Blendet die Schaltfläche zum Löschen im Header der jeweiligen Position ein. |
false (Standard) | Blendet die Schaltfläche zum Löschen im Header der jeweiligen Position aus. |
Wert | Beschreibung |
---|---|
true | Blendet die Schaltfläche zum Hinzufügen im Header der Liste ein. |
false (Standard) | Blendet die Schaltfläche zum Hinzufügen im Header der Liste aus. |
... elements: [ { type: 'agorum.composite.form.element.splitList', name: 'splitList',split: 'sum'template: [ // Es muss mindestens ein festes Feld geben, das pro Position eindeutig ist, etwa eine Positionsnummer ... { type: 'agorum.composite.form.element.number', label: 'Menge', name: 'quantity', // Der Wert dieser Spalte ergibt sich aus allen Summen der aufgesplitteten Werte dieser Spalte split: 'sum' }, ...
Das folgende Video zeigt eine ungewollte Zusammenführung der Positionen. Es wird dieselbe Beschreibung Konferenzraum klein für zwei verschiedene Positionen gewählt. Dies führt dazu, dass das System die Mengen und Preise zusammenrechnet. Alle Angaben verschmelzen:
Alle Events in agorum.composite.form - element - Grundlegende Eigenschaften und in agorum.composite.form - element - list gelten.
Löst aus, wenn ein Benutzer eine Zeile splittet.
Beispiel
Das System übergibt als Parameter diese Struktur:
{ index: 0, // Position in der Liste (bezogen auf alle Werte) item: { ... } // Der neue Wert, der durch das Splitten erzeugt wurde (row) }