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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เริ่ม ต้นเขียนโปรแกรมกับ กับ X++

date Functions Axapta X++