Axapta Dynamics AX 2009:转到主表窗体-如何选择默认行?
我正在覆盖窗体设计中下拉控件上的jumpRef方法。下面是该方法的代码。当前,它显示表的表单,所有行都可见。不过,到目前为止还不错,我希望在启动表单上选择的特定行在显示时在新的主表表单上突出显示Axapta Dynamics AX 2009:转到主表窗体-如何选择默认行?,axapta,x++,microsoft-dynamics,dynamics-ax-2009,Axapta,X++,Microsoft Dynamics,Dynamics Ax 2009,我正在覆盖窗体设计中下拉控件上的jumpRef方法。下面是该方法的代码。当前,它显示表的表单,所有行都可见。不过,到目前为止还不错,我希望在启动表单上选择的特定行在显示时在新的主表表单上突出显示 public void jumpRef() { ReasonTable reasonTable; Args args; MenuFunction menuFunction; ; // Use whole table (i.e. No f
public void jumpRef()
{
ReasonTable reasonTable;
Args args;
MenuFunction menuFunction;
;
// Use whole table (i.e. No filtering, show all rows)
reasonTable = ReasonTable;
// Establish this form as the caller
args = new Args();
args.caller(element);
// Create a new MenuFunction that launches the Reasons Menu Item
menuFunction = new MenuFunction(
menuitemdisplaystr(Reasons),
MenuItemType::Display);
menuFunction.run(args);
}
args.record(推理)代码>-如果使用reasonTable来识别定位记录经过一些实验后,我能够找到答案。添加这一行解决了我的难题:
args.lookupRecord(reasonTable::find(this.text())代码>
这正是我希望实现的目标。我以前尝试过这个方法,但无法确定要将什么对象/值放入该方法。不幸的是,这就是问题所在,reasonTable被分配给整个表,以便显示所有记录。谢谢你的快速回复!未将其分配给整个表:reasonTable=reasonTable代码>没有任何意义,因为您正在将空白(未初始化)记录分配给自身。应该使用reasonTable=reasonTable::find(this.text())代码>干得好。如果您使用args.record()
它会在主窗体中过滤记录,因此只会显示一条ReasonTable
记录。通过使用args.lookupRecord()
可以查看所有记录,但最初的重点是您需要的记录。从最初的帖子来看,你可以使用reasonTable=reasonTable::find(this.text());参数lookupRecord(可推理)代码>每当我尝试用reasonTable=reasonTable::find(this.text())实例化reasonTable时代码>它总是强制表只显示单个记录。我认为上面的最后一个示例通过使用表的单记录版本,然后将焦点设置在表中的唯一记录上,也会获得相同的结果。