2011-04-08 91 views
2

我重写了我的窗体上设计中的下拉控件上的jumpRef方法。以下是该方法的代码。目前,它显示表格的所有行都可见。然而,迄今为止这么好,我希望在启动的表格上选择的特定行在显示时在新的主表格上突出显示。Dynamics AX 2009:转到主表格 - 如何选择默认行?

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); 
} 

回答

4

经过一些实验,我能找到答案。加入这一行解决了我的难题:

args.lookupRecord(reasonTable::find(this.text()));

这也正是我希望能完成。我之前尝试过,但无法弄清楚在方法中放入什么对象/值。

+0

好的工作。如果你使用'args.record()'它会过滤主窗体中的记录,所以只显示一个'ReasonTable'记录。通过使用'args.lookupRecord()'你可以看到所有的记录,但焦点最初在你需要的那个。从原始帖子看,你可以使用'reasonTable = ReasonTable :: find(this.text()); args.lookupRecord(reasonTable);' – 10p 2011-04-08 20:19:47

+0

任何时候我尝试用reasonTable = ReasonTable :: find(this.text())实例化** reasonTable **;'它总是强制表只显示单个记录。我想你上面的最后一个例子可以通过使用单一记录版本的表格来获得相同的结果,然后将重点放在表格中的唯一记录上。 – 2011-04-08 21:22:24

3

args.record(reasonTable); - 如果reasonTable用于识别记录用于定位

+0

不幸的是,这就是问题所在,reasonTable被分配给整个表,以便显示所有记录。感谢您的快速回复! – 2011-04-08 19:25:44

+1

它未分配给整个表:'reasonTable = ReasonTable;'没有任何意义,因为您将自己的空白(未初始化)记录分配给自己。应该使用'reasonTable = ReasonTable :: find(this.text());' – 10p 2011-04-08 20:15:01

相关问题