Monday 13 May 2019

D365 Disable grid field based on other field value

Disable grid field based on other field value in D365 FO


Here we will see how we can disable field in the grid based on the other field value.
1. Create a call extension for the form
2. Goto From the data source and in events copay active event
3. come to class you created in step one and past it.
4. Below is the sample code. 

[ExtensionOf(formStr(FormParameters))]
final class ParametersFormUP_Extension
{
   
    ///
    /// for UsagePrice the Group should must be disabled
    ///
    ///
    ///
    [FormDataSourceEventHandler(formDataSourceStr(FormParameters,FormDatasource), FormDataSourceEventType::Activated)]
    public static void FormDatasource_OnActivated(FormDataSource sender, FormDataSourceEventArgs e)
    {
        FormDataSource              fds = sender.formRun().dataSource(formDataSourceStr(FormParameters,FormDatasource));
        FormDatasourceTable       dsTable = fds.cursor();
        FormRun                     fr = sender.formRun();
        //FormControl                 fc = fr.design(0).controlName("FINMeters_FINRollover");
        //FormControl                 fcMeterType = fr.design(0).controlName("FINMeters_FINMeterType");

        //fc.enabled(meterTable.FINMeterType == FINMeterType::Continuous);
       
        fds.object(fieldNum(FormDatasourceTable ,fieldForGroup)).allowEdit(!(dsTable.AgreementType == AgreementType::UsagePricing));

    }

}

Update NuGet package to new MS D365FO version

1. Import the NuGet package files from LCS for that particular version please take the PU version files only. a. Goto LCS-->Asset Libra...