2011-08-04 23 views
2

上的Microsoft Dynamics AX 2012如何获取ListPageInteraction类中的表单对象?

工作,我有一个listpage form具有参考ListPageInteraction类,只是想改变一些控件的标签/标题。为此,我需要做的是这样的:

element.form().design().control('<YourControlName>');

,但我不能得到的ListPageInteraction类此方法。我已决定研究该类的初始化方法。但是,无法从那里获取表单,我如何才能访问控件并设置标签?

+0

我cann不要创建一个新标签(dynamics-ax-2012),所以我只想评论一下这个问题是关于AX2012的 – 10p

回答

1

我不认为有可能从ListPageInteraction获取FormRun对象。 如果你能做到这一点休息会很容易:

FormControl fc = formRun.design().controlName(formcontrolstr(formName, controlName)); 
// etc. 
5

common = this.listPage().activeRecord('Table'); 
if(common.isFormDataSource()) 
{ 
    fds = common.dataSource(); 
    fds.formRun().control(fds.formRun().controlId('ControlOfScreen')). 
     userPromptText('New Description'); 
} 

从projProjectTransListPageInteraction.initializeQuery又如()的角度,从网格形式projProjectTransactionsListPage改变TransDate域的标签

public void initializeQuery(Query _query) 
{ 
    QueryBuildRange  transDateRange; 
    // ListPageLabelChange => 
    Common    externalRecord; 
    FormDataSource  frmDs; 
    FormRun    formRun; 
    FormControl   frmCtrl; 
    // ListPageLabelChange <= 
    ; 

    queryBuildDataSource = _query.dataSourceTable(tableNum(ProjPostTransView)); 
    transDateRange = SysQuery::findOrCreateRange(queryBuildDataSource, fieldNum(ProjPostTransView, TransDate)); 

    // Date range is [(today's date - 30)..today's date] if not showing transactions for a particular project. 
    // Date range is [(dateNull())..today's date] if showing transactions for a particular project so that all transactions are visible. 
    transDateRange.value(SysQuery::range(transStartDate, systemDateGet())); 

    this.linkActive(_query); 

    // ListPageLabelChange => 
    externalRecord = this.listPage().activeRecord(_query.dataSourceTable(tableNum(ProjPostTransView)).name());//No intrisic function for form DS? 
    if(externalRecord.isFormDataSource()) 
    { 
     frmDs = externalRecord.dataSource(); 
     formRun = frmDs.formRun(); 
     if(formRun) 
     { 
      frmCtrl = formRun.design().controlName(formControlStr(projProjectTransactionsListPage,TransDate)); 
      if(frmCtrl) 
      { 
       frmCtrl.userPromptText("newName"); 
      } 
     } 
    } 
    // ListPageLabelChange <= 
}