Form DataSource的autoQuery意思是是否自动为该datasource构造一个Query对象,如果选择no,则该datasource的query()为null,你可以在datasource的init去验证

其实这个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对象了
posted on 2008-07-13 12:14  jjxstudio  阅读(311)  评论(0编辑  收藏  举报