标签:
在Grid中若要显示display方法的字段,将该方法拖拽至Grid控件,设置DataSource为数据源表,设置DataMethod为该display方法名。
若在DataSource数据源中添加了display方法,并要求显示该字段,可将该方法拖拽到Grid控件,设置DataSource为数据源所在的表,设置DataMethod为该display方法名。
为Query添加过滤条件:
QueryBiuldRange qbrJournalName;
qbrJournalName = SysQuery::findOrCreateRange(InventJournalTrans_q.dataSourceTable(tableNum(InventJournalTable)), fieldNum(InventJournalTable, JournalNameId));
public static QueryBuildRange findOrCreateRange(QueryBuildDataSource _queryBuildDataSource, FieldId _fieldId);
该方法返回一个QueryBuildRange,可以调用这个静态方法创建Range条件。
public QueryBuildDataSource dataSourceTable(TableId table);
InventJournalTrans_q: 返回表的query
InventJournalTrans_q.dataSourceTable(tableNum(InventJournalTable)): 通过这个方法获取相关表的QueryBuildDataSource。
qbrJournalName.value(‘盘点‘); qbrJournalName.status(RangeStatus::Locked);
对于QueryBuildRange变量,可以调用value方法赋值,调用status方法设置变量的状态。可选的状态有
RangeStatus::Hidden //隐藏
RangeStatus::Locked //锁定
RangeStatus::Open //可操作
对于日期类型的QueryBuildRange变量,如果要检索时间段内的字段,可以使用如下方式:
qbrDate.value(FromDate.valueStr()+".."+ ToDate.valueStr());
它表示获取时间从FromDate到ToDate之间的记录。
查询的时候,我们调用按钮的clicked方法,先做输入参数合法性验证,然后再执行数据源的query。
void clicked() { super(); if(FromDate.dateValue() || FromDate.dateValue()) { if(FromDate.dateValue() > FromDate.dateValue()) { error(‘From date cannot greater than the end date!‘); } else { inventjournaltrans_ds.executeQuery(); } } else { error(‘Please enter from date and to date!‘); } }
在窗口打开的时候,我们可以覆写Form的init方法,为一些空间设置初始值。
public void init() { super(); ToDate.dateValue(systemDateGet()); }
我们可以覆写主表的executeQuery()方法,执行查询操作
public void executeQuery() { // Filter by journal name qbrJournalName = SysQuery::findOrCreateRange(InventJournalTrans_q.dataSourceTable(tableNum(InventJournalTable)), fieldNum(InventJournalTable, JournalNameId)); if(!firstFlag) { qbrJournalName.value(‘Null‘); firstFlag = true; } else { qbrJournalName.value(‘盘点‘); } qbrJournalName.status(RangeStatus::Locked); // Filter posted records qbrPosted = SysQuery::findOrCreateRange(InventJournalTrans_q.dataSourceTable(tableNum(InventJournalTable)),fieldNum(InventJournalTable, Posted)); qbrPosted.value(enum2str(NoYes::Yes)); qbrPosted.status(RangeStatus::Locked); qbrDate = SysQuery::findOrCreateRange(InventJournalTrans_q.dataSourceTable(tableNum(InventJournalTable)),fieldNum(InventJournalTable,PostedDateTime)); qbrDate.value(FromDate.valueStr()+".."+ ToDate.valueStr()); qbrDate.status(RangeStatus::Locked); super(); }
标签:
原文地址:http://www.cnblogs.com/keepmove/p/4597469.html