Thursday, 29 July 2021

D 365 FO Get object of Caller Form in Extension Class

 [ExtensionOf(formStr(PurchCreateFromSalesOrder))]

final class DXN_PurchCreateFromSalesOrder_extension 

{

   

    [PostHandlerFor(formStr(PurchCreateFromSalesOrder), formMethodStr(PurchCreateFromSalesOrder, init))]

    public static void PurchCreateFromSalesOrder_Post_init(XppPrePostArgs args)

    {

        FormRun             formRun    = args.getThis();

        str                 callerFormName;


        callerFormName = formRun.args().caller().name();

        info(strfmt("%1",callerFormName));

    }

}



Thank you,

Keep Daxing :)

Tuesday, 13 July 2021

D 365 FO Form field level query lookup

Go to the field for which you want to add the query-based lookup, select the field under field, select the lookup method, paste the below code, and change wherever required.


For me, I'm Adding the Customer details lookup for the field

public void lookup()

        {

            Query                   query = new Query();

            QueryBuildDataSource    queryBuildDataSource;

            SysTableLookup          sysTableLookup;

            super();


            sysTableLookup = SysTableLookup::newParameters(tableNum(CustTable), this);

            queryBuildDataSource = query.addDataSource(tableNum(CustTable));


            sysTableLookup.addLookupField(fieldNum(CustTable, AccountNum));

            sysTableLookup.addLookupField(fieldNum(CustTable, Party));

            sysTableLookup.addLookupField(fieldNum(CustTable, RecId));


            sysTableLookup.parmQuery(query);

            sysTableLookup.performFormLookup();

        }



Thank you

Keep Daxing :)

D 365 FO OnActivated(xFormRun eventhandler) extension method to hide the control.

 [FormEventHandler(formStr([FormName]), FormEventType::Activated)]

    public static void LWSOrderTable_OnActivated(xFormRun sender, FormEventArgs e)

    {

        FormDataSource          [DataSourceName]_ds    = sender.dataSource(formDataSourceStr([FormName], [DatasourceTableName]));

        FormTabControl          [ControlTabName]   = sender.design().controlName(formControlStr([FormName], [FormControlName]));

        if([Condition] == NoYes::Yes)

        {

            [ControlTabName].visible(true);

        }

        else

        {

            [ControlTabName].visible(false);

        }

    }