Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum.composite.form
Dieses Element stellt Positionen (Zeilen) in Listenform dar und erlaubt das Aufsplitten der Postionen, etwa für die Zuweisung von verschiedenen Kostenstelle bei der Kontierung.
Sie legen beim Erstellen einer splitGrid-Oberfläche fest, welche Spalten (Felder) in der Oberfläche angezeigt werden und welche dieser Felder aufgesplittet werden. Dabei gibt es zwei Möglichkeiten, abhängig vom Typ des aufgesplitteten Felds:
Achtung: Sie benötigen zum Aufsplitten von Positionen mindestens ein eindeutiges Feld, das nicht aufgesplittet wird und nicht bearbeitet werden darf.
agorum.composite.form.element.splitGrid erbt alle grundlegenden Eigenschaften von element.
Die beiden Möglichkeiten zur Oberflächengestaltung, agorum.composite.form.element.splitGrid
und agorum.composite.form.element.splitList
, unterscheiden sich darin, wie Benutzer die Informationen anzeigen lassen und bearbeiten können.
Verhalten | agorumcomposite.form.element.splitList | agorum.composite.form.element.splitGrid |
---|---|---|
Anzeige von vielen Posten | limitierte Anzeige von Posten auf einer Seite, Blättern auf andere Seiten | Anzeige weiterer Werte durch Scrollen |
Aufsplitten der Positionen | Aufsplitten in der Listenansicht | Aufsplitten in der Anzeige eines Postens, der durch Doppelklicken ausgewählt wird (Detailansicht) |
Anzeige von Validierungshinweisen | Anzeige in der Listenansicht bei der Bearbeitung, keine Anzeige für die gesamte Liste | Anzeige in der Detailansicht bei der Bearbeitung, Hervorhebung in der Listenansicht bei fehlerhaften Einträgen |
Tipp: Sie können splitList meistens einfach durch splitGrid ersetzen, wenn Sie eine vorhandene splitList auf splitGrid umstellen wollen.
let aguila = require('common/aguila'); let form = aguila.create({ type: 'agorum.composite.form.basic', name: 'form', labelPosition: 'top', elements: [ { type: 'agorum.composite.form.element.splitGrid', name: 'splitGrid', 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 splitGrid-Elementen entspricht. // Dadurch können die Werte den entsprechenden Spalten zugeordnet werden. // Die Namensgebung ist frei und kann beliebig angepasst werden. setImmediate(() => { form.set('splitGrid.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;
Zusätzlich zu den Parametern von element können Sie folgende Parameter verwenden:
Parameter | Beschreibung | Mögliche Werte |
---|---|---|
copyDiffValues | Steuert das Verhalten beim Aufsplitten von Positionen für Spalten, für die der split Parameter mit dem Wert diff gesetzt ist. Dient dazu, den Wert der Spalte, für die diff gesetzt ist, beim Aufsplitten in alle aufgeteilten Zeilen zu übernehmen. | Boolescher Wert, Standardwert: false |
disableSplit | Blendet die Schaltfläche zum Splitten aus. | Boolescher Wert, Standardwert: false |
label | Angezeigter Name (Label) der Grid-Liste. Optional. | Zeichenkette |
readOnly | Dient zur Anzeige der Split-Liste im Lesemodus, wodurch das Aufsplitten der Positionen verhindert wird. | Boolescher Wert, Standardwert: false |
showAppend | Blendet das Symbol + zum Hinzufügen von Zeilen in der Listenansicht und im Header der jeweiligen Position ein.
|
Boolescher Wert, Standardwert: false |
showRowDelete | Blendet das Symbol Zeile löschen in der Detailansicht ein, wodurch Benutzer komplette Positionen oder Aufteilungen löschen können. | Boolescher Wert, Standardwert: false |
template | Definiert die Spalten einer Zeile. Darin enthalten sind form-Elemente oder aguila-Widgets. | Siehe template Parameter |
Parameter | Beschreibung | Mögliche Werte |
---|---|---|
label | Angezeigter Name des Felds (der Spalte) | Zeichenkette |
name | Eindeutiger Name |
Hinweis: Die Spalte name darf nicht mit einem _ (Unterstrich) beginnen. Diese Schreibweise ist ausschließlich für interne Zwecke reserviert. |
readOnly | Dient zur Anzeige des Felds im Lesemodus, ohne dass eine Bearbeitung möglich ist. | Boolescher Wert, Standardwert: false
Hinweis: Setzen Sie Spalten, die nicht gesplittet werden sollen, auf readOnly, um ungewollte Bearbeitung zu verhindern. |
split | Legt fest, dass ein Feld gesplittet werden kann. Sie können Felder mit form-Element text oder number splitten. |
|
validation | Definiert die Validierung für dieses Feld. Sie benötigen die Validierung, wenn Sie nur vollständige Summen und die entsprechenden Kostenstellen akzeptieren möchten. Füllt ein Benutzer in der Bedienoberfläche beides nicht aus, wird eine Fehlermeldung ausgegeben. | validation: [ { required: true } ] |
Alle Events in element gelten.