Consider a scenario where, I required a StringEditControl and Clicking on Control a lookup is open where the list of Customer of selected Legal Entity are available. And After Selecting required Customer, Customer Id Or AccountNum is return form Lookup form.
For This purpose we have to create form, which will used as look Up.
Create a New form. Name It “FormCustomerLookUp”
In Data Source Create and New dataSource Name It CustomerTable and Point to CustTable.
Expand the Design node and Right Click on It and Add Grid, Now from CustomerTable Data Source, Drag and drop “AccountNum” and “Party” on Grid. It will create two String Edit Control on Grid bound with CustomerTable.
Now Select on “StringEdit:CustomerTable_AccountNum” select Properties. Form Properties window Set Its Auto declaration property to True.
Now expend the Methods Node form and Right click and override the Init method from there and add following line of code there.
element.selectMode(CustomerTable_AccountNum);
Now right click on Design Node and Update following properties.
Width=360
Style=LookUP.
Now Create a form where this lookup will use. For this Article I have to create very simple form with only on stringEdit textbox.
On its Design Right click and create StringEditButton with Name “LookUpTest” and from Its property window Auto Declare Property is set to Yes and lookupButton property to “Always”.
Now Add two method, One used to Register control with Lookup, and Second method will use to call lookup form and gets its value.
protected void configureCustomerLookUp(FormStringControl stringControl)
{
if (stringControl)
{
stringControl.visible(true);
stringControl.registerOverrideMethod(
methodStr(FormStringControl, lookup),
identifierStr(CustomerLookUp), this);
}
}
Second method will be called on lookup button click
private void CustomerLookUp(FormStringControl stringControl)
{
Args args = new Args(identifierStr(FormCustomerLookUp));
FormRun lookupFormRun;
args.parm(“”);
args.caller(this);
lookupFormRun = ClassFactory::formRunClassOnClient(args);
lookupFormRun.init();
stringControl.performFormLookup(lookupFormRun);
lookupFormRun.wait();
}
If you have already some knowledge above code is easily Understanable, where Ax form Name set in args and instance of from is created at runtime and then attached the form to string controls performLookUp method.
Now run the form. And click on lookup button on textbox.
Click on LookUp Button
Selected Value will show on text box when you click on lookup grid
Nice Experiments, Now you can use This functionality as you want,