首页 > 解决方案 > 在下拉菜单中创建 PDF

问题描述

目前我们使用 SQL Server 报告服务进行报告。我们创建了 2 个 PDF,其中包含数据。是否可以将它们插入到报表生成器中,或者能够通过下拉菜单过滤这两个?

例如:

我有 19 财年 4th Quarter.pdf 文件现在我有 20 财年 1st Quarter.pdf 文件。如果我选择 19 财年,是否可以在下拉菜单中显示该 pdf,反之亦然?

我不认为这是可能的,因为它们是 pdf,但我想我会检查。

SSRS 中 pdf 文件的示例图像

标签: sqlreporting-services

解决方案


您需要在报告中添加一个参数,您可以在其中选择年份和季度。
每年都必须制作一份新报告是非常愚蠢的。

如果您需要一个季度的 SQL,10 年前,10 年前,这将是:

;WITH CTE AS 
(
    SELECT 
        DATEADD(year,  DATEDIFF(year, 0, CURRENT_TIMESTAMP) -10, 0)  AS quarter_begin   
    UNION ALL 
    SELECT 
        DATEADD(month, 3, CTE.quarter_begin) AS quarter_begin 
    FROM CTE 
    WHERE YEAR(DATEADD(month, 3, CTE.quarter_begin))  < YEAR(DATEADD(year,  DATEDIFF(year, 0, CURRENT_TIMESTAMP) +11, 0) ) 
)
SELECT * FROM CTE 

或者更详细

;WITH CTE AS 
(
    SELECT 
        DATEADD(year,  DATEDIFF(year, 0, CURRENT_TIMESTAMP) -10, 0)  AS quarter_begin   
    UNION ALL 
    SELECT 
        DATEADD(month, 3, CTE.quarter_begin) AS quarter_begin 
    FROM CTE 
    WHERE YEAR(DATEADD(month, 3, CTE.quarter_begin))  < YEAR(DATEADD(year,  DATEDIFF(year, 0, CURRENT_TIMESTAMP) +11, 0) ) 
)
,CTE2 AS 
(
    SELECT 
         quarter_begin
        ,DATEADD(day, -1, DATEADD(month, 3, CTE.quarter_begin)) AS quarter_end 
        ,ROW_NUMBER() OVER (PARTITION BY YEAR(quarter_begin) ORDER BY quarter_begin) AS quarter_no 
        ,YEAR(quarter_begin) AS quarter_year 
    FROM CTE 
)
SELECT 
     quarter_begin
    ,quarter_end
    ,N'Q' + CAST(quarter_no AS nvarchar(4)) + '-' + CAST(quarter_year AS nvarchar(4)) AS txt  
FROM CTE2 

ORDER BY quarter_begin 

推荐阅读