Wenn neue Tupel in eine Relation eingefügt werden, entscheidet in der Regel der Anwendungsbenutzer, welche Werte das neue Tupel enthalten soll. Manchmal kann es aber auch sinnvoll sein, dass bestimmte Attributswerte durch den Modul-Programmierer vorgegeben sind. Diese können im Array 'values' eingetragen werden. Das Array muss mit den Namen der Attribute indiziert werden. Neue Tupel werden durch die Aktionen 'neues_tupel', '(multi_)hinzufuegen' und '(multi_)verschieben' erzeugt, entsprechend steht der Eintrag 'values' in den Bereichen 'neues_tupel' und 'anzeige' von 'modul_param' zur Verfügung.
Bei der Verwendung in 'neues_tupel' werden die in 'values' vorgegebenen Werte im Eingabe-Formular angezeigt. Diese Werte können unter Umständen vom Anwender verändert werden. Der Modul-Programmierer kann im Eintrag 'aendern_cols' (siehe Abschnitt ) vorgeben, welche Felder vom Anwender verändert werden dürfen. Bei der Verwendung in 'anzeige' werden die in 'values' vorgegebenen Werte nur intern verarbeitet, der Anwender hat keinen Einfluss darauf.
Die Werte in 'values' können vom Modul-Programmierer fest vorgegeben werden. Alternativ kann er aber auch eine SQL-Anfrage eintragen, die zur Laufzeit ausgewertet wird. Aus dem Ergebnis der Anfrage wird dann der Wert des ersten Attributs im ersten Tupel genommen. Die SQL-Anfrage muss als String eingegeben werden, der mit ``SQL:`` beginnt. Für 'values' in 'anzeige' steht außerdem die Möglichkeit zur Verfügung, Platzhalter zu verwenden. Diese werden durch Werte aus dem Ergebnis von 'query' ersetzt, wobei immer das letzte in der HTML-Ausgabe angezeigte Tupel zählt.
Das Beispiel erzeugt eine Tabelle der Mitarbeiter des Lehrstuhls. Zusätzlich können neue Mitarbeiter eingefügt werden. Dabei ist der Wert des Attributs 'mitarbeiternummer' (Primärschlüssel der Relation 'mitarbeiter') vom Modul-Programmierer vorgegeben und wird zur Laufzeit aus der SQL-Anfrage bestimmt. Da 'mitarbeiternummer' nicht in aendern_cols auftaucht, kann der Anwender dieses Feld nicht abändern.
tabellenid => "mitarbeiter",
leittabelle => "mitarbeiter",
anzeige => array (
aktionen => array (neues_tupel => 1),
),
neues_tupel => array (
values=>array(
mitarbeiternummer=>"SQL:
SELECT max(mitarbeiternummer)+1 FROM mitarbeiter",
),
aendern_cols=>array( "titel", "name",
"vorname", "bemerkung", "typ", "firma" ),
),
);
modul_tabelle_list($modul_param);
tabellenid => "mitarbeiter",
leittabelle => "mitarbeiter",
anzeige => array (
aktionen => array (neues_tupel => 1),
),
neues_tupel => array (
values=>array(
REQ=>array(
mitarbeiternummer=>"SQL:
SELECT max(mitarbeiternummer)+1 FROM mitarbeiter",
),
),
),
);
modul_tabelle_list($modul_param);