Hi, Readers.
I saw a very interesting question a few days ago, is it possible to create a message box with a timer in Business Central? They want to close a message after 10 seconds.
Yeah, although we can’t do a perfect one, we can easily do a similar one.😃
Test Video:
How is this done?
This time we can use Dialog data type.
Dialog.Open Method: Opens a dialog window.
Dialog.Update Method: Updates the value of a ‘#’-or ‘@’ field in the active window.
Dialog.Close Method: Closes a dialog window that has been opened by the OPEN method.
These methods are mainly used to create a progress bar in Business Central.
More details: Progress indicator (Progress bar)
The following is a very simple example:
On the page:
PS: System.Sleep Method: Returns control to the operating system for a specified time.
Source Code:
pageextension 50100 SalesOrderListExt extends "Sales Order List"
{
actions
{
modify("Print Confirmation")
{
trigger OnBeforeAction()
var
MyDialog: Dialog;
MyNext: Integer;
Text000: Label 'The reports in the 204-207 range are replaced by the following updated reports in the 1304 to 1307 range.\.\.\.\This message will be closed in 10 seconds.\#1';
begin
MyNext := 11;
MyDialog.Open(Text000, MyNext);
repeat
Sleep(1000);
MyNext := MyNext - 1;
MyDialog.Update();
until MyNext = 1;
MyDialog.Close();
end;
}
}
}
Note: There is no OK button in the Dialog, only Cancel, which means you can cancel the process midway, but you cannot click OK to continue.
END
Hope this will help.
Thanks for reading.
ZHU
コメント