我在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?
答案 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 。