Step 1. Set Auto declaration
Set "Auto declaration" parameter to "Yes" value on the new control
Step 2. Create Form extension
- /// <summary>
- /// Extension class for <c>Form1</c> form methods.
- /// </summary>
- [ExtensionOf(formStr(Form1))]
- final class Form1_Extension
- {
- }
Step 3. Extend init method
- /// <summary>
- /// Initializes the Form1 form.
- /// </summary>
- public void init()
- {
- next init();
- Form1Overrides overrides = Form1Overrides ::construct();
- StringControl1.registerOverrideMethod(methodStr(FormStringControl, jumpRef),
- methodStr(Form1Overrides , StringControl1_jumpRef), overrides);
- }
Step 4. Create Overrides class
- /// <summary>
- /// Overrides class for <c>Form1</c> form
- /// </summary>
- class Form1Overrides
- {
- /// <summary>
- /// String control jump ref
- /// </summary>
- /// <param name = "_callingControl">Calling control</param>
- public void StringControl1_jumpRef(FormStringControl _callingControl)
- {
- FormRun formRun = _callingControl.formRun() as FormRun;
- Table1 table1 = formRun.dataSource(formdatasourcestr(Form1, Table1)).cursor() as Table1 ;
- Args args = new Args();
- Common record;
- // Some logic to find record from Table1
- args.record(record);
- MenuFunction menuFunction = new MenuFunction(menuitemDisplayStr(DisplayMenuItem), MenuItemType::Display);
- menuFunction.run(args);
- }
- }