[Extensionof(formstr(SalesTable))]
final class SalesTableMutliselect_Extension
{
public static SysLookupMultiSelectCtrl msCtrl;
public void init()
{
next init();
InventSite inventSite;
ManufacturingPlantCtrl = SysLookupMultiSelectCtrl::construct(this,SalesLine_ManufacturingPlant_CAP, queryStr(InventSiteQuery_CAP));
}
public Query buildDocuTypeQuery()
{
Query docuTypeQry = new Query(queryStr(InventSiteQuery_CAP));
return docuTypeQry;
}
container getSelectedCodes(str ManufacturingPlant_CAP)
{
InventSite inventSite;
container tmpValues, conIds;
int idx;
if(ManufacturingPlant_CAP)
{
tmpValues = str2con(ManufacturingPlant_CAP, ';');
}
for(idx=1; idx<=conLen(tmpValues); idx )
{
inventSite = InventSite::find(conPeek(tmpValues, idx));
conIds = inventSite.SiteID;
}
return [conIds];
}
[FormDataSourceEventHandler(formDataSourceStr(SalesTable, SalesLine), FormDataSourceEventType::Initialized)]
public static void SalesLine_OnInitialized(FormDataSource sender, FormDataSourceEventArgs e)
{
Query docuTypeQry = element.buildDocuTypeQuery();
FormStringControl InventSites = element.design().controlName('SalesLine_ManufacturingPlant_CAP');
SalesLine salesLine = SalesLine::find();
msCtrl = SysLookupMultiSelectCtrl::construct(element,
InventSites ,
querystr(InventSiteQuery_CAP),
false,
[tableNum(InventSite), fieldNum(InventSite,SiteID)]);
msCtrl.refreshQuery(docuTypeQry);
msCtrl.set(element.getSelectedCodes(SalesLine.ManufacturingPlant_CAP));
}
[FormControlEventHandler(formControlStr(SalesTable, SalesLine_ManufacturingPlant_CAP), FormControlEventType::Modified)]
public static void SalesLine_ManufacturingPlant_CAP_OnModified(FormControl sender, FormControlEventArgs e)
{
FormRun element = sender.formRun();
FormControl purposeCtrl = element.design().controlName(formControlStr(SalesTable, SalesLine_ManufacturingPlant_CAP));
FormDataSource salesline_ds = element.dataSource(formDataSourceStr(SalesTable, SalesLine));
SalesLine salesLine = salesline_ds.cursor();
SalesLine.ManufacturingPlant_CAP = con2Str(msCtrl.getSelectedFieldValues(), ';');
SalesLine_ds.refresh();
SalesLine_ds.research(true);
}
}
Hi,
I have written a code for a Multiselect column(ManufacturingPlant_CAP) - In data source (Sales Line).- In Form (Sales Table).
and I want to get the value from- Table(InventSite) - Column(SiteID)- .
But I am getting form open Like as in the picture attached and also not able to select multiple fields.