Using the code example below, I want to show how to override the lookup method of a RecId/RefRecId field. Such a lookup is also referred to as a Referencelookup.
The example serves quite concretely to be able to select a financial dimension, but only one of the type cost center.
The following code is intended to demonstrate how to add lookup functionality to a data-unbound StringControl.
[Control("String")] class FormStringControl1 { public void lookup() { //super(); SysTableLookup systableLookup = SysTableLookup::newParameters(tableNum(CustGroup), this); systableLookup.addLookupfield(fieldNum(CustGroup, CustGroup), true); systableLookup.addLookupfield(fieldNum(CustGroup, Name), false); systableLookup.performFormLookup(); } }The next example is an extension of the above, but now a query is used to limit the values ??to be displayed.
[Control("String")] class FormStringControl1 { public void lookup() { //super(); SysTableLookup systableLookup = SysTableLookup::newParameters(tableNum(CustGroup), this); Query query; query = new Query(); query.addDataSource(tableNum(CustGroup)); query.dataSourceTable(tableNum(CustGroup)).addRange( fieldNum(CustGroup, CustGroup)).value("??"); systableLookup.parmQuery(query); systableLookup.addLookupfield(fieldNum(CustGroup, CustGroup), true); systableLookup.addLookupfield(fieldNum(CustGroup, Name), false); systableLookup.performFormLookup(); } }