Date 查询动态AX中的日期范围

Date 查询动态AX中的日期范围,date,range,axapta,microsoft-dynamics,Date,Range,Axapta,Microsoft Dynamics,我想建立查询范围,在哪里 今天激活到 有没有可能,我试过类似的方法,但不起作用 qbdsDimAttrValue = ds.addDataSource(tableNum(DimensionAttributeValue)); qbrMainAccountActiveFrom = qbdsDimAttrValue.addRange(fieldnum(DimensionAttributeValue,ActiveFrom)); qbrMainAccountActiveFrom.value(strFmt

我想建立查询范围,在哪里

今天激活到

有没有可能,我试过类似的方法,但不起作用

qbdsDimAttrValue = ds.addDataSource(tableNum(DimensionAttributeValue));
qbrMainAccountActiveFrom = qbdsDimAttrValue.addRange(fieldnum(DimensionAttributeValue,ActiveFrom));
qbrMainAccountActiveFrom.value(strFmt('(((%1.%2 != 0) || (%1.%3 != 0)) && ((%1.%2 > %4) || (%1.%3 < %4)))',   
            qbdsDimAttrValue.name(),
            fieldStr(DimensionAttributeValue,ActiveFrom),
            fieldStr(DimensionAttributeValue,ActiveTo),
            today(),
            ));
qbdsDimAttrValue=ds.addDataSource(tableNum(DimensionAttributeValue));
qbrMainAccountActiveFrom=qbdsDimAttrValue.addRange(fieldnum(DimensionAttributeValue,ActiveFrom));
qbrMainAccountActiveFrom.value(strFmt(“(((%1.%2!=0)| |(%1.%3!=0))&&((%1.%2>%4)| |(%1.%3<%4)),
qbdsDimAttrValue.name(),
fieldStr(DimensionAttributeValue,ActiveFrom),
fieldStr(DimensionAttributeValue,ActiveTo),
今天(),
));

我写0,因为在表DimensionAttributeValue中,如果字段ActiveFrom、ActiveTo为null,则它的值为0,而不是dateNull()、dateMax()

,如果您选中
Global::dateNull()
,您将看到它返回“01\01\1900”,还可以看到数据库没有在这些字段中存储0:

你可以找到更多的细节

因此,您可以简化扩展范围,如下所示

qbrMainAccountActiveFrom.value(strFmt('((%1.%2 > %4) || (%1.%3 < %4))',   
                               qbds.name(),
                               fieldStr(DimensionAttributeValue, ActiveFrom),
                               fieldStr(DimensionAttributeValue, ActiveTo),
                               today()
                               ));
qbrmaincountactivefrom.value(strFmt('((%1.%2>%4)| |(%1.%3<%4)),
qbds.name(),
fieldStr(DimensionAttributeValue,ActiveFrom),
fieldStr(DimensionAttributeValue,ActiveTo),
今日()
));

如果选中
Global::dateNull()
您将看到它返回“01\01\1900”,您还可以看到数据库没有在这些字段中存储0:

你可以找到更多的细节

因此,您可以简化扩展范围,如下所示

qbrMainAccountActiveFrom.value(strFmt('((%1.%2 > %4) || (%1.%3 < %4))',   
                               qbds.name(),
                               fieldStr(DimensionAttributeValue, ActiveFrom),
                               fieldStr(DimensionAttributeValue, ActiveTo),
                               today()
                               ));
qbrmaincountactivefrom.value(strFmt('((%1.%2>%4)| |(%1.%3<%4)),
qbds.name(),
fieldStr(DimensionAttributeValue,ActiveFrom),
fieldStr(DimensionAttributeValue,ActiveTo),
今日()
));

此类查询中使用的日期值必须采用
dd\MM\yyyyy
格式-为此,您可以使用函数
date2strxp()

尝试使用以下范围:

qbrMainAccountActiveFrom.value(
    strFmt('((%1.%2 > %4) || ((%1.%3 < %4) && (%1.%3 != %5)))',
            qbdsDimAttrValue.name(),
            fieldStr(DimensionAttributeValue, ActiveFrom),
            fieldStr(DimensionAttributeValue, ActiveTo),
            date2StrXpp(systemDateGet()),
            date2StrXpp(dateNull())
            ));
qbrmaincountactivefrom.value(
strFmt(“((%1.%2>%4)|((%1.%3<%4)&((%1.%3!=%5))”,
qbdsDimAttrValue.name(),
fieldStr(DimensionAttributeValue,ActiveFrom),
fieldStr(DimensionAttributeValue,ActiveTo),
date2StrXpp(systemDateGet()),
date2StrXpp(dateNull())
));

此类查询中使用的日期值必须采用
dd\MM\yyyyy
格式-为此,您可以使用函数
date2strxp()

尝试使用以下范围:

qbrMainAccountActiveFrom.value(
    strFmt('((%1.%2 > %4) || ((%1.%3 < %4) && (%1.%3 != %5)))',
            qbdsDimAttrValue.name(),
            fieldStr(DimensionAttributeValue, ActiveFrom),
            fieldStr(DimensionAttributeValue, ActiveTo),
            date2StrXpp(systemDateGet()),
            date2StrXpp(dateNull())
            ));
qbrmaincountactivefrom.value(
strFmt(“((%1.%2>%4)|((%1.%3<%4)&((%1.%3!=%5))”,
qbdsDimAttrValue.name(),
fieldStr(DimensionAttributeValue,ActiveFrom),
fieldStr(DimensionAttributeValue,ActiveTo),
date2StrXpp(systemDateGet()),
date2StrXpp(dateNull())
));

它不起作用有两个原因:范围错误(如果ActiveFrom和ActiveTo都为空怎么办?)和日期格式不正确。它不起作用有两个原因:范围错误(如果ActiveFrom和ActiveTo都为空怎么办?)和日期格式不正确。