ข้ามไปที่เนื้อหาหลัก
How to add/remove Filter on Display Method Axapta
public void context()
{
int selectedMenu;
formrun fr;
Args ag;
Name strtext;
querybuilddataSource qb1;
queryrun qr;
query q;
PopupMenu menu = new PopupMenu(element.hWnd());
int a = menu.insertItem('Filter By Field');
int b = menu.insertItem('Filter By Selection');
int c = menu.insertItem('Remove Filter');
;
q = TPI_SalesTableLineTC_ds.query();
qb1 = q.dataSourceTable(tablenum(TPI_SalesTableLineTC));
qb1 = qb1.addDataSource(TableNum(SalesTable));
qb1.addLink(FieldNum(TPI_SalesTableLineTC,TPI_SPO),FieldNum(SalesTable,TPI_SPO));
qb1.addRange(fieldnum(SalesTable, SalesType)).value(enum2str(SalesType::Blanket));
selectedMenu = menu.draw();
switch (selectedMenu)
{
case -1: //Filter by field
break;
case a:
ag = new args('SysformSearch');
fr = new formrun(ag);
fr.run();
fr.wait();
//Reading User entered value for filter process
strtext = fr.design().controlName('FindEdit').valueStr();
if(strtext)
{
//Creating a query for filter
qb1.addRange(FieldNum(SalesTable,TPI_RecNo)).value(strtext);
TPI_SalesTableLineTC_ds.query(Q);
TPI_SalesTableLineTC_ds.executeQuery();
}
break;
case b://Filter By Selection
qb1.addRange(FieldNum(SalesTable,TPI_RecNo)).value(RecNo.valueStr());
TPI_SalesTableLineTC_ds.query(Q);
TPI_SalesTableLineTC_ds.executeQuery();
break;
case c :// Remove Filter
q = new Query();
qb1 = q.addDataSource(tablenum(TPI_SalesTableLineTC));
qb1.clearLinks();
qb1.clearRanges();
TPI_SalesTableLineTC_ds.query(Q);
TPI_SalesTableLineTC_ds.removeFilter();
break;
Default:
break;
}
}
x
ความคิดเห็น
แสดงความคิดเห็น