Funktionalität zur Darstellung von Checkboxen vor/nach Formular-Inputs
In manchen Fällen ist es Sinnvoll, dass Änderungen an Datenbeständen dokumentiert werden, sodass Folgebearbeiter nicht alle Feldinhalte prüfen müssen.
Dazu bietet die Formular-Engine eine Funktion an, welche zu einer benannten Liste von Feldern diese Checkboxen automatisch erzeugt und zum Input-Feld hinzufügt.
Das Formularobjekt $FrmObj ist ein Objekt der Formular-Klasse
Die $_POST - Variablen des Formular werden als Array mit dem Namen 'postname' dargestellt.
Im Beispiel: CHANGE_FIELDS => Array ( [MANDT] => 1 [SHORTTEXT] => on [TAGS] => on [SAP_KUNNR] => on [SAP_VKBUR] => on )
// --------------------------------------------------------------------
// Start: Feldänderungen sollen mit einer Checkbox ergänzt werden:
$FrmObj->FieldChangeCBSettings ['postname'] = 'CHANGE_FIELDS'; // POST-Variable für die Change-CheckBoxen
$FrmObj->FieldChangeCBSettings ['position'] = 'left'; // Anordnung left|right vom Input-Feld
// Liste der Felder, welche eine Change-Checkbox erhalten sollen:
$change_fields = [
'SHORTTEXT' => 0,
'DESCRIPTION' => 0,
'TAGS' => 0,
'SAP_KUNNR'=> 0,
'SAP_VKBUR'=> 0
];
// aktuelle Daten mit der Liste abmischen:
if (isset ( $data ['CHANGE_FIELDS'] )) {
$change_fields = array_merge ( $change_fields, unserialize ( $data ['CHANGE_FIELDS'] ) );
}
// Liste an Formular-Engine geben:
$FrmObj->setFieldChangeCB ( $change_fields );
// Trick, damit CHANGE_FIELDS bei jedem Post aktualisiert wird, auch wenn es keinen ausgewählten Eintrag gibt!
$FormHtml [] = $FrmObj->hidden ( 'CHANGE_FIELDS[MANDT]', 1 );
// Ende: Feldänderungen sollen mit einer Checkbox ergänzt werden:
// --------------------------------------------------------------------