Dynamics Axe新表,ID自动递增

时间:2013-09-23 19:37:47

标签: sql axapta microsoft-dynamics

我是Dynamics AX的新手,并且非常努力地学习它。我创建了一个新表,一个显示表的新表单。一切都很好......

表将ID,NAME和SURNAME作为列。我希望用户输入他们的姓名,但我希望他们的ID是唯一的,由系统创建。所以我禁用了用户输入的ID。

我已将ID作为主键但我无法弄清楚如何使其自动增加。

请你给我一些暗示吗?

1 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。我找到了this explanation on MSDN。在this website下面找到创建数字序列的步骤。

<强>已更新

第1步

创建EDT - 字符串类型

所以,我创建了一个名为“AXSeqEDT”的EDT,标签为“AX Seq”

拖入表格(FirstTable)字段

第2步

现在创建一个新的数字序列

创建num Sequence的路径是

“模块::组织管理.......常见.........数字序列......数字序列”

点击新建(编号顺序)

现在将打开数字序列表格----包含4个部分。

第1节。标识.....指定NumberSeqCode和Name

第2节。范围参数...从下拉列表中选择范围

第3节。细分....添加常量和字母数字(通过点击添加按钮并从下拉列表中选择)

第4节。常规......连续的复选标记和指定“最小和最大和下一个”字段

现在保存您的设置

第3步

现在将相应的手动代码添加到类 - NumberSeqModuleURMODULE

和表 - URMODULEParameters。

所以我基于HRM模块创建数字序列.....所以我使用的是NumberSeqModuleHRM类和表HRMParameters

现在转到AOT --- Classes-NumberSeqModuleHRM --- loadModule()

注意::这里我们可以添加查看现有实现的代码

添加的代码是::

/* setup discussion number sequence - it is global */

    datatype.parmDatatypeId(extendedtypenum(AXSeqEDT));

    datatype.parmReferenceHelp(literalstr("@SYS32633"));

    datatype.parmWizardIsContinuous(true);

    datatype.parmWizardIsManual(NoYes::No);

    datatype.parmWizardIsChangeDownAllowed(NoYes::No);

    datatype.parmWizardIsChangeUpAllowed(NoYes::No);

    datatype.parmWizardHighest(99999);

    datatype.parmSortField(12);



    this.create(datatype);

现在转到AOT ---表--- HRMParameters ---方法-----点击新方法

添加代码在新方法

注意::这里我们可以添加查看现有实现的代码

添加的代码

static client server NumberSequenceReference numRefAXSeqEDT()

{

    return NumberSeqReference::findReference(extendedTypeNum(AXSeqEDT));

}

第4步

为了将我们新创建的数字序列引用添加到我们的模块,请编写以下作业并执行它

以下作业对于运行很重要,因为没有它,您的新数字序列将无法用于参数下的数字序列表单。这是AX 2009的行为更改,其中所有新的数字序列在重新启动Dynamic AX时加载。在AX 2012中,在安装时为系统创建了所有数字序列,因此重新启动AOS不会影响加载新的数字序列,这就是运行作业以加载新数字序列的重要原因。

The Job中添加的代码

static void jobName(Args _args)

{

    NumberSeqModuleHRM  NumberSeqModuleHRM = new NumberSeqModuleHRM();

    ;

    NumberSeqModuleHRm.load();

}

第5步

执行Above Job后,我们新创建的编号序列参考“AX Seq”将被添加到HRM模块----编号序列设置表单

让我们检查一下

现在点击Number Sequence并识别新创建的Number Seq Reference

识别编号序列参考后----将编号序列编码分配给编号序列参考.....从下拉列表中选择

第6步

现在在Form Datasource方法的Create方法中添加Code

Goto-AOT-Forms-FirstForm-Datasources-FirstTable-Methods-Override方法(创建)

public void create(boolean _append = false)

{

    ;

    super(_append);



    FirstTable.AXSeqEDT = NumberSeq::newGetNum(HRMParameters::numRefAXSeqEDT(),true).num();

}

第7步

现在保存所有设置.....现在打开我们的表单-FirstForm

相关问题