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都为空怎么办?)和日期格式不正确。