VS2012 BIDS之Reporting Service/SSRS 项目

最近资讯部门需要:网页/sharepoint提供事实表RawData下载功能,以下是项目大概:

工具:VS(BIDS)Report Designer+Reporting Service配置管理器

打开VS新建报表服务器项目,添加共享数据源并配置(DB数据库),共享数据源(基于需要,可有可无),共享数据集,属性查询类型可为文本/表/存储过程。

报表右键,添加项目--报表项目(为了灵活设计,不要选添加报表,会启动向导)--添加数据源(共享数据源)--添加数据集(新建属性选择存储过程),添加参数。

使用存储过程和SSRS报表结合的优势:

1.查询条件多样化、灵活。
2.存储过程离数据最近。
3.存储过程中的SQL可以进行软编译生成固定的优化的执行计划。
4.SQL可以输出,特别是组合各种筛选条件之后的SQL,便于查看。
5.可以分工开发,加快开发进度。存储过程和SSRS界面可以分给两个人开发。
6.业务逻辑有变化,但是返回的数据集字段没有变化的时候,只需要更新存储过程,而不需要同步更新SSRS报表。也就是说,业务和UI分开了,透明化了。
以下是数据集参数属性:

  

存储过程代码:<多个参数作为筛选条件时,灵活使用'OR'表达式>

USE [DM_ACCN_T1]
GO

/****** Object:  StoredProcedure [dbo].[SSRS_RAWDATA_SELLTHRU]    Script Date: 2016/5/11 14:07:42 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:    Ammy Guo        
-- Create date: 2016/05/09  
-- Description:      SSRS_RAWDATA_SELLTHRU         
-- =============================================
CREATE PROCEDURE [dbo].[SSRS_RAWDATA_SELLTHRU] 
    -- Add the parameters for the stored procedure here
    @YEAR INT,
    @YEAR_QUARTER INT,
    @CON_REGION VARCHAR(20),
    @CON_SUBREIGON VARCHAR(20)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;    

    SELECT A.YYYYMMDD, A.ITEM_CODE, A.DISTRIBUTOR_CODE, A.DEALER_CODE, 
      A.CITY_SG_CODE, A.TR_MODEL, A.CHANNEL_TYPE_CODE, A.ST_QTY, A.ST_AMT, 
      A.ST_AMT_USD, A.REGION_CODE, A.SALES_MONEY, A.SHIPTO_CITY_SG_CODE, 
      A.ACER_PRICE, A.ACER_PRICE_USD, B.DAY, B.CURRENT_YEAR, B.MONTH, 
      B.QUARTER, B.YEAR_QUARER, B.YEAR_MONTH, B.YEAR_WEEK, 
      B.YEAR_WEEK_SEQ, B.MONTH_KEY, D.AREA_CN, D.CON_REGION_CODE, 
      D.CON_REGION_CN, D.CON_SUBREIGON_CODE, D.CON_SUBREION_CN, 
      D.KAB_REGION_NAME, D.KAB_SUBREGION_NAME, D.PROVINCE_CODE, 
      D.PROVINCE_CN, D.DIJI_CITY_CODE, D.DIJI_CITY_NAME_CN, D.XIANJI_CITY_CODE, 
      D.XIANJI_CITY_NAME_CN, D.CITY_CODE, D.CITY_NAME_EN, D.CITY_NAME_CN, 
      D.CITY_FULL_NAME, D.CITY_LEVEL
FROM vw_FS_SELLTHRU_ACT AS A INNER JOIN
      vw_CB_DATE AS B ON A.YYYYMMDD = B.DAY INNER JOIN
      CB_PRODUCT AS C ON A.ITEM_CODE = C.Part_Number LEFT OUTER JOIN
      CB_GEOGRAPHY AS D ON A.CITY_SG_CODE = D.CITY_CODE
WHERE B.CURRENT_YEAR IN(@YEAR)
      AND (B.QUARTER_KEY IN (@YEAR_QUARTER) OR (999999=@YEAR_QUARTER))
      AND (D.CON_REGION_CODE IN (@CON_REGION) OR ('ALL'=@CON_REGION))
      AND (D.CON_SUBREIGON_CODE IN(@CON_SUBREIGON)  OR('ALL'=@CON_SUBREIGON))
ORDER BY A.YYYYMMDD, B.MONTH_KEY,D.CON_REGION_CODE,D.CON_SUBREIGON_CODE


END




GO

 

报表设计界面:添加页眉页脚,页眉添加文本框,表达式="报表产生日期:"&Globals!ExecutionTime ,显示报表产生日期;页脚添加文本框,表达式="第" & CStr(Globals!PageNumber) & "页/共" & CStr(Globals!TotalPages) & "页",显示报表页数。

Tablix属性添加群组,可以直观快速的查看数据分类,并设置BackgroundColor,对于小计也可以设置文本框颜色的表达式,筛选某条件的单元格值显示特定颜色。

对于参数下拉框值得设计,可添加不通的数据集DataSet,例如<大参数Year,小参数Year_Quarter><大参数Region,小参数Subregion>

并设置参数属性,可用值->从查询中获取值,数据集/值字段(查询事实表SQL语句的字段)/标签字段 (显示在报表中的字段);默认值->指定值(如@YEAR_QUARTER参数的指定值为int类型的:999999)

--SELECT -1 AS [CURRENT_YEAR],N'全选'AS [CURRENT_YEAR_EXPRESSION]
--UNION ALL
SELECT DISTINCT 
      [CURRENT_YEAR] AS [CURRENT_YEAR],
      CAST(([CURRENT_YEAR])AS VARCHAR) +N'' AS [CURRENT_YEAR_EXPRESSION]
  FROM [DM_ACCN_T1].[dbo].[vw_CB_DATE]
  --WHERE [CURRENT_YEAR]='2016'
  ORDER BY [CURRENT_YEAR_EXPRESSION] DESC
------------------------------------------------------------------------------------------
SELECT 'ALL' AS [YEAR_QUARER],999999 AS [QUARTER_KEY]
UNION ALL
SELECT DISTINCT 
      [YEAR_QUARER], [QUARTER_KEY]
  FROM [DM_ACCN_T1].[dbo].[vw_CB_DATE]
  WHERE [CURRENT_YEAR] IN(@YEAR)
  ORDER BY [QUARTER_KEY] DESC
-----------------------------------------------------------------------------------------------
SELECT 'ALL'AS CON_REGION_CODE,'ALL'AS CON_REGION_EN,'ALL'AS CON_REGION_CN
UNION ALL
SELECT DISTINCT CON_REGION_CODE, CON_REGION_EN, CON_REGION_CN
FROM CB_GEOGRAPHY
------------------------------------------------------------------------------------------
SELECT 'ALL'AS CON_SUBREIGON_CODE,'ALL'AS CON_SUBREGION_EN,'ALL'AS CON_SUBREION_CN
UNION ALL
SELECT DISTINCT 
      CON_SUBREIGON_CODE, CON_SUBREGION_EN, CON_SUBREION_CN
FROM CB_GEOGRAPHY
WHERE (CON_REGION_CODE IN (@CON_REGION))

 

 

 

预览效果:

SSRS报表的部署:

属性,常规,会有很多URL需要填,如果是在本机模式下运行的报表服务器,TargetServerURL: http://cnshawspap02/reportserver:

另外需要打开ReportService配置管理器,配置服务器账户,数据源等。

如果是SharePoint集成模式下运行的报表服务器,要输入项目部署到SharePoint站点的URL地址:http://papreportcenter.accn.intra.acer.com/。

部署进度:

    

结果图:

sharepoint结果图:

 

posted @ 2016-05-10 15:47  依旧一生有你  阅读(713)  评论(0编辑  收藏  举报