0

我正在解决如何在 JS 控件加载项和 NAV 之间交换数据。

现在,当我想从 JS 控件加载项中获取数据到 NAV 时。我从 NAV、JS 方法调用,在 JS 方法中我调用 NAV 方法。请参见下面的示例。

是否有一些简单的方法,例如从 NAV 首次调用时返回值?因为我需要一种方法来自 JS 的数据。

谢谢您的帮助。

C/AL 代码

d::someMethod()
//I need to work with data from JS here
CurrPage.d.getDataFromJS();

d::receiveDataFromJS(data: Variant)
//here I receive data from JS

JS

function getDataFromJS() {
   var result = 'bla bla';
   Microsoft.Dynamics.NAV.InvokeExtensibilityMethod('receiveDataFromJS', [result]);   
}
4

1 回答 1

1

您可以通过事件从插件返回数据。只需在您的 dll 中定义事件并重新包含您的插件,然后它应该在 C/AL 中可见。要在 JavaScript 端触发事件,请使用Microsoft.Dynamics.NAV.InvokeExtensibilityMethod('eventName', [parameters]); 您在此处解析的参数然后将您的数据解析到 NAV 端。我希望这可以帮助你

于 2019-02-05T14:47:55.323 回答