Creating a Progress Window in Dynamics NAV
If you have an application that performs some processing which can take a long time to complete, you should consider displaying a window that informs the user of the progress that is being made.
You can create a window in which each field is updated while the program is running. For example, the fields in a window display the count of the number of postings made. You can also display information about the record that is currently being processed. For example, the field in a window displays the number of the account that is currently being processed.
On the Tools menu, choose Object Designer.
In Object Designer, select Codeunit, and then choose the New button.
On the View menu, choose C/AL Globals.
On the Variables tab, in the Name field, enter ProgressWindow. In the Data Type field, select Dialog from the drop-down list.
On the Variables tab, on a new line in the Name field, enter ChartOfAcc. In the Data Type field, select Record from the drop-down list. In the Subtype field, select G/L Account from the table list.
In the C/AL Editor for the dialog, add the following code.
ProgressWindow.OPEN('Processing account number #1#######'); REPEAT SLEEP(1000); ProgressWindow.UPDATE(1,ChartOfAcc."No."); // Process the account. UNTIL ChartOfAcc.NEXT = 0; ProgressWindow.CLOSE;
The first line defines the string that will be displayed in the progress window. The part of the string that contains the number signs (#) and a number defines the field that will be displayed in the window. The number (1) refers to the field.
In this example, each entry in the G/L Account table is updated and the number of each account is displayed as it is updated.
The
SLEEP(1000);
function is necessary only to slow the processing so that you can see the progress window.