Axapta X++;计算列

Axapta X++;计算列,axapta,x++,aot,Axapta,X++,Aot,我尝试在AOT中重新创建SQL视图,需要添加引用视图的计算列(FiscalLendarFlattedView)。在类中,我无法检索此视图的字段。问题在于“sGREGORIANDATE=”line,其中我指定了一个fieldStr(),无法为视图执行此操作。我使用SQL语句只是为了帮助理解我试图实现的目标 CREATE VIEW [dbo].[vw_DimFiscalPeriod] AS SELECT T1.RECID AS LEDGERRECID, T1.PARTITION AS PART

我尝试在AOT中重新创建SQL视图,需要添加引用视图的计算列(FiscalLendarFlattedView)。在类中,我无法检索此视图的字段。问题在于“sGREGORIANDATE=”line,其中我指定了一个fieldStr(),无法为视图执行此操作。我使用SQL语句只是为了帮助理解我试图实现的目标

CREATE VIEW [dbo].[vw_DimFiscalPeriod] AS 
SELECT 
T1.RECID AS LEDGERRECID, 
T1.PARTITION AS PARTITION, 
T1.RECID AS RECID, 
T2.CALENDARID AS CALENDARID, 
T2.CALENDARRECID AS CALENDARRECID, 
T2.GREGORIANDATE AS GREGORIANDATE, 
T2.MONTH AS MONTH, 
T2.PERIODNAME AS PERIODNAME, 
T2.PERIODOFFSET AS PERIODOFFSET, 
T2.PERIODRECID AS PERIODRECID, 
T2.QUARTER AS QUARTER, 
T2.QUARTEROFFSET AS QUARTEROFFSET, 
T2.YEARNAME AS YEARNAME, 
T2.YEAROFFSET AS YEAROFFSET, 
T2.PARTITION AS PARTITION#2, 
(CAST ((((T1.RECID) * (100000)) + (DateDiff(d, {ts '1900-01-01 00:00:00.000'}, T2.GREGORIANDATE))) AS NVARCHAR(50))) AS LEDGERGREGORIANDATEID 
FROM AXDB.dbo.LEDGER T1 
INNER JOIN 
AXDB.dbo.FISCALCALENDARFLATTENEDVIEW T2 
ON T1.FISCALCALENDAR  =  T2.CALENDARRECID
AND T1.PARTITION  =  T2.PARTITION
我创建了类,但对于我的计算,不支持来自视图的对象和列列表的字段。sRECID正常,但sGREGORIANDATE定义不正常

public class vw_DimFiscalPeriod extends common
{
private static server str GregoriandDateID()
{
    str sReturn,
    str sRECID,
    str sGREGORIANDATE;
    DictView dictView;

    dictView = new DictView(tableNum(vw_DimFiscalPeriod));
    sRECID = dictView.computedColumnString(tableStr(Ledger), fieldStr(RecId),FieldNameGenerationMode::FieldList,  true);
    sGREGORIANDATE = dictView.computedColumnString(viewstr(FiscalCalendarFlattenedView),  fieldStr(GregorinaDate), FieldNameGenerationMode::FieldList,  true);

    sReturn = "("+RECID+" * 100000) + DateDiff(d, {ts '1900-01-01 00:00:00.000'}, " + sGREGORIANDATE + " )";

     return sReturn;
}
}

我认为这应该行得通,sGREGORIANDATE的线路应该是这样的:

        sGREGORIANDATE = SysComputedColumn::returnField(tableStr(FiscalPeriodDateView), tableStr(FiscalCalendarFlattenedView), fieldStr(FiscalCalendarFlattenedView, GregorianDate)));