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;
}
添加完后得到界面如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?