我有一个TransactionDate
从数据集中提取的值和一个endDate
被用户选择后作为参数创建的值。
对于我所有报告行的大约 98%,相应地显示了正确的结果,但我有几行没有按预期适当地返回数据,这是因为报告生成器确定TransactionDates
大于endDate
.
参数已设置为计算字段 -> FormatDateTime(Parameters!endDate.Value,DateFormat.ShortDate)
我正在使用的语句向我展示了我正在查看的结果,以了解什么是有效的,什么是无效的:
=IIF((Fields!endDateCalc.Value >= Fields!TransactionDateCalc.Value), Fields!UnitSales.Value, "N/A")
本质上,我关心的是理解为什么会发生这种情况/我正在做什么来导致这种情况发生。
我当然已经颠倒了使用的公式,该公式向我显示了我正在寻找的结果并颠倒它以查看该行是否有反应,并且确实如此。(只需切换>=
到<=
.
例如,我们可以说TransactionDate
is3/4/2019
和endDate
is 3/25/2019
。对于这一行,它将返回不正确的结果并显示为N/A
. 这应该返回UnitSales
该行的正确值,但正如所述,它没有。
而 if TransactionDate
was3/12/2019
和endDate
was still 3/25/2019
,它会返回正确的UnitSales
值。
如果需要任何其他信息,请告诉我。
我认为比较正在进行中3/4/2019
,出于某种原因,取 4 并将其与endDate
. 我建议将比较更改为类似于以下表达式的内容。
=IIF((Year(CDate(Fields!endDate.Value)) >= Year(CDate(Fields!TransactionDate.Value)))
AND DatePart(DateInterval.DayOfYear, CDate(Fields!endDate.Value)) >= DatePart(DateInterval.DayOfYear, CDate(Fields!TransactionDate.Value)),
Fields!UnitSales.Value, "N/A")
这将首先比较每个日期的年份,然后避免任何转换问题,并简单地获取每个日期的年份以进行比较并确认endDate
大于TransactionDate
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句