Form DataSource的autoQuery意思是是否自动为该datasource构造一个Query对象,如果选择no,则该datasource的query()为null,你可以在datasource的init去验证
其实这个query是非常简单的,你也可以自己来构造,设置autoQuery为no,然后在datasource init中加入以下代码
Query query;
;
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);
![]()
}
}
![]()
其实在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);
}
}

其实在x++中,如果任务一复杂,就需要借助这个query对象了


浙公网安备 33010602011771号