AX 7 / Dynamics 365 for operations: Enable / Disable form button through event handlers

To enable or disable button in form based on current selected record status through event handlers.

1.Create a button or choose a button to enable / disable in form.

2.Go to Form/Datasource/Events/OnActivated, right click and select "Copy event handler method".

3. Go to classes, create new class, paste it and edit code as below.

/// <summary>
/// This class has event handlers method for WHSWorkTable form.
/// </summary>
/// NS by Harry to enable/disable form controls through eventhandlers.
class HarryWHSWorkTableFormEventHandlers
{
    /// <summary>
    /// Enable or disable button.
    /// </summary>
    /// <param name="sender">sender is used as a parameter.</param>
    /// <param name="e">e is used as a parameter</param>
    [FormDataSourceEventHandler(formDataSourceStr(WHSWorkTableListPage, WHSWorkTable), FormDataSourceEventType::Activated)]
    public static void WHSWorkTable_OnActivated(FormDataSource sender, FormDataSourceEventArgs e)
    {
        #define.BUTTONNAME('YourButtonName')
        WHSWorkTable        whsWorkTable    = sender.cursor();
        FormRun             element         = sender.formRun();
        FormControl         YourButton     = element.design(0).controlName(#BUTTONNAME);

        YourButton.enabled(whsWorkTable.WorkTransType != WHSWorkTransType::Sales);
    }

}// NE by Harry to enable/disable form controls through eventhandlers.

Build the solution and refresh browser.

4. Can see button disabled in form.

Comments

Post a Comment