CoC: Register override jumpref method on form control

Step 1. Set Auto declaration 

Set "Auto declaration" parameter to "Yes" value on the new control

Step 2. Create Form extension

  1. /// <summary>
  2. ///     Extension class for <c>Form1</c> form methods.
  3. /// </summary>
  4. [ExtensionOf(formStr(Form1))]
  5. final class Form1_Extension
  6. {
  7.     
  8. }

Step 3. Extend init method

  1. /// <summary>
  2. ///     Initializes the Form1 form.
  3. /// </summary>
  4. public void init()
  5. {
  6.     next init();

  7.     Form1Overrides overrides = Form1Overrides ::construct();

  8.     StringControl1.registerOverrideMethod(methodStr(FormStringControl, jumpRef),
  9.         methodStr(Form1Overrides , StringControl1_jumpRef), overrides);
  10. }

Step 4. Create Overrides class

  1. /// <summary>
  2. ///     Overrides class for <c>Form1</c> form
  3. /// </summary>
  4. class Form1Overrides 
  5. {
  6.     
  7.     /// <summary>
  8.     ///     String control jump ref
  9.     /// </summary>
  10.     /// <param name = "_callingControl">Calling control</param>
  11.     public void StringControl1_jumpRef(FormStringControl _callingControl)
  12.     {
  13.         FormRun formRun = _callingControl.formRun() as FormRun;

  14.         Table1 table1 = formRun.dataSource(formdatasourcestr(Form1, Table1)).cursor() as Table1 ;

  15.         Args args = new Args();

  16.         Common record; 

  17.         // Some logic to find record from Table1

  18.         args.record(record);

  19.         MenuFunction menuFunction = new MenuFunction(menuitemDisplayStr(DisplayMenuItem), MenuItemType::Display);
  20.         menuFunction.run(args);
  21.     }
  22. }