我需要根据输入的日期参数对列进行排序,该参数是前一年的第一个月,并增加到输入的日期(为12个月)。例如,参数值输入'03/31/2018'
,它将首先显示'Apr 2017'
,然后显示'May 2017'
,...依此类推,最后一列为'Mar 2018'`。谢谢!
答案 0 :(得分:0)
首先,下次一定要发布您到目前为止尝试过的内容以及为什么它不起作用。这样,人们会看到您在其中付出了一些努力,他们将很乐意为您提供帮助。
第二步转到您的 Tablix属性>排序>添加并使用排序表达式:
=CDate(Fields!YourDate.Value)
然后转到您的 Tablix属性>过滤器>添加,然后添加以下两个过滤器:
'Expression1
=DateSerial(Year(DateAdd("yyyy", -1, CDate(Parameters!YourParameter.Value))), Month(CDate(Parameters!YourParameter.Value)), "1").AddMonths(1)
'Format1
=Date/Time
'Operator1
>
'Value1
=CDate(Fields!YourDate.Value)
第二个过滤器:
'Expression2
=DateSerial(Year(DateAdd("yyyy", -1, CDate(Parameters!YourParameter.Value))), Month(CDate(CDate(Parameters!YourParameter.Value))), "1").AddMonths(13)
'Format2
=Date/Time
'Operator2
<
'Value2
=CDate(Fields!YourDate.Value)
答案 1 :(得分:0)
我修改了我的数据集,以包含另一个字段“ IndexColumn”,该字段以指定的顺序排序,从上个月(2017年4月)的“ A”开始:
=SWITCH(Fields!Indexcolumn.Value = “A”, Format(DateAdd("m", -11, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “B”, Format(DateAdd("m", -10, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “C”, Format(DateAdd("m", -9, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “D”, Format(DateAdd("m", -8, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “E”, Format(DateAdd("m", -7, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “F”, Format(DateAdd("m", -6, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “G”, Format(DateAdd("m", -5, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “H”, Format(DateAdd("m", -4, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “I”, Format(DateAdd("m", -3, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “J”, Format(DateAdd("m", -2, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “L”, Format(DateAdd("m", -1, CDate(Parameters!AsOfDate.Value)),"MMM yyyy"),
Fields!Indexcolumn.Value = “M”, Format(DateAdd("m", 1, CDate(Parameters!AsOfDate.Value)),"MMM yyyy")
不能忘记可能弹出的错误,需要解决:“ The Value expression for the text box ‘Textbox9’ refers directly to the field ‘Indexcolumn’ without specifying a dataset aggregate. When the report contains multiple datasets, field references outside of a data region must be contained within aggregate functions which specify a dataset scope.
。”