Form datasource Event Handler in d365 fo x++

 


Datasource event handler:

Written:

// Datasource - event handler for written
    [FormDataSourceEventHandler(formDataSourceStr(FormName, DataSourceName), FormDataSourceEventType::Written)]
    public static void DataSourceName_OnWritten(FormDataSource sender, FormDataSourceEventArgs e)
    {
        FormRun         form              = sender.formRun();
        FormDataSource  DatasourceName_ds = form.dataSource(formDataSourceStr(FormName, DataSourceName)) as FormDataSource;
        TableName       buffTable         = DatasourceName_ds.cursor();
    }



initValue:

// Datasource - EventHandler for datasource initvalue
    [FormDataSourceEventHandler(formDataSourceStr(FormName, DataSourceName), FormDataSourceEventType::InitValue)]
    public static void DataSourceNames_OnInitValue(FormDataSource sender, FormDataSourceEventArgs e
    {
        FormRun          formRun             = sender.formRun();
        FormDataSource   DataSourceName_ds   = formRun.dataSource(formDataSourceStr(FormName,DataSourceName)) as FormDataSource;
        TableName        buffTable           = DataSourceName_ds.cursor();
    }


Activated:

//Datasource - Event handler for data source activated method
    [FormDataSourceEventHandler(formDataSourceStr(FormName, DataSourceName), FormDataSourceEventType::Activated)]
    public static void DataSourceName_OnActivated(FormDataSource sender, FormDataSourceEventArgs e)
    {
        DataSourceName buffDataSource = sender.cursor();  
        FormDataSource DataSourceName_ds = sender.formRun().dataSource("DataSourceName");
        FormRun element = sender.formRun();
    }



Init:

  // Datasource - event handler for data source init
    [FormDataSourceEventHandler(formDataSourceStr(FormName, DataSourceName), FormDataSourceEventType::Initialized)]
    public static void DataSourceName_OnInitialized(FormDataSource sender, FormDataSourceEventArgs e)
    {
        FormDataSource datasourceName_ds = sender.forRun().dataSource("DataSourceName");
        FormRun element = sender.formRun();
    }



ValidateWrite:
// DataSource - eventhandler for datasource validatewrite
    [FormDataSourceEventHandler(formDataSourceStr(FormName, DataSourceName), FormDataSourceEventType::ValidatingWrite)]
    public static void DataSourceName_OnValidatingWrite(FormDataSource sender, FormDataSourceEventArgs e)
    {
        var datasource = sender as FormDataSource;
        var args = e as FormDataSourceCancelEventArgs;
        if (args != null && datasource != null)
        {
            // write your own logic
        }
    }



Form event handler: 


OnInitialized:
// Form  - event handler for form OnInitialize
    [FormEventHandler(formStr(FormName), FormEventType::Initialized)]
    public static void FormName_OnInitialized(xFormRun sender, FormEventArgs e)
    {

        FormDataSource DataSourceName_ds = sender.dataSource(formDataSourceStr(FormName, DataSourceName));
            //Or
        FormDataSource DataSourceName_ds = sender.dataSource('DataSourceName');

    }



Closing:
   
// form- event handler for form closing
    [FormEventHandler(formStr(FormName), FormEventType::Closing)]
    public static void FormNamee_OnClosing(xFormRun sender, FormEventArgs e)
    {
        FormDataSource datasource_ds    = sender.dataSource(formDataSourceStr(FormName, DataSourceName));
        TableName      buffTable        = datasource_ds.cursor();
    }



Init:
// Form - event handler for form init.
    [PostHandlerFor(formStr(FormName), formMethodStr(FormName, init))]
    public static void FormName_Post_init(XppPrePostArgs _args)
    {
        FormRun form             = _args.getThis();
        FormDesign design        = form.design();
        FormControl variableName = design.controlName(formControlStr(FormName, controlName));
        FormControl variableName = design.controlName(formControlStr(FormName, controlName));
    }

Comments

Popular posts from this blog

Get Current Worker data in d365 fo x++

Table Level Event Handler in d365 fo x++