You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS参数设置:将日期选择改为月份名称+年份下拉列表的实现方法

该需求完全可以实现,无需自定义控件开发,仅通过SSRS内置的参数绑定和数据集功能即可完成,具体操作步骤如下:


步骤1:创建年月候选值数据集

新建一个数据集用于生成2000-2050年所有符合要求的年月选项,SQL Server环境下可直接使用以下查询语句,其他数据库只需修改对应日期函数即可:

WITH YearList AS (
    SELECT 2000 + number AS [YearVal]
    FROM master..spt_values
    WHERE type = 'P' AND number <= 50
),
MonthList AS (
    SELECT 1 + number AS [MonthVal],
           LEFT(DATENAME(MONTH, DATEFROMPARTS(2023, 1 + number, 1)), 3) AS [MonthShortName]
    FROM master..spt_values
    WHERE type = 'P' AND number < 12
)
SELECT
    CAST(YearVal AS VARCHAR) + '|' + CAST(MonthVal AS VARCHAR) AS [ParamValue],
    MonthShortName + ' | ' + CAST(YearVal AS VARCHAR) AS [DisplayText],
    DATEFROMPARTS(YearVal, MonthVal, 1) AS [FirstDayOfMonth],
    EOMONTH(DATEFROMPARTS(YearVal, MonthVal, 1)) AS [LastDayOfMonth]
FROM YearList CROSS JOIN MonthList
ORDER BY YearVal DESC, MonthVal DESC

生成的DisplayText字段就是你要求的月份短名 | 年份展示格式,同时内置了对应月份的月初、月末日期用于后续参数赋值。


步骤2:调整原有日期参数为隐藏参数

原有的@FirstDate、@LastDate两个参数无需删除,调整为内部隐藏参数即可,原有报表查询逻辑完全不需要修改:

  • 进入参数属性页面,勾选「隐藏」选项
  • 这两个参数后续会通过用户选择的年月自动赋值,无需用户手动操作

步骤3:新增用户可见的年月选择参数

新建两个可见参数,分别命名为@StartMonth和@EndMonth,对应起始年月和结束年月的选择项,每个参数的配置规则一致:

  • 数据类型选择「文本」
  • 提示文本分别设置为「起始年月」、「结束年月」
  • 切换到「可用值」标签:选择「从查询中获取值」,数据集选第一步新建的年月数据集,值字段选ParamValue,标签字段选DisplayText
  • 切换到「默认值」标签:选择「指定值」,输入以下表达式即可默认选中当前年月:
    =CStr(Year(Today())) + "|" + CStr(Month(Today()))
    

步骤4:绑定隐藏日期参数的自动赋值规则

回到@FirstDate的参数属性,切换到「默认值」标签,选择「指定值」,输入以下表达式:

=DATEFROMPARTS(CInt(Split(Parameters!StartMonth.Value, "|")(0)), CInt(Split(Parameters!StartMonth.Value, "|")(1)), 1)

同理设置@LastDate的默认值表达式:

=EOMONTH(DATEFROMPARTS(CInt(Split(Parameters!EndMonth.Value, "|")(0)), CInt(Split(Parameters!EndMonth.Value, "|")(1)), 1))

效果验证

预览报表后,两个可见的年月参数会以下拉列表形式展示所有2000-2050年的候选值,不会弹出日历选择面板,默认自动高亮选中当前年月,用户选择后会自动把对应区间的月初、月末日期赋值给原有的@FirstDate和@LastDate参数,正常触发报表查询。


内容的提问来源于stack exchange,提问作者datanewbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:24:03