- Every control (clsCtrl) belongs to a control row (clsCtrls).
- Control rows can be indexed in order to allow for multi-row editing.
- clsCtrls should eventually be renamed clsCtrlRow.
- I haven't decided if there needs to be a clsForm class for containing multiple control rows.
- Indexing is optional if you're only editing one row at a time.
- changes/1: change to Save() parameters
The way this is organized is a little messed up; the descendants of clsCtrls handle database interaction -- but shouldn't it be the descendants of clsFields? It works reasonably well as is, but some rethinking might be a good idea, once everything is all mapped out.
- clsCtrls (abstract)
- function Ctrl(<name>) → clsCtrl
- function FieldsObject() → clsForm_recs_indexed
- clsCtrl (abstract)
- function Field() → clsField
- function RowObject() → clsCtrls
- function DefaultValues() → array of mixed
- function ValStore() → mixed
- function ValShow() → string
- clsCtrls → clsCtrl array
- clsCtrl →