AX2012:在表单初始化时捕获SysInfoAction



情况:我通过SysInfoAction(确切地说是SysInfoAction_FormrunQuery)从错误消息(信息日志)中打开一个表单,如下所示(压缩了一位):

query.addDataSource(tableNum(WDPErrorLogView)).addRange(fieldNum(WDPErrorLogView, ErrorOutboundMessage)).value(SysQuery::value(resultRecId));
error("@WDP1299", '', SysInfoAction_FormrunQuery::newFormnameQuery(formStr(WDPErrorLog), query));

问题:我在这里调用的表单有多个选项卡,因为它可以通过各种表中的查询打开。我想捕获这个调用记录,不仅可以过滤通过的记录(由于SysInfoAction,这种情况已经发生了),还可以激活相应的选项卡页面。

我以为element.args().record()会包含这个调用记录,但令我惊讶的是,它没有。有什么想法可以保持这个记录吗。。。或者,至少是它的表id?

这很容易。只需为ClassesSysInfoAction_FormrunQuery中的对象/调用者添加一个parmMethod。例如,复制静态方法newFormnameQuery并将其称为newFormnameQueryWithCaller,然后添加一个额外的参数,然后在parm方法中使用与newFormnameQuery相同的样式设置该参数。

然后在您的ClassesSysInfoAction_FormrunQueryrun中,它在其中设置args记录,只需添加args.caller(...)并设置调用者对象(如果存在)。

相关内容

最新更新