首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X++计算列

X++计算列
EN

Stack Overflow用户
提问于 2017-04-04 23:24:36
回答 1查看 368关注 0票数 0

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

代码语言:javascript
复制
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定义不是。

代码语言:javascript
复制
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;
}
}
EN

回答 1

Stack Overflow用户

发布于 2017-04-06 00:11:48

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

代码语言:javascript
复制
        sGREGORIANDATE = SysComputedColumn::returnField(tableStr(FiscalPeriodDateView), tableStr(FiscalCalendarFlattenedView), fieldStr(FiscalCalendarFlattenedView, GregorianDate)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43211421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档