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

在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()

时间: 2024-08-28 00:47:42

Dynamics AX 盘点日记账行——笔记的相关文章

Dynamics AX 盘点日记账行

需求: 根据用户输入时间段(过账日期),查询盘点日记账行.要求显示一下字段: 日记账(JournalId), 日期,物料编号,尺寸,颜色,站点,仓库,库位,现有量,盘点数量,实际成本额. 设计: 创建窗体:InventCountedTable 添加数据源(Data Sources): InventJournalTrans(主表), InventTransOrigin, InventTrans, InventDim, InventJournalTable 将所有表的Allow属性设置成No,禁止用

Dynamics AX R2 安装Reporting Services 扩展

    今天Reinhard在VS中部署SSRS报表时,接到以下错误: 部署因错误而被取消.在报表服务器上,验证:-SQL Server Reporting Services 服务是否正在运行.     接着,Reinhard进入到AX中,检查系统的报表服务器配置是否正确.不知道怎么配置的同学可以查看Reinhard之前的博文 Dynamics AX 2012 R2 配置报表服务器  .检查发现,报表服务器中的配置也正确.Reinhard点击了一下 验证设置 按钮,收到以下错误: 无法连接到位于

Dynamics AX 2012 – Batch Jobs Not Executing

In Dynamics AX 2012, there are times when batch jobs appear to be stranded in a waiting status.  When this happens, the cause can typically be a batch server or batch group which is not set up properly.   However, if these are set up correctly and yo

微软 Dynamics AX 学习步骤

第一步:了解到AX的架构,AOT结构,了解AOT中表,窗体,类,job,菜单,菜单项的基础开发.知道代码可以写在那里,每个对象以及对象内部的具体设置.如果你不了解类,继承,这些,那么就需要找一下讲述类特性的书籍了.第二步:编写代码.不要觉得自己看了书就完了.还是得按照书上的代码一行一行自己敲出来.然后去想每句代码的含义.可能这样会很慢,但是我想如果能这样坚持十几天,后面就会变得很快甚至不需要看也可以.这里千万不能图快,欲速则不达.第三步:了解系统业务的操作,比如采购业务,销售业务,生产业务.然后

Dynamics AX 2012 R3 Demo 安装与配置 - 导入测试数据 (Step 4)

    在前面三节中,Reinhard分别讲解了如何配置安装环境,安装数据库服务器,AOS和客户端,安装后的编译和配置.如果一直跟随Reinhard的脚步,到这里,已经拥有一个没有数据的系统.     本节,Reinhard将要讲解怎样导入微软提供的测试数据.     首先,将AOS服务停止运行.进入计算机管理,服务,选中AOS服务,右键点击停止.稍等片刻,AOS服务已经停止运行.     接着,Reinhard要将当前空数据库进行备份,避免因导入测试数据失败造成的损失.     进入数据库管理

Dynamics AX 2012 - Report labels does not show up in report

Sometimes the report labels do not show in reports or the report shows label IDs like [email protected] instead of label values. There are two reasons to this type of issues: You have moved your AX service account from AX domain account from AX domai

Changes in Microsoft Dynamics AX 2012 InventTrans data model

The purpose of this post is to give an overview about the changes been made in the Dynamics AX 2012 data model related to inventory transactions. Before AX2012, the only table used for recording all the inventory transactions was InventTrans.  In AX2

Dynamics AX R2 业务系列-采购业务流程

    在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧.     国际惯例,从采购开始. 1.采购的主要职责     简单点说,采购的主要职责,是从供应商那里获取原料,以保证企业生产.运营.     全面点说,采购的主要职责,是保质保量.适时适价地为企业生产和运营提供原料.保质,主要是指采购要做好供应商资历评估,并配合质检做好原料品质控制工作.保量,主要是指在保证企业生产.运营的同时,不多买也不少买.适时,主要是指采购要跟踪

Microsoft Dynamics AX 2012: How to get Company,Customer and Vendor address in AX 2012

Scenario:  “How to get Addresses of “Customer, Vendor and Company” 1)      First we need to identify which table store address of each entity Table : LogisticsPostalAddress  : In Dynamics AX 2012 this is the main table which stores every address of e