过滤Form的数据源

1、先在form的声明的地方声明变量。

1 public class FormRun extends ObjectRun
2 {
3   QueryBuildRange criteriaPosted;
4 }

2、数据源(datasource)对应的表的ini方法。

1 public void init()
2 {
3   super();
4   criteriaPosted=this.query().dataSourceName('YouTable').addRange(fieldNum(YouTable,FieldName));
5 }

3、数据源的ExecuteQuery方法下。

1 public void executeQuery()
2 {
3   criteriaPosted.value(queryValue(Noyes::No));
4   super();//注意,父类的方法要后执行.
5 }

4、可以写一个checkbox,调用方法ExecuteQuery();这样就可以实现动态控制了。

5、数据源方法的区别。

(1)DS.Research(),保留现有条件,刷新数据,相当于F5的作用。

(2)DS.ExecuteQuery(),修改过渡条件后,必须重新执行查询。

    DS.Reread(),重新从表读取。

    DS.Refresh(),刷新数据。

6、也可以通过添加Filter过滤器方式添加查询。

1 InventTable_ds.filter(FieldNum(InventTable,ItemId),ItemIds);//添加
2 InventTable_ds.removeFilter();//删除
原文地址:https://www.cnblogs.com/Jinnchu/p/2663313.html