查询 Dynamics AX 中的日期范围
Date range in query Dynamics AX
我想构建查询范围,其中
ActiveTo <今天|| ActiveFrom > 今天。
有可能吗,我试过类似的方法,但是没有用。
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(),
));
我写 0,因为在 table DimensionAttributeValue 中,如果字段 ActiveFrom、ActiveTo 为空,它的值为 0,而不是 dateNull()、dateMax()
如果您检查 Global::dateNull()
,您会看到它 returns '0100',您还可以看到数据库不在这些字段中存储 0:
你可以找到更多详细信息here
因此您可以按如下方式简化您的扩展范围
qbrMainAccountActiveFrom.value(strFmt('((%1.%2 > %4) || (%1.%3 < %4))',
qbds.name(),
fieldStr(DimensionAttributeValue, ActiveFrom),
fieldStr(DimensionAttributeValue, ActiveTo),
today()
));
此类查询中使用的日期值必须采用 dd\MM\yyyy
格式 - 您可以为此目的使用函数 date2StrXpp()
。
尝试使用以下范围:
qbrMainAccountActiveFrom.value(
strFmt('((%1.%2 > %4) || ((%1.%3 < %4) && (%1.%3 != %5)))',
qbdsDimAttrValue.name(),
fieldStr(DimensionAttributeValue, ActiveFrom),
fieldStr(DimensionAttributeValue, ActiveTo),
date2StrXpp(systemDateGet()),
date2StrXpp(dateNull())
));
我想构建查询范围,其中
ActiveTo <今天|| ActiveFrom > 今天。
有可能吗,我试过类似的方法,但是没有用。
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(),
));
我写 0,因为在 table DimensionAttributeValue 中,如果字段 ActiveFrom、ActiveTo 为空,它的值为 0,而不是 dateNull()、dateMax()
如果您检查 Global::dateNull()
,您会看到它 returns '0100',您还可以看到数据库不在这些字段中存储 0:
你可以找到更多详细信息here
因此您可以按如下方式简化您的扩展范围
qbrMainAccountActiveFrom.value(strFmt('((%1.%2 > %4) || (%1.%3 < %4))',
qbds.name(),
fieldStr(DimensionAttributeValue, ActiveFrom),
fieldStr(DimensionAttributeValue, ActiveTo),
today()
));
此类查询中使用的日期值必须采用 dd\MM\yyyy
格式 - 您可以为此目的使用函数 date2StrXpp()
。
尝试使用以下范围:
qbrMainAccountActiveFrom.value(
strFmt('((%1.%2 > %4) || ((%1.%3 < %4) && (%1.%3 != %5)))',
qbdsDimAttrValue.name(),
fieldStr(DimensionAttributeValue, ActiveFrom),
fieldStr(DimensionAttributeValue, ActiveTo),
date2StrXpp(systemDateGet()),
date2StrXpp(dateNull())
));