根据名称访问NumberSeq的正确方法是什么?

时间:2014-07-01 13:31:54

标签: axapta

我在USMF /组织管理/公共/号码序列/号码序列

中创建了新的号码序列

命名为New_NS

我发现了许多教程“如何使用它”,但我找不到任何会根据其名称返回数字序列。

结束了
NumberSequenceTable NST;
Num num;
ttsbegin;
select forupdate NST where NST.NumberSequence == 'New_NS';
if(!NST.RecId)
{
     throw error('New_NS' + ' does not exist!');
}

num = NumberSeq::numInsertFormat(NST.NextRec, NST.Format);
NST.NextRec = NST.NextRec + 1;

if(NST.InUse == NoYes::No)
{
    NST.InUse = NoYes::Yes;
}

NST.update();
ttsCommit;

有没有更好的方法如何根据字符串名称访问New_NS?

2 个答案:

答案 0 :(得分:3)

使用NumberSeq :: newGetNumFromCode。

Num num;

ttsbegin;
num=NumberSeq::newGetNumFromCode('New_NS').num();
ttscommit;
info(strfmt("Your number is %1.",num));

答案 1 :(得分:1)

数字序列始终与扩展数据类型相关联。然后,您可以使用此扩展数据类型访问数字序列。此外,您无需访问NumberSequenceTable表本身,而是使用NumberSeq类从序列中获取新数字。有关如何使用此类的示例,请参阅Generate Next Number Sequence by x++ code