BINDEVENT(THISFORM, "update_form_controls", THIS, "set_for_state", 1)This action works. A call to THISFORM.update_form_controls fires the Control.set_for_state method on each control on the form. Apparently, the THISFORM in the BINDEVENT command in the INIT of the control is able to resolve the THISFORM reference at INIT-time.
THISFORM.o_form_coll && <-- the form collection with the control data.Inside the control INIT is:
lo_form = THISFORM && <-- point of failure because THISFORM is not yet valid. lo_coll = lo_form.o_form_coll lv_data = lo_coll.get_data(THIS.c_csr_dot_field)I know I am not the first person to address this and somewhere in the past I have seen and implemented strategies to handle it, but cannot remember what I or others did.