过滤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();//删除