s-s-rS 报告中的不同日期具有相同的计算

Posted

技术标签:

【中文标题】s-s-rS 报告中的不同日期具有相同的计算【英文标题】:Different dates in s-s-rS report with same calculation 【发布时间】:2016-09-15 08:37:43 【问题描述】:

所以我有一个非常愚蠢的问题,但由于某种原因,我的“问题”没有工作

其实很简单。 s-s-rS tablix 中的字段之一是使用 SQL 函数 DateAdd 计算的到期日期:

=DateAdd(DateInterval.Day, (Int(Fields!TMinus.Value) * 7), Parameters!StartDate.Value)

其中 TMinus 是模拟周的负整数,StartDate 是活动开始的日期。

我在 VB.NET 中使用此公式计算相同的东西来设置行单元格中活动的 DueDate:

Dim intTMinus As Integer = CInt(dataItem.GetDataKeyValue("TMinus").ToString)
CType(dataItem.FindControl("RlblDue"), RadLabel).Text = CDate(DateAdd(DateInterval.Day, (intTMinus * 7), dtStartDate)).ToString

问题在于 s-s-rS 报告显示的日期与网格不同,即使我已使用硬编码值来尝试在报告中找到罪魁祸首。

报告中的这个计算:

  =DateAdd(DateInterval.Day, (Int(-40) * 7), '12/09/2016')

网格中显示日期:07/12/2015,但在报告

中显示日期为 3/4/2016

【问题讨论】:

【参考方案1】:

注意DateAdd 参数数据类型必须分别为 DateInterval、Double 和 DateTime。您正在为第三个参数传递一个字符串'12/09/2016',但它需要一个DateTime。顺便说一句,s-s-rS 中的字符串必须用双引号括起来。

修正后的表达式应该是这样的:

=DateAdd(DateInterval.Day, (Int(-40) * 7), CDATE("2016-09-12"))

返回:07/12/2015 作为 VB 中的网格。

注意CDATE("2016-09-12") 将日期字符串转换为DateTime 值。

检查您的参数是否设置为Date/Time 类型。

REFERENCE

如果这有帮助,请告诉我。

【讨论】:

以上是关于s-s-rS 报告中的不同日期具有相同的计算的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS - 使用矩阵中其他数据集中的列计算的字段(交叉表)

s-s-rS 2008 R2 从现有的 1 年后和星期一计算新日期?

SQL 2014,s-s-rS - 使用参数的时间计算给出错误和错误的计算

s-s-rs 报告在服务器和本地上的工作方式不同

在 s-s-rS 中,预览上的日期时间参数与部署的报告不匹配

如何计算 s-s-rS 中的周转率 (%)?