![](/img/trans.png)
[英]Validating given date (Ex-14/2/2012) is in format mm/dd/yyyy in dynamics ax x++
[英]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,因為在表DimensionAttributeValue中,如果字段ActiveFrom,ActiveTo為null,則其值為0,而不是dateNull(),dateMax()
在此類查詢中使用的日期值必須為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())
));
如果選中Global::dateNull()
,則會看到它返回“ 01 \\ 01 \\ 1900”,並且您還可以看到數據庫在這些字段中未存儲0:
您可以在這里找到更多詳細信息
因此,您可以按以下方式簡化擴展范圍
qbrMainAccountActiveFrom.value(strFmt('((%1.%2 > %4) || (%1.%3 < %4))',
qbds.name(),
fieldStr(DimensionAttributeValue, ActiveFrom),
fieldStr(DimensionAttributeValue, ActiveTo),
today()
));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.