Hello,
I add multi selected lookup to a field in datasource ,
when Iopen form and I create new record , i get the lookup, I chose values
But the problem is when I add second record , I get the same values selected as the first in lookup
[Form]
public class ShippingModeTable extends FormRun
{
SysLookupMultiSelectCtrl msCtrl;
public Query buildDlvModeQuery()
{
Query dlvModeQry = new Query(queryStr(ShippingModeLookup));
return dlvModeQry;
}
container getSelectedCodes(str _codeStr)
{
DlvMode dlvMode;
container tmpValues, conIds, conName;
int idx;
if(_codeStr)
{
tmpValues = str2con(_codeStr, ';');
}
for(idx=1; idx<=conLen(tmpValues); idx )
{
dlvMode = DlvMode::find(conPeek(tmpValues, idx));
conIds = dlvMode.RecId;
conName = dlvMode.Code;
}
return [conIds, conName, conIds];
}
[DataSource]
class ShippingModeTable
{
[DataField]
class ShippingMode
{
///
///
///
public void modified()
{
ShippingModeTable shippingModeTable = ShippingModeTable_ds.cursor();
shippingModeTable.ShippingMode = con2Str(msCtrl.getSelectedFieldValues(), ';');
ShippingModeTable_ds.refresh();
ShippingModeTable_ds.research(true);
}
public void lookup(FormControl _formControl, str _filterStr)
{
//super(_formControl, _filterStr);
Query dlvModeQry = element.buildDlvModeQuery();
FormStringControl shippingMode = element.design().controlName('ShippingModeTable_ShippingMode');
EOLEShippingModeTable shippingModeTable = ShippingModeTable_ds.cursor();
msCtrl = SysLookupMultiSelectCtrl::construct(element,
shippingMode,
querystr(ShippingModeLookup),
false,
[tableNum(DlvMode), fieldNum(DlvMode,Code)]);
msCtrl.set(element.getSelectedCodes(shippingModeTable.ShippingMode));
ShippingModeTable_ds.refresh();
ShippingModeTable_ds.research(true);
}
}
}
}
