Reporting services SSRS上月的最后一个工作日vbscript

Reporting services SSRS上月的最后一个工作日vbscript,reporting-services,vbscript,ssrs-2008,ssrs-2012,Reporting Services,Vbscript,Ssrs 2008,Ssrs 2012,我需要一些帮助来为上个月的最后一个工作日编写SSRS表达式 我尝试了以下方法,它给出了上个月的最后一个日历日,但我需要最后一个工作日 = DateAdd("d", -1, DateSerial(Year(Now), Month(Now), 1)) 及 提前感谢。您可以通过将其分为两个步骤来完成。 创建一个文本框(称之为endoflastmonth) 将表达式设置为以下值: =DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now),

我需要一些帮助来为上个月的最后一个工作日编写SSRS表达式

我尝试了以下方法,它给出了上个月的最后一个日历日,但我需要最后一个工作日

= DateAdd("d", -1, DateSerial(Year(Now), Month(Now), 1))


提前感谢。

您可以通过将其分为两个步骤来完成。 创建一个文本框(称之为endoflastmonth)

将表达式设置为以下值:

=DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))
现在创建另一个文本框并输入以下表达式:

=format(DateAdd("d"
    , Switch(DatePart("w", reportitems!endoflastmonth.Value) = 2, -3
        ,DatePart("w", reportitems!endoflastmonth.Value) = 1, -2
        ,True, -1)
    , reportitems!endoflastmonth.Value),"dd/MM/yyyy")
理论上,您应该在此文本框中显示上个月的最后一个工作日

第二种格式是以“
dd/MM/yyyy
”格式获取日期。。你可以随意格式化它

如果要将其作为参数。。你有两个选择。。一种是使用SQL获取所需的值。。但是既然你想在表达式中完成。。你可以这样做。。我不知道这是不是最好的办法

= DateAdd("d"
    , Switch(DatePart("w", DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))) = 2, -3
        ,DatePart("w", DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))) = 1, -2
        ,True, -1)
    , DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1)))

是否在参数中设置表达式以提取前一个工作日?非常好。非常感谢你!
= DateAdd("d"
    , Switch(DatePart("w", DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))) = 2, -3
        ,DatePart("w", DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1))) = 1, -2
        ,True, -1)
    , DateAdd(DateInterval.Minute, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1)))