Ari*_*MAZ 1 sql microsoft-dynamics axapta
我是Dynamics AX的新手,并且非常努力地学习它。我创建了一个新表,一个显示该表的新表单。一切正常...
表具有ID,NAME和SURNAME作为列。我希望用户输入他们的姓名和姓氏,但我希望他们的ID是唯一的,这将由系统创建。因此,我禁止用户输入ID。
我已经将ID设置为主键,但无法弄清楚如何使其自动递增。
你能给我提示吗?
我面临着同样的问题。我在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