SSRS 日期参数与日历

本文档展示了如何在报表中将数据值或列用作参数,并显示日历以选择日期。为此,我们必须将参数数据类型从默认的文本更改为日期时间。

右键单击“数据集”文件夹以创建新的数据集。在 SSMS 中写入以下代码将显示我们在此示例中使用的数据集。

我们用于此 SSRS 示例的 SQL 查询是

SELECT Cat.[EnglishProductCategoryName] AS Category, 
SubCat.[EnglishProductSubcategoryName] AS SubCategory,
Prod.EnglishProductName AS ProductName, Prod.Color, Fact.[OrderDate],
SUM(Fact.OrderQuantity) AS Orders, SUM(Fact.TotalProductCost) AS ProductCost,
SUM(Fact.SalesAmount) AS Sales, SUM(Fact.TaxAmt) AS Tax
FROM FactInternetSales AS Fact
INNER JOIN DimProduct AS Prod ON Fact.ProductKey = Prod.ProductKey
INNER JOIN DimProductSubcategory AS SubCat ON Prod.ProductSubcategoryKey = SubCat.ProductSubcategoryKey
INNER JOIN DimProductCategory AS Cat ON SubCat.ProductCategoryKey = Cat.ProductCategoryKey
--WHERE OrderDate BETWEEN '2010-12-29' AND '2011-01-02'
WHERE OrderDate BETWEEN @StartDate AND @EndDate
GROUP BY Cat.[EnglishProductCategoryName], SubCat.[EnglishProductSubcategoryName],
Prod.EnglishProductName, Prod.Color, Fact.[OrderDate]
ORDER BY OrderDate

如果您观察到上面的查询,我们在 where 条件中使用了两个参数(@StartDate 和 @EndDate)。

如何使用 SSRS 日期参数与日历?

我们设计了一个简单的产品销售表报,包含订单日期,并格式化了字体和颜色。

Simple table report

在报表预览中,我们手动输入了开始订单日期和结束订单日期的日期。

Date Parameters report Preview

右键单击“参数”文件夹下的 @StartDate,然后选择“参数属性”选项。在常规选项卡中,将 @StartDate 的数据类型从默认文本更改为日期/时间。最后,单击“确定”关闭属性窗口。

Change the Data Type from Text to Date/Time

与上面一样,将 @EndDate 的数据类型更改为日期和时间。查看 SSRS 报表预览,您可以看到开始日期和结束日期参数旁边的日历。您可以使用此日历选择日期。

SSRS Date Parameters with Calendar to select Day, Year, and Month

选择好后,单击“查看报表”按钮以查看结果。

SSRS Date Parameters with Calendar Preview

再次转到 @StartDate 报表参数属性的“默认值”选项卡,选择“指定值”,然后单击“添加”按钮。接下来,单击小的 ƒx 按钮设置默认开始日期。此处,CDate 将字符串日期转换为 Date 类型。

Expression for default date values

类似地,使用上述方法为 @EndDate 设置默认值。结束日期 @EndDate 的默认值的表达式是:

CDate("2011-01-02").

如果您单击 SSRS 日历预览按钮,它将使用开始日期和结束日期参数的默认值生成报表。

SSRS Date Parameters with Calendar with default values