SAFweb2-Release 2.1.17

Anwenden der Komponente <x-safweb.table>

In der Blade View kann die Tabelle mit

<x-safweb.table :tableDef="$tableDef" :data="$data"/>

integriert werden.

Info:
Die Variable $tableDef und $data müssen definiert sein.

Format von $data

array(
    0 => [
        'columName1' => 'value',
        'columName2' => 'value',
        'columName3' => 'value',
        'columName_n' => 'value',
    ],
    1 => [
        'columName1' => 'value',
        'columName2' => 'value',
        'columName3' => 'value',
        'columName_n' => 'value',
    ],
    n
)

Format von $tableDef

Die Namensgebung ist Casesentitive. D.h. es sollten alle Feld/Spaltennamen einheitlich klein oder groß geschrieben werden.

Table-Definition hat vier Segmente:

  1. header - Tabellenkopf Label
  2. columns - Tabellen-Spalten Typ und Inhalte
  3. meta - Sonderangaben
  4. footer - Summen
array (
    'header' => [
    ],
    'columns' => [
    ],
    'meta' => [
    ],
    'footer' [
    ]
);

Format header

Hier werden den Columns nur Labels für den Tabellenkopf vergeben.

'columnname' => 'Label for this Column',
...

Format columns

Hier wird festgelegt, wie die Datenzeilen und spalten in der Tabelle dargestellt werden.

'columnname' => [
    'type' => 'boolean|number|float|integer|string|date|year|currency|percent',
    'fnedit' => 'url or link',
    'fnedit_if_sub' => 'url_or_link',
    'if_sub_key' => 'sub_key'
    'fneditsub' => 'url_or_link',
    '<color>_on' => '<field-value>',
    'sub' => 'relationname',
    'btnfn' => 'url_or_link',
    'icon' => 'name'
],
'columnname' => [],
...

Precision

Bei Floatingpoint Types, kann eine precision zusätzlich angegeben werden. Damit wird die Anzahl der Nachkommastellen festgelegt.

'column' => ['type' => 'float,4']

Ist dieser Parameter gesetzt, wird auf jede Key-Spalte (getKeyName) der angegebene Link gelegt. In Daten ohne Modell, muss 'meta' => 'keyname' angegeben sein.

fnedit_if_sub

Es kann ein Link auf eine Relation über deren ID zur Relation gelegt werden. Muss zusammen mit if_sub_key definiert sein. Das ist die ID der Relation.

fneditsub

Ein beliebiger Link auf eine Relation. Hier wird nicht die Relations-ID benötigt wie bei fnedit_if_sub.

<color>_on

'orange_on' => 'GU'

Legt den Hintergund der Zelle fest, bei Auftreten eines bestimmten Wertes innerhalb der Zelle.

momentan ist nur orange_on fest implementiert.

sub

Hiermit kann über den Relationsnamen auf ein zugeordnetes Modell zugegriffen werden. Der Relationsname muss im Modell definiert sein.

$row->$key->{$columnData['sub']};

Format meta

Meta dient dazu, ergänzende Informationen an die Komponente zu übergeben. Momentan ist nur eine Funktion implementiert:

'keyname' => 'Spaltenname bei Array Daten'

Bei Modellen kann über getKeyName() die ID des Satzes ermitellt werden. Bei Arraydaten geht das nicht, daher muss das ID-Feld separat angegeben werden.

Es werden die Spalten festgelegt, für die Berechnungen erfolgen sollen. Derzeit ist die Summenfunktion implementiert.

'feldname' => ['fn' => 'sum'],