Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum.composite.form


agorum.composite.form.element.splitList

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.

Beispiel: Oberfläche zum Aufteilen von Positionen


Oberfläche zum Aufteilen von Positionen

Positionen splitten

 

Skript zum Splitten von Positionen

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;

Parameter


Alle Parameter in element gelten. Zusätzlich gelten folgende Parameter.

labelPosition

Wert Beschreibung
top Das Label ist über dem Feld.
left Das Label ist links vom Feld.

type

Definiert den type des Elements, etwa agorum.composite.form.element.text.


Beispiel

type: 'agorum.composite.form.element.text',

label

Definiert den Text / das Label vor dem Element.


Beispiel

label: 'Nummer',

name

Definiert die eindeutige Benennung des Elements.


Beispiel

name: 'number',

readOnly

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.

split

Definiert optional, wie das System die Positionen aufteilt.

Wert Beschreibung
sum Teilt den Wert zwischen den Positionen anteilig auf.
  • Das System prüft automatisch, ob die eingetragenen Werte der gesplitteten Positionen der Gesamtsumme entsprechen, wenn es sich dabei um eine Zahl handelt.
  • Das System kopiert bei anderen Metadatentypen die ursprünglichen Einträge.
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
 

validation

Definiert die Validierung für das Element.


Beispiel

  validation: [
            {
              required: true
            }
          ]
validation

disableSplit

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.

copyDiffValues

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.

showRowDelete

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.

showAppend

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.

Parameter „split“

...  
  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'
        },
...
Nicht teilbare Einträge

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:

Weitere Parameter

Sie können weitere Parameter​​​​​ in das Skript einfügen (siehe element.list).

Events


Alle Events in agorum.composite.form - element - Grundlegende Eigenschaften und in agorum.composite.form - element - list gelten.

itemSplitted

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