Form DataSource的autoQuery意思是是否自动为该datasource构造一个Query对象,如果选择no,则该datasource的query()为null,你可以在datasource的init去验证
其实这个query是非常简单的,你也可以自己来构造,设置autoQuery为no,然后在datasource init中加入以下代码
Query query;
;
其实在x++中,如果任务一复杂,就需要借助这个query对象了
其实这个query是非常简单的,你也可以自己来构造,设置autoQuery为no,然后在datasource init中加入以下代码
Query query;
;
if(! this.query()){
query=new Query();
query.addDataSource(this.table());
this.query(query);
}
在特定的情况下,我们需要设置AutoQuery为no,来自行构造查询,比方说,我想显示汇率大于50的货币,这个init方法看起来像是这样的
public void init()
{
Query query;
QueryBuildDataSource ds;
QueryBuildDataSource ds2;
;
super();
if(! this.query()){
query=new Query();
ds= query.addDataSource(this.table());
ds2=ds.addDataSource(tableNum(ExchRates));
ds2.addLink(fieldNum(Currency,currencyCode),fieldNum(ExchRates,currencyCode));
ds2.addRange(fieldNum(ExchRates,exchRate)).value('>50');
this.query(query);
}
}
{
Query query;
QueryBuildDataSource ds;
QueryBuildDataSource ds2;
;
super();
if(! this.query()){
query=new Query();
ds= query.addDataSource(this.table());
ds2=ds.addDataSource(tableNum(ExchRates));
ds2.addLink(fieldNum(Currency,currencyCode),fieldNum(ExchRates,currencyCode));
ds2.addRange(fieldNum(ExchRates,exchRate)).value('>50');
this.query(query);
}
}
其实在x++中,如果任务一复杂,就需要借助这个query对象了