How to adding find,filter,remove filter on display method Form

Adding Find\Filter functionality on Display method
Override Context method of Form control which is using display method and provide code for filter. E.g I have done below for PhysicalInvent field of InventOnHandItem form.

void context()
{
    int selectedMenu;
    real test;
    formrun fr;
    Args ag;
    Itemname strtext;
    querybuilddataSource qb1;
    queryrun qr;
    query q;
    PopupMenu menu = new PopupMenu(element.hWnd());
    int a = menu.insertItem('Find');
    int b = menu.insertItem('Filter');
    int c = menu.insertItem('Remove Filter');


    selectedMenu = menu.draw();

    switch (selectedMenu)
    {
        case -1:
            break;
        case a:
            ag = new args('SysformSearch');
            fr = new formrun(ag);
            fr.run();
            fr.wait();
            strtext = fr.design().controlName('FindEdit').valueStr();
            if(strtext)
            {
                q = inventSum_Ds.query();
                qb1 =q.dataSourceTable(tablenum(InventSum));
                QB1.addRange(FieldNum(InventSum,PhysicalInvent)).value(SySQuery::value(strtext));
                INVENTSUM_DS.query(Q);
                INVENTSUM_ds.executeQuery();
            }
            break;
        case b:
            InventSum_DS.filter(FieldNum(InventSum,PhysicalInvent),Sysquery::value(InventSum.PhysicalInvent()));
            break;

        case c :
            InventSum_DS.removeFilter();
            break;
        Default:
            break;

    }
}

 

posted @ 2013-01-31 15:24  Fandy Xie  Views(689)  Comments(0Edit  收藏  举报