Filter and Sort the records of Grid in Ax 2012 with Example

My Table:Bill_TableData

I have a table named Bill_TabMethod with many fields. But I’am using two fields to filter. one is the name of the customer and another one is the name of the item which is purchased by the customer. Now iam going to filter the records by Customer Name as well as Item name specified by the user. for that i am using one string edit control, one button and one radio button control/

Second thing is for Sorting, for sorting i took one radio button with two items like Ascending and Descending.

CODE:

This is under form

public class FormRun extends ObjectRun

{

QueryBuildRange custname;

QueryBuildRange itemname;

}

Write this code under Datasource init() method

public void init()

{

super();

custname=this.query().dataSourceNo(1).addRange(fieldNum(Bill_TabMethod,CustName));

itemname=this.query().dataSourceNo(1).addRange(fieldNum(Bill_TabMethod,ItemName));

}

Write this code under datasource executeQuery() method

public void executeQuery()

{

if(FilterString.valueStr())

{

if(ChoiceButton.valueStr()==”CustName”)

custname.value(FilterString.valueStr());

else if(ChoiceButton.valueStr()==”ItemName”)

itemname.value(FilterString.valueStr());

}

super();

}

This is under Radiobutton Selection change Override Method

public int selectionChange()

{

int ret;

ret = super();

if(SortButton.valueStr()==”Ascending”)

{

Bill_TabMethod_ds.query().dataSourceNo(1).sortClear();

Bill_TabMethod_ds.query().dataSourceNo(1).addSortField(fieldNum(Bill_TabMethod,CustName),SortOrder::Ascending);

}

else if(SortButton.valueStr()==”Descending”)

{

Bill_TabMethod_ds.query().dataSourceNo(1).sortClear();

Bill_TabMethod_ds.query().dataSourceNo(1).addSortField(fieldNum(Bill_TabMethod,CustName),SortOrder::Descending);

}

SubmitButton.clicked();

return ret;

}

This is under Button Clicked Override method

void clicked()

{

super();

Bill_TabMethod_ds.executeQuery();

}

OUTPUTS:

Filter by Item name                                                          Filter by Customer Name

filterbyitemname filterbycustname

Sort by Descending                                                           Sort by Ascending

Descending Ascending

Advertisements