在 Navision 中通过引用运行代码单元

WSN*_*oob 1 navision dynamics-nav

我有一个以生产订单行表作为源的代码单元,并且运行触发器显示这两行代码:

ProdOrderLine.GET(Status,'xxxx',10000);
ExecuteFunction(ProorderLine);
Run Code Online (Sandbox Code Playgroud)

XXXX 代表生产订单号,但如您所见,有人对其进行了硬编码。如何在其他地方(例如在表单上)但根据我所在的生产订单行通过引用来调用此代码单元?我尝试执行 SetRANGE 例程或直接调用 codeunit.run 方法,但到目前为止没有运气。帮助!!

Ken*_*gel 5

在设计模式下打开代码单元或其副本进行测试,并设置表号。代码单元的属性。然后,您可以在 OnRun 函数中将传递给 codeunit.run 的记录作为 Rec 引用。

传递记录的方式各不相同,但一种方法是使用以下语法:

Codeunit.RUN(CodeUnitNumber, Record)
Run Code Online (Sandbox Code Playgroud)

SetRange 对于传入的变量来说是不够的,因为它只过滤,但不选择记录。如果我正确理解您的问题,您将不需要 OnRun 中的 ProdOrderLine.GET。只需调用 ExecuteFunction(Rec) 即可。

您没有提及版本号或 ExecuteFunction 函数的作用,但请尝试一下。

您可以在以下位置找到更多信息: https://msdn.microsoft.com/en-us/library/dd301214 (v=nav.90).aspx 和 https://msdn.microsoft.com/en-us/library/ dd355035(v=nav.90).aspx

我为 Navision 开发已经有几年了,我已经没有办法再进行测试了。希望这能为您指明正确的方向,而且我没有忘记任何重要的事情。