x++ code to add hyperlink to a field in D365FO

Here is a way to provide hyperlink for field.



1.Create an Extension class to the form as below.

[ExtensionOf(formStr(TestHistory))]
public final class  TestHistoryForm_Extension
{


}

2.Copy onPostRun form eventhandler and write code as below.


    [FormEventHandler(formStr(TestHistory), FormEventType::PostRun)]
    public static void TestHistory_OnPostRun(xFormRun sender, FormEventArgs e)
    {
        FormStringControl   formCtrl = sender.design().controlName(formControlStr(TestHistory,TestHistory_Voucher));
        formCtrl .registerOverrideMethod(methodStr(FormStringControl, jumpRef), methodStr(TestHistoryForm_Extension, JumpRefId), sender);
    }


3.write definition for JumpRefId method

public void jumpRefId(FormControl _formControl)
    {
        MenuFunction    menuFunction;
        Args                  args;
        Voucher            voucher;
        TestTable          testTable;
        FormDataSource  fds;

        args = new Args();
        fds  = _formControl.dataSourceObject();
        voucher = _formControl.valueStr();
        
        testTable = TestTable::find(voucher);

        args.record(testTable);  
        args.caller(fds.formRun());            
        args.menuItemName(menuitemDisplayStr(LedgerTransTestForm));
        new menuFunction(menuItemDisplayStr(LedgerTransTestForm),MenuItemType::Display).run(args);
}

The same way we can override clicked method and other methods also.

Hope it helps.



Comments

Popular posts from this blog

x++ code to get Vendor Email Address based on Purpose in Dynamics 365 for Operations

x++ code to get Customer Address based on purpose in ax 2012