If forms-read-only
is nil
, the user can modify the fields
and records of the database.
All normal editing commands are available for editing the contents of the displayed record. You cannot delete or modify the fixed, explanatory text that comes from string formatting elements, but you can modify the actual field contents.
If the variable forms-modified-record-filter
is non-nil
,
it is called as a function before the new data is written to the data
file. The function receives one argument, a vector that contains the
contents of the fields of the record.
The function can refer to fields with aref
and modify them with
aset
. The first field has number 1 (one); thus, element 0 of the
vector is not used. The function should return the same vector it was
passed; the (possibly modified) contents of the vector determine what is
actually written in the file. Here is an example:
(defun my-modified-record-filter (record) ;; Modify second field. (aset record 2 (current-time-string)) ;; Return the field vector. record) (setq forms-modified-record-filter 'my-modified-record-filter)
If the variable forms-new-record-filter
is non-nil
, its
value is a function to be called to fill in default values for the
fields of a new record. The function is passed a vector of empty
strings, one for each field; it should return the same vector, with
the desired field values stored in it. Fields are numbered starting
from 1 (one). Example:
(defun my-new-record-filter (fields) (aset fields 5 (login-name)) (aset fields 1 (current-time-string)) fields) (setq forms-new-record-filter 'my-new-record-filter)