将自定义数据源添加到AX 2012中的表单

时间:2018-06-27 09:51:56

标签: forms datasource axapta microsoft-dynamics

我想在AX 2012中将与数据源的自定义关系添加到表单中。

当我使用该选项将数据源添加为“引用的数据源”时,系统会使用AutoReport字段自动将字段加入表中的字段组中,但是我想使用另一个字段来获取信息

示例。

我有CustTrans表,我想要订单帐户名称,但是当我放置参考数据源时,仅显示帐户名称而不是订单帐户名称。

我不知道带有querybuilddatasource的选项是否有效。

感谢您的时间

1 个答案:

答案 0 :(得分:2)

您可以在CustTrans表上创建display方法,而不必加入新的数据源,例如:

//BP Deviation Documented
display CustName orderAccountName()
{
    CustTable     custTable;
    DirPartyTable partyTable;    
    select firstonly Party from custTable
        where custTable.AccountNum == this.OrderAccount
        join Name from partyTable
        where partyTable.RecId == custTable.Party;    
    return partyTable.Name;
}

然后,您只需使用此显示方法即可在表单上显示要订购的帐户名。

如果您确实想添加新的数据源并使用OrderAccount字段进行链接,则可以照常添加CustTable数据源(JoinSource = CustTrans,LinkType = InnerJoin或OuterJoin等) )并覆盖其init方法,例如:

void init()
{
    QueryBuildDataSource qbds;    
    super();        
    qbds = this.queryBuildDataSource();
    qbds.clearLinks();
    qbds.addLink(fieldNum(CustTrans, OrderAccount), fieldNum(CustTable, AccountNum));
}