This also works SQLFORM.smartgrid(..., onvalidation=crud.archive...
But, I now discover archive never saves the original record. You can
edit the record and it saves the edits, but it never gets the first
version of it.
This statement from the Official Book"on updating, it stores a copy of
the record (as it was before the update)" is incorrect, at least as
far as smartgrid is concerned. I haven't tried it with SQLFORM by
itself or with CRUD.