本文档展示了如何在报表中将数据值或列用作参数,并显示日历以选择日期。为此,我们必须将参数数据类型从默认的文本更改为日期时间。
右键单击“数据集”文件夹以创建新的数据集。在 SSMS 中写入以下代码将显示我们在此示例中使用的数据集。
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 日期参数与日历?
我们设计了一个简单的产品销售表报,包含订单日期,并格式化了字体和颜色。

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

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

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

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

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

类似地,使用上述方法为 @EndDate 设置默认值。结束日期 @EndDate 的默认值的表达式是:
CDate("2011-01-02").
如果您单击 SSRS 日历预览按钮,它将使用开始日期和结束日期参数的默认值生成报表。
