Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum.composite.form


agorum.composite.form.element.grid

Dieses Element dient zur Darstellung von Werten und Eingabefeldern in nach Spalten angeordneten Listen. Sie können damit:

agorum.composite.form.element.grid erbt alle Grundeigenschaften von element.

Unterschiede zwischen list und grid


Die beiden Möglichkeiten zur Oberflächengestaltung, agorum.composite.form.element.grid und agorum.composite.form.element.list, unterscheiden sich darin, wie Benutzer die Informationen anzeigen lassen und bearbeiten können.

Verhalten agorumcomposite.form.element.list agorum.composite.form.element.grid
Anzeige von vielen Posten limitierte Anzeige von Posten auf einer Seite, Blättern auf andere Seiten Anzeige weiterer Werte durch Scrollen 
Spaltenanzeige feste Spaltenanzeige aller Spalten  auswählbare Spaltenanzeige, beschränkt auf angezeigte Spalten
Bearbeitung der editierbaren Felder Bearbeitung in der Listenansicht Bearbeitung 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 list meistens einfach durch grid ersetzen. Nur Parameter und Funktionen, die sich auf das Seitenblättern und das direkte Bearbeiten in der Listenansicht beziehen, sind bei grid nicht verfügbar.

Beispiel einer Oberfläche


 

Beispiel einer Oberfläche

Ein Doppelklick auf eine Position (Zeile) öffnet folgende Ansicht:

Detailansicht einer Position

Ein fehlerhafter Eintrag wird wie folgt in der Detailansicht angezeigt, in diesem Beispiel nach Herauslöschen des erforderlichen Texts in Spalte 1:

Anzeige eines fehlerhaften Eintrags in der Detailansicht

Ein fehlerhafter Eintrag wird wie folgt in der Listenansicht angezeigt, in diesem Beispiel nach Herauslöschen des erforderlichen Texts in Spalte 1 in der Detailansicht:

Anzeige eines fehlerhaften Eintrags in der Listenansicht

Skript zur Oberfläche

let aguila = require('common/aguila');

// fill test values
let testValue = [];
for (let i = 0; i < 100; i++) {
  testValue.push({
    col1: {
      type: 'custom',
      value: 'Value1_' + i,
      hidden: false,
    },
    user_ag_tags: null,
    col2: null,
    col3: {
      type: 'custom',
      value: new Date(),
    },
    col4: 'value1',
    col5: 'Das ist ein Beispieltext.',
    col6: {
      type: 'custom',
      icon: 'aguila-icon local_airport',
    },
    col7: {
      type: 'custom',
      value: '+',
    },
    col8: {
      type: 'custom',
      value: 20520.24,
    },
  });
}

let form = aguila.create({
  width: 1200,
  height: 600,
  type: 'agorum.composite.form.basic',
  elements: [
    {
      type: 'agorum.composite.form.element.grid',
      name: 'listField',
      // showError: 'always',
      // readOnly: true,
      label: 'Test',
      // showAppend: true,
      // showRowDelete: true,
      // showRowMove: true,
      // hideHeader: true,
      // tableWidth: 2000,

      // general actions  
      actions: {
        duplicate: true,
        setColumnValues: true,
      },
      template: [
        {
          type: 'agorum.composite.form.element.text',
          name: 'col1',
          label: 'Spalte 1',
          flexible: true,
          hidden: false,
          width: 100,

          actions: {
            setColumnValues: false,
          },

          validation: [
            {
              required: true,
            },
          ],
        },
        {
          // use of metadata
          type: 'agorum.composite.form.element.text',
          name: 'user_ag_tags',
          label: 'Spalte 2',
          width: 100,
        },
        {
          // boolean sample
          type: 'agorum.composite.form.element.boolean',
          name: 'col2',
          label: 'Spalte 3',
          width: 100,
          text: 'Ja, bitte',
          readOnlyHidden: true,
        },
        {
         // date sample
          type: 'agorum.composite.form.element.date',
          name: 'col3',
          label: 'Spalte 4',
          width: 134,
        },
        {
         // select sample
          type: 'agorum.composite.form.element.select',
          name: 'col4',
          label: 'Spalte 5',
          restricted: true,
          data: [
            {
              value: 'value1',
              text: 'Wert 1',
            },
            {
              value: 'value2',
              text: 'Wert 2',
            },
            {
              value: 'value3',
              text: 'Wert 3',
            },
            {
              value: 'value4',
              text: 'Wert 4',
            },
          ],
          width: 134,
        },
        {
         // textDisplay sample
          type: 'agorum.textDisplay',
          name: 'col5',
          label: 'Spalte 6',
          width: 200,
          required: true,
        },
        {
         // button with icon sample
          type: 'agorum.composite.form.element.button',
          name: 'col6',
          label: 'Spalte 7',
          icon: 'aguila-icon drive_eta',
          width: 54,
        },
        {
         // button with text sample
          type: 'agorum.composite.form.element.button',
          name: 'col7',
          label: 'Spalte 8',
          value: 'Y',
          readOnlyHidden: true,
          width: 54,
        },
        {
          // number sample
          type: 'agorum.composite.form.element.number',
          name: 'col8',
          label: 'Spalte 9',
          width: 104,
          format: ',000.00',
          calculator: true,
        },
      ],
      value: testValue,
    },
  ],
});

form
  .down('listField')
  .on('action', data => {
    console.log('action', data);
  })
  .on('itemDeleted', data => {
    console.log('deleted', data);
  })
  .on('itemMoved', data => {
    console.log('moved', data);
  });

form;

grid Parameter


Zusätzlich zu den Parametern von element können Sie folgende Parameter verwenden:

Parameter Beschreibung Mögliche Werte
actions Definiert Aktionen auf Zeilenebene, die ein Benutzer im Kontextmenü ausführen kann. Die Aktionen können global für grid angegeben werden oder auf template-Ebene pro Spalte. Siehe actions Parameter
compactHeader Stellt den Header in der Detailansicht in einer kompakten Form dar. Nur die Symbole für Vor und Zurück sowie die Anzeige der angezeigten Elemente auf der rechten Seite existieren, um Platz zu sparen. Boolescher Wert, Standardwert: false
Detailansicht mit kompaktem Header                
hideHeader Ausblenden der Kopfzeile mit den Spaltennamen in der Detailansicht Boolescher Wert, Standardwert: false
Detailansicht mit ausgeblendeter Kopfzeile
label Angezeigter Name (Label) der Grid-Liste. Die Anzeige führt dazu, dass das System das grid-Element genauso eingerückt darstellt wie andere Elemente in einer form, wenn die Standardeinstellungen verwendet werden. Zeichenkette
showAppend Blendet das Symbol + zum Hinzufügen von neuen Positionen ein.

 

 
Boolescher Wert, Standardwert: false
showRowDelete Blendet das Symbol Zeile löschen in der Listenansicht im Kontextmenü und in der Detailansicht ein, wodurch Benutzer eine Position aus der Liste löschen können.

 

 
Boolescher Wert, Standardwert: false
showRowMove Blendet die Symbole zum Verschieben von Einträgen in der Listenansicht im Kontextmenü und in der Detailansicht ein, wodurch Benutzer Elemente in der Liste verschieben können.

 

 
Boolescher Wert, Standardwert: false
template Definiert die Darstellung der jeweiligen Spalten einer Zeile in der Tabelle. Darin enthalten sind form-Elemente oder aguila-widgets.
  • Sie können alle Parameter von element oder aguila-widget verwenden.
  • Sie können durch die Angabe von actions die Standardeinstellungen von actions der Grid-Liste pro Spalte überschreiben.
  • Definieren Sie mindestens eine Spalte als flexible=true und andere Spalten mit einer festen width, sodass die Liste sinnvoll die gesamte Breite verwendet.
  • Das System lädt alle Angaben für die Darstellung aus der Metadaten-Definition, wenn name ein definiertes Metadatum ist.
  • Sie können weitere Parameter definieren, die dann die Parameter aus der Metadaten-Definition überschreiben oder ergänzen.
  • Sie können zu Spalten, die sich automatisch aus einer metadata-list-Definition ergeben, noch weitere eigene Spalten hinzuzufügen.
 

Hinweis: Die Spalte name darf nicht mit einem _ (Unterstrich) beginnen. Diese Schreibweise ist ausschließlich für interne Zwecke reserviert.

value Übergibt die Werte für die Grid-Liste als Array mit map-Einträgen, die zu der Definition in template passen müssen. Array

Hinweis: Alle Werte befinden sich im Speicher und verbrauchen somit RAM.

actions Parameter

Parameter Beschreibung Mögliche Werte
duplicate Aktiviert die Aktion Zeile duplizieren im Kontextmenü in der Listenansicht und in der Detailansicht, mit der Benutzer die aktuelle Zeile in der Liste kopieren können.
Das System übernimmt die Zustände der Zellen, etwa disabledreadOnlyhidden.

 

 
Boolescher Wert, Standardwert: false
setColumnValues Aktiviert das Vererben von Werten einer Spalte nach oben, unten oder in beide Richtungen.
Das System übernimmt nur die Werte, nicht die Zustände wie disabledreadOnlyhidden.

 

 
Boolescher Wert, Standardwert: false

grid Events


Alle Events in element gelten. Zusätzlich gelten die folgenden Events.

Event Beschreibung Hinweise
action Löst aus, wenn ein Benutzer auf ein Symbol innerhalb der Grid-Liste klickt. Das System übergibt als Parameter diese Struktur: 
{   
  name: 'col1', // Spaltenname
  index: 0,   // Position in der Liste (bezogen auf alle Werte)
  path: [ 0, 'col1' ]  // Pfad zum auslösenden Element
}
changed Löst aus, wenn ein Benutzer einen Wert in einem Feld ändert und das Feld verlässt.
Dieses Event löst erst aus, sobald der Benutzer mit seiner Eingabe fertig ist.

Bei grid löst das changed-Event unterschiedlich aus:

  • Für das jeweils geändert Feld in einer Spalte und Zeile.
  • Für die ganze grid, wenn ein Benutzer eine neue row zur Liste hinzufügt oder löscht.

Für weitere Informationen zu changed siehe agorum.composite.form.element - Grundlegende Eigenschaften

Das System übergibt als Parameter diese Struktur: 
{
  value: 'current value',      // aktueller Wert des Felds
  index: 0,                    // Index der Zeile, in der die Änderung stattfand
  name: 'col1',                // Name des auslösenden Elements
                               // ist nicht belegt beim input-Event für die Zeile oder ganze grid
  path: [ 0, 'col1' ]          // Pfad zum auslösenden Element
}
input Löst aus, wenn ein Benutzer einen Wert in einem Feld ändert. 

Bei grid löst das input-Event unterschiedlich aus:

  • Für die Spalte selbst. Hier enthalten value und oldValue den Wert der geänderten Spalte.
  • Für die ganze Zeile. Hier enthalten value und oldValue den Wert der gesamten Zeile, in der die Änderung stattfand.
  • Für die ganze grid. Hier enthalten value und oldValue den Wert der gesamten Liste.

Für weitere Informationen zu input siehe agorum.composite.form.element - Grundlegende Eigenschaften

Das System übergibt als Parameter diese Struktur: 
{
  value: 'current value',      // aktueller Wert des Felds
  oldValue: 'previous value',  // Wert vor der Änderung
  index: 0,                    // Index der Zeile, in der die Änderung stattfand
  name: 'col1',                // Name des auslösenden Elements
                               // ist nicht belegt beim input-Event für die Zeile oder ganze grid
  path: [ 0, 'col1' ]          // Pfad zum auslösenden Element
}
itemAppended Löst aus, wenn ein Benutzer ein Element zu der Grid-Liste hinzufügt. Das System übergibt als Parameter diese Struktur: 
{
  item: [ ... ],   // der Wert der neuen Zeile
  index: 99,       // Position in der Liste (bezogen auf alle Werte der Liste), zu der das Element hinzugefügt wurde
}
itemDeleted Löst aus, wenn ein Benutzer ein Element der Grid-Liste löscht. Das System übergibt als Parameter diese Struktur: 
{
  item: [ ... ],  // der Wert dieser Zeile
  index: 0        // Position in der Liste (bezogen auf alle Werte der Liste), in der das Element zuvor war
}
itemMoved Löst aus, wenn ein Benutzer ein Element der Grid-Liste verschiebt. Das System übergibt als Parameter diese Struktur: 
{
  item: [ ... ],   // der Wert dieser Zeile
  fromIndex: 0,    // Position in der Liste (bezogen auf alle Werte der Liste), bevor das Element verschoben wurde
  toIndex: 1       // Position nach dem Verschieben
}
valueChanged Löst aus, wenn sich mindestens ein Wert innerhalb der Listen-Werte ändert. Das System übergibt als Parameter den neuen Wert von value, d. h. das gesamte Array der Grid-Liste.

Tipp: Sie können mit dem Event input gezieltere Informationen darüber erhalten, was der Benutzer in der Liste geändert hat. 

Innerhalb von valueChanged können Sie die value der form oder des Elements nicht ändern, da ansonsten eine Endlosschleife die Folge wäre. Sofern dies dennoch notwendig ist, ändern Sie den Wert über setImmediate. Ignorieren Sie dann zwingend das darauffolgende valueChanged-Event, etwa mit einem Flag oder durch Prüfung des Values auf Änderung.

grid Funktionen


Für weitere Informationen zu den Funktionen set und get siehe list Funktionen.