zoukankan      html  css  js  c++  java
  • AX 2009 实现对display 方法过滤

    在ax2009中,只能对表字段进行筛选过滤。如果在窗体上显示的不是表字段而是一个display 方法。是不可能像字段一样过滤。如图

    要想对display进行筛选过滤,必须在对应的窗体下面的grid里找到对应的display方法字段。然后重载context方法,并添加如下代码

    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("根据字段过滤");    

      int b = menu.insertItem("根据所选子段过滤");    

      int c = menu.insertItem("取消过滤");    

    ;

        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        

          q = RGD_StudentInfo_ds.query();        

          qb1 = q.dataSourceTable(tablenum(RGD_StudentInfo));        

          qb1 = qb1.addDataSource(TableNum(HRMCourseTable));        

          qb1.addLink(FieldNum(RGD_StudentInfo,hrmCourseId),FieldNum(HRMCourseTable,hrmCourseId));        

          qb1.addRange(FieldNum(HRMCourseTable,hrmCourseRoomId)).value(strtext);        

          RGD_StudentInfo_ds.query(q);        

          RGD_StudentInfo_ds.executeQuery();    

        }    

        break;

          case b: // Filter By Selection        

        q = RGD_StudentInfo_ds.query();        

        qb1 = q.dataSourceTable(tablenum(RGD_StudentInfo));        

        qb1 = qb1.addDataSource(TableNum(HRMCourseTable));        

        qb1.addLink(FieldNum(RGD_StudentInfo,hrmCourseId),FieldNum(HRMCourseTable,hrmCourseId));        

        qb1.addRange(FieldNum(HRMCourseTable,hrmCourseRoomId)).value(disTest.valueStr());        

        RGD_StudentInfo_ds.query(q);        

        RGD_StudentInfo_ds.executeQuery();        

        break;    

        case c : // Remove Filter        

        q = new Query();        

        qb1 = q.addDataSource(tablenum(RGD_StudentInfo));        

        qb1.clearLinks();        

        qb1.clearRanges();        

        RGD_StudentInfo_ds.query(Q);        

        RGD_StudentInfo_ds.removeFilter();        

        break;

          Default:    

       break;

    }

    添加完后得到界面如下:

     
  • 相关阅读:
    一个有趣的C语言问题
    PHP 管理树莓派
    JeeSite | 保存信息修改记录封装
    SQL Server学习内容(一)
    Java面试题大汇总
    Spring框架快速入门
    单例模式
    简要分析一下java中线程的生命周期
    mybatis中的高级查询
    mybatis中的分页插件
  • 原文地址:https://www.cnblogs.com/dingkui/p/2567424.html
Copyright © 2011-2022 走看看