情况:我通过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(...)
并设置调用者对象(如果存在)。