Axapta “如何实现SQL”;关于;Dynamics AX中的功能

Axapta “如何实现SQL”;关于;Dynamics AX中的功能,axapta,dynamics-ax-2012,dynamics-ax-2012-r2,Axapta,Dynamics Ax 2012,Dynamics Ax 2012 R2,我有以下疑问 select x from ProjTable join GeneralAccEntry on (Projtable.ProjId= substr(GeneralAccEntry.fieldy), 25,7) 我用ProjTable作为主要数据源创建了一个表单。现在我想添加一个计算显示字段,它显示相关generalacentry表中fieldY的总和。检索每个projId的总和时遇到困难,因为该方法没有将projId作为参数 创建此显示方法的正确方法是什么?只需尝试使用“WHE

我有以下疑问

select x from ProjTable
join GeneralAccEntry 
on (Projtable.ProjId= substr(GeneralAccEntry.fieldy), 25,7)
我用
ProjTable
作为主要数据源创建了一个表单。现在我想添加一个计算显示字段,它显示相关
generalacentry
表中
fieldY
的总和。检索每个
projId
的总和时遇到困难,因为该方法没有将
projId
作为参数

创建此显示方法的正确方法是什么?

只需尝试使用“WHERE”而不是“ON”


使用函数进行比较时要小心,它可能会给您带来错误。如果它确实尝试将substr的结果分配给具有定义长度的str变量(如str 20 varName)。

不确定我是否正确理解您的问题。但以下方法能否解决您的问题:

 Add method to your table ProjTable:

    public display real sumOfGeneralAccEntry() 
    {
        GeneralAccEntry generalAccEntry;
        str filter = '*' + this.ProjId + '*';

        select sum(fieldY)
        from generalAccEntry
        where generalAccEntry.fieldY like filter;


        return generalAccEntry.fieldY;
    }

Add the display to a field group

Add the fieldgroup into your form
 Add method to your table ProjTable:

    public display real sumOfGeneralAccEntry() 
    {
        GeneralAccEntry generalAccEntry;
        str filter = '*' + this.ProjId + '*';

        select sum(fieldY)
        from generalAccEntry
        where generalAccEntry.fieldY like filter;


        return generalAccEntry.fieldY;
    }

Add the display to a field group

Add the fieldgroup into your form