首页 > 其他 > 详细

Dynamics AX 盘点日记账行——笔记

时间:2015-06-24 18:18:08      阅读:318      评论:0      收藏:0      [点我收藏+]

在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!);
    }
}
void clicked()

在窗口打开的时候,我们可以覆写Form的init方法,为一些空间设置初始值。

技术分享
public void init()
{
    super();

    ToDate.dateValue(systemDateGet());
}
public void init()

我们可以覆写主表的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();
}
public void executeQuery()

 

Dynamics AX 盘点日记账行——笔记

原文:http://www.cnblogs.com/keepmove/p/4597469.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!