情况: 我正在通过错误消息(信息日志)中的 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?
答案 0 :(得分:0)
这很容易。只需将对象/调用者的parmMethod添加到\Classes\SysInfoAction_FormrunQuery
即可。复制静态方法newFormnameQuery
并将其称为newFormnameQueryWithCaller
,然后添加一个额外的参数,然后在parm方法中使用与newFormnameQuery
相同的样式设置该参数。
然后在\Classes\SysInfoAction_FormrunQuery\run
设置args
记录的位置,只需添加args.caller(...)
并设置调用方对象(如果存在)。