Re-posting it here with some extra comments, so that new developers can read and understand, when to use what method.
There are “only” 5 ways to close a form:
- Close - close the form. Similar to the 'X' button.
- CloseOK – close the form, and set the OK flag – called by the Commandbutton::Ok
- CloseCancel – close the form, and set the Cancel flag – called by the Commandbutton::Cancel
- CloseSelectRecord – close the lookup form, and set return record
- CloseSelect – close the lookup form, and set return value
The below methods (note their names are in past-tense) are used to determine if or how a form was closed:
- Closed – Returns true, if the form is no longer open
- ClosedOK – Return true, if the form was closed by the user clicking ‘OK’
- ClosedCancel – Returns true, if the form was closed by the user clicking ‘Cancel’
Finally, CanClose() is called inside super() of any of the close methods. If CanClose() returns false, the form is not allowed to close.
Hi,
ReplyDeleteWhat about infolog.close() method?
Regards,
Alex
---------
Microsoft Dynamics AX Add-on for developers(Improved IntellySense,
additional hotkeys etc) - http://www.axassist.com
Infolog.close() is a special method, called from the kernel (through infolog.formNotify()), when super() is called inside the close() method.
ReplyDeleteIt does not actually do anything visible, simply updates some global variables for lastActiveForm and document handling.
Or were you asking something else?
CanClose is certainly called AFTER closeOk or closeCancel. I have not tried any of the other routines..
ReplyDeleteWell, not really. If I am to be very precise, canClose is called inside closeOK and other close* methods.
ReplyDeleteWhat I meant by saing it's executed before is that canClose result will influence how the close methods behave.
The call stack would be like this:
closeOK before super
canClose before super
canClose after super
closeOK after super
hai when i am using element.close(); ,the form is closing and showing the same form which is empty.. can anyone help me ...
ReplyDelete