I have a form Simple List and Details List grid which display in the left Routes data and customers. Under the TabPage node I have list of customers left node of listpanel I have Select Customer To Asssign and In the Right Side Assigned customers. Now once I move from the grid next Route lets say Route-A to Route-B the list panel still exists with previous records of Route-A. Please how can I clear/empty listpanel records once I move next records from the grid. Please have a look my full code below. In below screenshot I want clear the record of Route-B since its belongs to Route-A.
[Form]
public class DAWCustSeq extends FormRun
{
SysListPanelRelationTableCallback listPanel;
container unassignedCustomer()
{
container assignedCustomer, data;
DirPartyTable dirPartyTable;
CustTable custTable;
DAWCustomerSeqMaster _seqMaster;
while select dirPartyTable join custTable where custTable.Party == dirPartyTable.RecId && dirPartyTable.RouteID == DAWRoutes_RouteID.valueStr()
notexists join _seqMaster
where _seqMaster.CustAccount == custTable.AccountNum
&& _seqMaster.Day == WeekDays.valueStr()
{
data = [custTable.AccountNum,
custTable.AccountNum,
custTable.name()
];
assignedCustomer +=[data];
}
return assignedCustomer;
}
container assignedCustomer()
{
container assignedCustomer, data;
DirPartyTable dirPartyTable;
CustTable custTable;
DAWCustomerSeqMaster _seqMaster;
while select dirPartyTable join custTable where custTable.Party == dirPartyTable.RecId && dirPartyTable.RouteID == DAWRoutes_RouteID.valueStr()
exists join _seqMaster
where _seqMaster.CustAccount == custTable.AccountNum
&& _seqMaster.Day == WeekDays.valueStr()
{
data = [custTable.AccountNum,
custTable.AccountNum,
custTable.name()
];
assignedCustomer +=[data];
}
return assignedCustomer;
}
public void init()
{
DAWCustomerSeqMaster _DAWCustomerSeqMaster;
container columns;
#ResAppl
columns = [0,0];
listPanel = SysListPanelRelationTableCallback::newForm(
element,
element.controlId(formControlStr(DAWCustSeq, Customers)), //1
/Assigned Customers/,//2
/Select Customers To Assign/, //3
#ImageCustomer,//4
tablenum(DAWCustomerSeqMaster),//5
fieldnum(DAWCustomerSeqMaster, CustAccount),//6
fieldnum(DAWCustomerSeqMaster, RouteID),
tablenum(DAWCustomerSeqMaster),//8
fieldnum(DAWCustomerSeqMaster, RouteID),//9
columns,
0, //11
'',//12
'',//13
identifierStr(assignedCustomer),//14
identifierStr(unassignedCustomer));//15
super();
listPanel.init();
}
public void refillListPane()
{
listPanel.parmRelationRangeValue(DAWCustomerSeqMaster.RouteID); //Route-A
listPanel.parmRelationRangeRecId(DAWCustomerSeqMaster.RecId);
listPanel.fill();
}
[DataSource]
class DAWCustomerSeqMaster
{
/// <summary>
///
/// </summary>
/// <returns></returns>
public int active()
{
int ret;
ret = super();
if(DAWRoutes.RouteID)
{
info(DAWRoutes.RouteID);
element.refillListPane();
}
return ret;
}
/// <summary>
///
/// </summary>
public void executeQuery()
{
QueryBuildDataSource queryBuildDataSource;
queryBuildDataSource = this.query().dataSourceTable(tablenum(DAWCustomerSeqMaster));
queryBuildDataSource.clearRanges();
queryBuildDataSource.addRange(fieldnum(DAWCustomerSeqMaster, RouteID)).value(queryValue(WeekDays.valueStr()));
super();
}
}
[DataSource]
class DAWRoutes
{
/// <summary>
///
/// </summary>
/// <returns></returns>
public int active()
{
int ret;
ret = super();
if(DAWRoutes.RouteID)
{
WeekDays.selection(WeekDays::None);
}
return ret;
}
}
[Control(/ComboBox/)]
class WeekDays
{
/// <summary>
///
/// </summary>
/// <returns></returns>
public int selectionChange()
{
int ret;
ret = super();
DAWCustomerSeqMaster_DS.executeQuery();
return ret;
}
}
[Control(/TabPage/)]
class Customers
{
/// <summary>
///
/// </summary>
public void pageActivated()
{
element.refillListPane();
super();
}
}
}