有关任何 Axapta 版本的问题:
- 如何检查“下一个”运算符是否可以与记录一起使用?
- 如何抑制调试器对不可接受的“下一个”运算符?
Thanks.
重现代码:
static void Job13(Args _args)
{
CustTrans ct1;
CustTrans ct2;
// let's assume that method 'one' search a record
select ct1; // where ct1.AccountNum == 'someAccount'
ct2.data(ct1.data());
// contract postcondition
Debug::assert(ct1.RecId != 0);
Debug::assert(ct2.RecId == ct1.RecId);
//////////////////////////////////
// let's assume that method 'two' accepts a custTrans record as parameter
Debug::assert(ct2.RecId != 0);
try
{
// Questions:
// 1. How to check that 'next' can be used?
// 2. How to suppress a debugger?
next ct2;
}
catch
{
Warning('catch it!');
}
}
+在 ax2009 中运行作业后创建的几个屏幕截图。
As per MSDN 文章 https://msdn.microsoft.com/en-us/library/aa845764.aspx:
select 语句仅获取一条记录或字段。获取
附加记录,可以使用下一条语句。下一个声明
获取表中的下一条记录。如果您使用 next 而不带
前面的 select 命令发生错误。不要将 next 与
首先只找到选项。如果需要遍历多条记录的话
使用 while select 语句更合适。
您已使用过next命令与ct2没有前面的select命令(您使用的ct1).
Update: Using if (ct1.found()) next ct1;
可以帮助您避免意外错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)