ID会自动递增的Dynamics Ax新表

Ari*_*MAZ 1 sql microsoft-dynamics axapta

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

表具有ID,NAME和SURNAME作为列。我希望用户输入他们的姓名和姓氏,但我希望他们的ID是唯一的,这将由系统创建。因此,我禁止用户输入ID。

我已经将ID设置为主键,但无法弄清楚如何使其自动递增。

你能给我提示吗?

Tas*_*sto 5

我面临着同样的问题。我在MSDN上找到了这种解释。在下面的网站上找到创建数字序列的步骤。

更新

步骤1

创建一个EDT-字符串类型

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

拖到表(FirstTable)字段中

第2步

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

创建num Sequence的路径是

“模块::组织管理....公共......数字序列...数字序列”

单击新建(数字序列)

现在将打开数字序列表,其中包含4个部分。

部分1.标识.....指定NumberSeqCode和名称

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

第3节。段....添加常数和字母数字(通过单击添加按钮并从下拉菜单中选择)

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

现在保存您的设置

第三步

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

和表格-URMODULEParameters。

所以我正在基于HRM模块创建数字序列.....所以我正在使用NumberSeqModuleHRM类和Table 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);
Run Code Online (Sandbox Code Playgroud)

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

在New方法中添加代码

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

添加的代码是

static client server NumberSequenceReference numRefAXSeqEDT()

{

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

}
Run Code Online (Sandbox Code Playgroud)

第四步

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

下面的作业对运行很重要,因为没有它,您的新编号序列将无法用于“参数”下的编号序列形式。这是自AX 2009以来的行为更改,在重新启动动态AX时将加载所有新的数字序列。在AX 2012中,所有数字序列在安装时都会创建到系统,因此重新启动AOS不会影响加载新的数字序列,这就是为什么运行作业以加载新的数字序列很重要的原因。

在工作中添加的代码是

static void jobName(Args _args)

{

    NumberSeqModuleHRM  NumberSeqModuleHRM = new NumberSeqModuleHRM();

    ;

    NumberSeqModuleHRm.load();

}
Run Code Online (Sandbox Code Playgroud)

第5步

执行上述作业后,我们新创建的数字序列参考“ AX Seq”将被添加到HRM模块----数字序列设置表

让我们检查一下

现在,单击“数字序列”并标识新创建的“数字序列参考”

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

第6步

现在,将代码添加到Forms Datasource方法的Create方法中

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

public void create(boolean _append = false)

{

    ;

    super(_append);



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

}
Run Code Online (Sandbox Code Playgroud)

步骤7

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