more than one way..
pragmatic: Double the layout, one with locked field, one with 'open' fields. The button would just go to another layout. The 'open' layout has one single button 'back', whatever name, that goes to the locked layout
trigger: The button sets a $$variable, ie $$Lock="open" (although I prefer numeric values..), the button can be a toggle (first click opens, second click closes again). Then, add a trigger by entering fields with a script that checks for $$lock. If not "open" leave the field (for example by the 'revert record/request' script step), otherwise set $$lock to "locked", enter the field. This way, one single field can be edited (if $$lock is unchanged, one can edit as long as $$lock is not resetted, by the same or by a second button. ($$Vars are per user and per session)